Enterprise awareness is one of the key principles behind Disciplined Agile (DA). The observation is that DA teams work within your organization’s enterprise ecosystem, as do all other teams. There are often existing systems currently in production and minimally your solution shouldn’t impact them. Better yet your solution will hopefully leverage existing functionality and data available in production. You will often have other teams working in parallel to your team, and you may wish to take advantage of a portion of what they’re doing and vice versa. Your organization may be working towards business or technical visions which your team should contribute to. A governance strategy exists which hopefully enhances what your team is doing.
In this article we describe:
- Five levels of awareness
- What it means to be enterprise aware
- Why enterprise awareness is important
- Challenges to enterprise awareness
Five Levels of Awareness
For the purpose of our discussion we will focus on five levels of awareness that someone may exhibit:
- Individual awareness. From this viewpoint it’s all about how someone can change themselves by gaining new skills, insights, experiences, and so on.
- Team Awareness. Here the focus is on the team can learn and improve together. This has been a primary philosophy of the agile community for quite some time, mostly to our benefit but also to our detriment. Solutions are developed by teams, so by promoting a greater focus on the team agilists are able to improve their overall productivity a bit. But, if the efforts of that team aren’t well aligned with the overall goals of the organization then dysfunctions will occur. For example, agile delivery teams that are merely team aware may end up introducing new technologies that their operations groups aren’t willing or able to support in production. Or they may reinvent existing functionality. Or they may create yet another data source even though the data already exists elsewhere. Or they may develop to their own conventions that don’t reflect the way other teams work. Or they may learn that a certain technique or strategy works well for them, but they don’t share this learning outside of the team.
- Departmental Awareness. People consider the needs of their department, not just their team. In this case developers are focused on improving the overall IT process, perhaps by adopting more of a DevOps mindset instead of simply a development mindset.
- Enterprise Awareness. People are motivated to consider the overall needs of their organization, to ensure that what they’re doing contributes positively to the goals of the organization and not just to the suboptimal goals of their team. This is an example of the lean principle of optimizing the whole, in this case the organization, over local optimization at within just the team.
- Community Awareness. People consider the needs of their community, doing what they can to give back by sharing knowledge, by striving to learn themselves, and by striving to help others who might not necessarily be in their organization or even known to them. Community awareness is a key aspect of being a Certified Disciplined Agile Coach (CDAC) and ostensibly a Certified Disciplined Agile Practitioner (CDAP).
Of course, any given individual will operate from several levels, or viewpoints, at once.
What it Means to be Enterprise Aware
Enterprise awareness is an important aspect of self discipline because as a professional you should strive to do what’s right for your organization and not just what’s interesting for you. Teams developing in isolation may choose to build something from scratch, or use different development tools, or create different data sources, when perfectly good ones that have been successfully installed, tested, configured, and fine-tuned already exist within the organization. Disciplined agile professionals will:
- Work closely with enterprise professionals. This includes working closely with enterprise technical architects and reuse engineers to leverage and enhance the existing and “to be” technical infrastructure; enterprise architects and portfolio managers to fit into the overall business ecosystem; senior managers who should be governing the various teams appropriately; operations staff to support your organization’s overall development and operations (DevOps) efforts; data administrators to access and improve existing data sources; IT development support people to understand and follow enterprise IT guidance; and business experts who share their market insights, sales forecasts, service forecasts, and other important concerns. In other words, teams should adopt what Mark refers to as a “whole enterprise” mindset.
- Adopt and follow enterprise guidance. Your organization may have, or hopes to one day have, a range of standards and guidelines (guidance) that it wants delivery teams to adopt and follow. This may include guidance for coding, user interface development, security, and data conventions to name a few. Following common guidance increases the consistency and maintainability of your solutions, and thus your overall quality.
- Leverage enterprise assets. There may be many enterprise assets, or at least there should be, which you can use and evolve. Disciplined agile teams strive to work to a common infrastructure; for example, they use the enterprise-approved technologies and data sources whenever possible, and better yet they work to the “to be” vision for your infrastructure. If your organization uses a disciplined architecture-centric approach to building enterprise software, there will be a growing library of service-based components to reuse and improve upon for the benefit of all current and future solutions. To do this DA teams will collaborate with enterprise professionals throughout the lifecycle and particularly during Inception during envisioning efforts. Figure 1 summarizes the Inception phase goal Align with Enterprise Direction which summarizes the strategies you may choose to follow. Read Disciplined Agilists Take a Goal-Driven Approach for more information on DA’s goal-driven strategy.
- Enhance your organizational ecosystem. The solution being delivered by a DA team should minimally fit into the existing organizational ecosystem – the business processes and systems supporting them – it should better yet enhance that ecosystem. To do this, the first step is to leverage existing enterprise assets wherever possible as described above, often working with enterprise architects to do so. In addition to the enterprise architects DA teams will also work with operations and support staff closely throughout the lifecycle to ensure that they understand the current state and direction of the organizational ecosystem. DA teams will often be supported by an additional independent test team that will perform production integration testing (amongst other things) to ensure that your solution works within the target production environment which it will face at deployment time. Furthermore, experienced DA teams will even fix problems that they run into via proven refactoring techniques. Figure 2 summarizes the general goal Leverage and Enhance Existing Infrastructure which summarizes strategies for how DA teams may accomplish this.
Figure 2. General Goal: Leverage and Enhance Existing Infrastructure (click to expand).
- Adopt a DevOps Culture. DA teams will work with operations and support staff closely throughout the lifecycle, particularly the closer you get to releasing into production. DevOps culture and strategies are baked right into DA.
- Share learnings. Disciplined agile teams are learning oriented, and one way to learn is to hear about the experiences of others. The implication is that DA teams must also be prepared to share their own learnings with other teams. To do this organizations might choose to support agile discussion forums, informal presentations, training sessions delivered by senior team members, and internal conferences to name a few strategies.
- Adopt appropriate governance strategies. Effective governance strategies should enhance that which is being governed. An appropriate approach to governing agile delivery projects, and we suspect other types of efforts, is based on motivating and then enabling people to do what is right for your organization. What is right will of course vary, but this typically includes motivating teams to take advantage of, and to evolve, existing corporate assets following common guidelines to increase consistency, and working towards a shared vision for your organization. Appropriate governance is based on trust and collaboration. Appropriate governance strategies should enhance the ability of DA teams to deliver business value to their stakeholders in a cost effective and timely manner. Unfortunately many existing IT governance strategies are based on a command-and-control, bureaucratic approach which often proves ineffective in practice. Our book, Choose Your WoW!, explores appropriate governance, the impact of traditional governance strategies, and how to adopt an appropriate governance strategy in detail. The article Adopting Agile Governance Requires Discipline also provides greater insight.
- Open and honest monitoring. Although agile approaches are based on trust, smart governance strategies are based on a “trust but verify and then guide” mindset. An important aspect of appropriate governance is the monitoring of project teams through various means. One strategy is for anyone interested in the current status of a DA team to attend their daily coordination meeting and listen in, a strategy promoted by the Scrum community. Although it’s a great strategy we highly recommend, it unfortunately doesn’t scale very well because the senior managers responsible for governance are often busy people with many efforts to govern, not just your team. Hence the need for more sophisticated strategies such as an “development intelligence” approach supported via automated dashboards.
Why is Enterprise Awareness Important?
Agile has done a great job of helping the IT profession refocus from individual to team awareness. But if we want to be effective as professionals we at least need to promote the philosophy of enterprise awareness, so that we’re optimizing the work that we do for our organization. Agile teams that are enterprise aware will work closely with enterprise professionals, such as enterprise architects and operations staff, to ensure that they are leveraging and better yet enhancing the existing infrastructure. Their architectures will reflect their organization’s technical roadmap and similarly the scope of their effort will reflect their organization’s business roadmap. They will follow existing development guidelines and enhance them where appropriate.
By working in an enterprise aware manner DA teams enjoy:
- Higher levels of productivity because they are less likely to reinvent the wheel
- Quicker times to deployment/market because they have less work to do
- Higher return on investment (ROI) because they have less work to do
- Higher levels of quality through following common conventions and reuse
Challenges to Enterprise Awareness
Unfortunately there are two main challenges to supporting enterprise awareness on agile teams. First is the cultural challenge within the agile community that some “agile purists” perceive this as unnecessary overhead. Reasons for this misunderstanding include a lack of understanding of the overall enterprise picture or some agilists who have previous experiences with enterprise professionals who struggle to work in an agile manner. This points to the second challenge that enterprise professionals often don’t understand how to work effectively with agile teams. Sometimes this is because the agile teams they’ve been working with until now haven’t been sufficiently disciplined to work with them effectively, but more often than not it’s because they still choose to follow older, more traditional approaches to their craft. With Disciplined Agile we are actively working on describing an agile/lean workflow for enterprise IT.
These challenges are cultural in nature, and thus difficult to overcome. Agilists and enterprise professionals need to respect one another and strive to learn more about what the other group is trying to accomplish. They must strive to work with one another and thus learn from each other. Furthermore, they must build a culture of shared commitment and responsibility to the organization. Not only is this possible it is highly desirable.
Disciplined agile teams and more importantly DA practitioners are enterprise aware. They recognize that enterprise aware strategies improve their ability to provide value to their stakeholders both within the scope of a solution as well as at the organizational level. To coin an environmental cliché: Disciplined agilists act locally and think globally.