Disciplined Agile
by Tatsiana Balshakova,
Mark Lines, Mike Griffiths, James Trott, Bjorn Gustafsson, Curtis Hibbs, Scott Ambler
This blog contains details about various aspects of PMI's Disciplined Agile (DA) tool kit, including new and upcoming topics.
View Posts By:
Tatsiana Balshakova
Mark Lines
Mike Griffiths
James Trott
Bjorn Gustafsson
Curtis Hibbs
Scott Ambler
Past Contributors:
Joshua Barnes
Michael Richardson
Daniel Gagnon
Valentin Tudor Mocanu
Kashmir Birk
Glen Little
Klaus Boedker
Recent Posts
DA 5.6 is released
Disciplined Agile 5.5 Released
Choose Your WoW! Second Edition Is Now Available
Requisite Agility applied in Project Management
Disciplined Agile and PMBoK Guide 7th Edition
Categories
#ChoiceIsGood,
#ChooseYourWoW,
#ConsumableSolution,
#ContinuousImprovement,
#CoreAgilePractices,
#experiment,
#Experimentation,
#GuidedContinuousImprovement,
#Kaizen,
#LifeCycles,
#ProcessImprovement,
#TealOrganizations,
Adoption,
agile,
agile adoption,
Agile Alliance,
Agile Business Analyst,
Agile certification,
agile data,
agile governance,
agile lifecycle,
agile metrics,
agile principles,
agile transformation,
Agile2018,
Agile2019,
Agile20Reflect,
AgileData,
Analogy,
announcement,
Architecture,
architecture,
architecture owner,
Articles and publications,
Asset Management,
Atari,
Backlog,
Barclays,
being agile,
benefits,
bi,
blades,
book,
Branching strategies,
Browser,
Business Agility,
business intelligence,
business operations,
capex,
Case Study,
Certification,
certification,
charity,
Choose your WoW,
CMMI,
cmmi,
Coaching,
Collaboration,
Communications Management,
Compliance,
Compliancy,
Conference,
Construction,
Construction phase,
Context,
Continuous Improvement,
coordination,
COVID-19,
Culture,
culture,
Cutter,
DA,
DAD,
DAD Book,
DAD discussions,
DAD press,
DAD roles,
DAD supporters,
DAD webcast,
DADay2019,
Data Management,
database,
dependencies,
Deployment,
Development Strategies,
DevOps,
disaster,
Discipline,
discipline,
Disciplined Agile,
disciplined agile delivery,
disciplined agile delivery blog,
Disciplined Agile Enterprise,
disciplined devops,
Documentation,
Domain complexity,
dw,
DW/BI,
Energy Healing,
Enterprise Agile,
Enterprise Architecture,
Enterprise Awareness,
enterprise awareness,
Essence,
estimation,
Evolving DA,
Executive,
Experiment,
facilitation,
FailureBow,
feedback-cycle,
finance,
Financial,
FLEX,
Flow,
foundation layer,
Funding,
GCI,
GDD,
Geographic Distribution,
gladwell,
global development,
Goal-Driven,
goal-driven,
goals,
Governance,
GQM,
Guideline,
Hybrid,
Improvement,
inception,
Inception phase,
India,
information technology,
infosec,
Introduction,
iterations,
Kanban,
large teams,
layer,
lean,
Lean Startup,
learning,
Legal Project Management,
LeSS,
Lifecycle,
lifecycle,
Manifesto,
mark lines,
marketing,
MBI,
Metaphor,
Metrics,
metrics,
mindset,
Miscellaneous,
MVP,
News,
News and events,
Non-Functional Requirements,
non-functional requirements,
Non-solo development,
offshoring,
Operations,
opex,
Organization,
Outsourcing,
outsourcing,
paired programming,
pairing,
paper,
People,
People Management,
phases,
Philosophies,
Planning,
PMBoK,
PMI,
PMI and DA,
PMI Chapter,
Portfolio Management,
post-format-quote,
Practices,
practices,
Principle,
Process,
process improvement,
process tailoring,
Product Management,
product owner,
Product Owners,
productivity,
Program Management,
Project Management,
project-initiation,
Promise,
Quality,
quality,
rational unified process,
Refactoring,
Reiki,
Release Management,
release management,
Remote Training,
Remote Work,
repeatability,
requirements,
Requirements Management,
research&development,
responsibilities,
retrospectives,
Reuse,
Reuse Engineering,
ride for heart,
rights,
Risk Management,
Risk Management,
Risk management,
Roles,
RUP,
SAFe,
sales,
Scaling,
scaling,
scaling agile,
Scheduled Workshops,
SCM,
scorecard,
Scrum,
ScrumMaster,
SDLC,
Security,
security,
self-organization,
SEMAT,
serial,
skill,
solutions software consumable shippable,
Stakeholder Management,
strategy,
Support,
Surveys,
Teal organizations,
team development,
Team Lead,
team lead,
Teams,
Technical Debt,
Teleconferencing,
Terminology,
terraforming,
test strategy,
testing,
time tracking,
Tool kit,
Toolkit,
tools,
traditional,
Transformation,
Transition iteration,
transition phase,
Uncategorized,
Upmentors,
Using PMI Standards,
value stream,
velocity,
vendor management,
Virtual Training,
Workflow,
workflow,
workspaces
Date
Viewing Posts by Scott Ambler
| This posting, the latest in our series focused on a disciplined agile approach to product management, overviews the activities associated with it. The Disciplined Agile (DA) toolkit promotes an adaptive, context-sensitive strategy. The framework does this via its goal-driven approach that indicates the process factors you need to consider, a range of techniques or strategies for you to address each process factor, and the advantages and disadvantages of each technique. In this blog we present the goal diagram for the Product Management process blade and overview its process factors.
The following process goal diagram overviews the potential activities associated with disciplined agile product management.
.jpg)
The process factors that you need to consider for product management are:
- Evolve business vision. Product managers will work closely with stakeholders, and in the case of new products/solutions potential stakeholders, to understand their needs. The goal is to develop roadmaps for individual products, product lines, and for the business itself. These roadmaps describe the current vision for the near term, intermediate term (3-12 months), and long term (one year or more) with less detail the further out in time the roadmap goes. These roadmaps help the product managers to guide their prioritization decisions and provides input into the planning activities of other efforts (such as the Enterprise Architecture and Portfolio Management activities).
- Explore potential products. Product managers want to identify potential products that will provide significant value to your organization. They may do this via a variety of means, including the more traditional approaches of building a business case to more agile/lean strategies such running a small experiment.
- Prioritize potential products. There will be many potential products that your organization would like to invest in, but a limited budget to do so. The implication is that only the highest priority products will be developed, and therefore need to be prioritized appropriately.
- Evolve business roadmap. The business and/or product roadmap is developed and evolved by your product management activities. Traditional strategies tend to take either an annual or ad-hoc approach whereas more disciplined agile strategies take more of a rolling wave approach.
- Allocate features. Features – which could be captured in the form of epics, stories, feature statements, or other forms – will need to be allocated to delivery teams so that they may be implemented. These features will need to be prioritized by the product managers (who are often in the role of Product Owner on the delivery teams) so that the teams know the order in which to implement the functionality.
- Manage functional dependencies. Functional dependencies often exist between products, due to the usage of common platforms and the need for integrated solutions, and these functional dependencies need to be managed. The product managers will want to manage these dependencies so as to optimize when functionality is implemented and released into production. For more information on dependency management strategies, please see Managing Dependencies Between Agile Teams, Managing Dependencies Between Agile and Lean Teams, and Managing Dependencies Between Agile/Lean Teams and Traditional Teams.
- Market products. Product managers will market their products to their potential customer base to increase the usage of the products. The need for such marketing is clear in the case of commercial products and other types of solutions intended for public use. Marketing is also needed for solutions developed for internal usage to increase the chance that the potential user base knows about the existence of the (upcoming) release of the product.
Future blog postings in this series will explore the workflow between product management and other process blades as well as the internal workflow of a product management team.
|
Posted
by
Scott Ambler
on: August 26, 2015 05:22 PM
|
Permalink |
Comments (0)
| 
Product management includes the acts of identifying and evolving your organization’s business vision; of identifying and prioritizing potential products/solutions to support that vision; of identifying, prioritizing, and allocating features to products under development; of managing functional dependencies between products; and of marketing those products to their potential customers. Disciplined agile product management is product management performed in a collaborative and evolutionary manner that reflects the context of your organization.
Why Product Management?
You need an effective approach to product management because you want:
- To build the right product(s). You will always have many more ideas for products than you can possibly fund. Your product management team will need to prioritize the ideas for potential products so that they can focus on the ones that will provide the most value to your organization.
- To stop building the wrong product(s). Product managers will monitor the work of development teams, ongoing experiments, and even existing solutions running in production to determine their effectiveness. Products that aren’t effective must either be evolved or cancelled to enable you to focus on high-value products.
- The right product features at the right time. When there are many delivery teams working in parallel there will be functional dependencies between the solutions/products being worked on. These functional dependencies need to be taken into account when the work is being prioritized so that the right functionality is available when it is needed.
- To ensure that people use the product. Part of product management is marketing to potential end users/customers. If people don’t know that functionality is available to them then they are unlikely to use/buy it.
In future blog postings in this series we will explore in detail the activities of Product Management, how it fits into your overall IT effort, and the workflow that potentially occurs within a Product Management team.
|
Posted
by
Scott Ambler
on: August 25, 2015 11:33 AM
|
Permalink |
Comments (0)
| 
Reuse isn’t free. Without funding, either implicit or explicit, meaningful reuse simply doesn’t happen. In short, your approach to funding is a critical success factor for your reuse engineering strategy.
In this blog posting we explore several strategies for funding reuse within your organization. The funding strategies, from most to least desirable, are:
- Funded reuse-engineering team. A team of one or more people in the role of reuse engineer is provided explicit funding to support and enhance the reuse efforts within your IT department.
- Asset-level funding. Funding for a specific reusable asset, such as a security framework or collection of micro services, is explicitly budgeted for. This funding should cover the development, enhancement, and long-term support of the asset.
- Development team-based funding. Funding for the use, development, and enhancement of reusable assets is included in the budget for development teams. Such funding is often accompanied by mandates along the lines of “The team will achieve X% levels of reuse” (although teams are rarely measured against these mandates in practice).
- No explicit funding. With this approach reuse occurs on an ad-hoc basis within delivery teams, often driven by tactical decisions at the team level as opposed to strategic decisions at the organizational level.
- Chargeback funding. Delivery teams are charged for usage of an asset. In some extreme cases development teams are charged to download an asset from the reuse repository, typically because that’s easier to charge them at this point in time over charging for actual usage.
Table 1 compares and contrasts these funding strategies.
Table 1. Comparing the reuse funding strategies.
| Strategy |
Advantages |
Disadvantages |
Considerations |
| Funded reuse engineering team |
- Reuse is actively supported across all IT
- Long-term support activities, such as evolution of assets and reuse repository, are directly funded
- Cost of reuse engineering is easily measured
|
- Value provided by reuse engineering team must be measured to justify continued, year-over-year funding
- Reuse engineering team becomes a target for financial cuts because the cost is easily measured but the value provided is difficult to measure
|
- Supports a robust, organization-wide, reuse engineering strategy
- Significant discipline required: IT executives must understand and be prepared to execute an explicit reuse engineering team strategy
|
| Asset-level funding |
- Development of potentially reusable assets are funded in a targeted manner
- Cost of individual assets easily measured
|
- Typically used for initial development of an asset, but long-term support and enhancement is often neglected
- Can result in development of similar assets by disparate teams
|
- Useful first-step towards the funding of a reuse-engineering team
- Can be made to work in organizations with a project-based IT funding, although long-term support and enhancement of the asset can be a struggle in such situations
|
| Development team based funding |
- Development of potentially reusable assets are funded
|
- Difficult to fund ongoing enhancement and support of your reusable assets with this strategy, unless the team is stable over the long term and willing to support the assets that they create
- Funds earmarked for reuse often diverted for development of non-reuable functionality
- Many “potentially reusable assets” are created yet few are reused by other teams due to lack of infrastructure to support wide-scale reuse
|
- This strategy may be your only option in IT departments with strict project-based IT funding
|
| No explicit funding |
- Some delivery teams, particularly very disciplined ones, will still choose to have high levels of reuse even when no organizational support is provided
|
- Reuse will be inconsistent at the organization level
|
- The only way reuse will happen in this situation is through the maturity and enterprise awareness of the delivery teams
|
| Chargeback funding |
- Potential exists to fund ongoing support and enhancement of reusable assets
|
- Development teams are punished for reusing assets, motivating them to create their own versions
- Complexity of chargeback added to overall organizational bureaucracy, effectively adding waste to your IT processes
|
- Chargeback strategies will undermine if not destroy your reuse engineering endeavour
- There is no situation where we would recommend this strategy
|
Combinations of these strategies can of course be implemented.
Related Reading
|
Posted
by
Scott Ambler
on: August 23, 2015 08:23 AM
|
Permalink |
Comments (0)
| 
Agile development teams build new things every day, and some of these things can be generalized into robust assets for reuse by other teams. This is particularly true for teams that are working with new technologies and techniques: for example, your first few C# teams are likely to develop useful micro services, or the first few agile teams to write personas will develop a potentially reusable template. The downside is that the first people to work with a technique or technology are most likely to make “beginner mistakes,” so their work may not be something you want to share with others. The implication is that you either need to wait to harvest a higher quality asset later or be willing to invest more effort into generalizing the asset. We’ve found that it’s usually best to wait, giving you more time to gain experience with the technology or technique and discover if there is actually a need for the asset on other teams.
One of the key activities performed by a reuse engineering team is to harvest potentially reusable assets so that they may be generalized for reuse on other teams. There are five steps to the harvesting process:
- Find a potentially reusable asset. Reuse engineers will be constantly on the look out for potentially reusable assets. They find out about them via word of mouth, through internal online discussions, during enterprise architecture coordination meetings, and from suggestions made by members of development teams.
- Assess the viability of the asset. Just because someone thinks that an asset is potentially reusable doesn’t mean that it is. The reuse engineers must determine whether there is a likely demand for the asset. When other several other development teams have something similar, or are at least thinking about developing such an asset soon, then this is a fairly straightforward decision. If there isn’t any immediate customers for the asset then that’s an indication that you are likely better to wait until it’s clear that other teams will be able to leverage the asset before you invest in generalizing it.
- Generalize the asset. It takes much more effort to generalize an asset to make it reusable than it does to develop it for single-purpose usage. For example, studies showing that development of reusable code costs 111% to 480% of the development cost of single-purpose code. Generalizing an asset requires great skill because the person doing this needs to be familiar with not only the technology or technique behind the asset but also with how it will potentially be used in practice. Part of generalization is to ensure that the asset conforms to appropriate guidance and making it easy to understand by its intended audience. You also want to validate the asset. You’ll need to unit test code-based assets and review templates and non-code artifacts with their target audiences. Concise overview documentation is important, but far more important are one or two good examples showing how to use the robust artifact properly. In the case of code, your unit tests may be sufficient. For templates, you should capture an actual example of the document for which it is a template (for example, to support a use case template, you should harvest one or two well-written use cases from a project team).
- Reintegrate the asset into the source. The reuse engineers do this “extra” integration work so that the source team gets the advantage of working with the improved asset without taking on the cost of having to refactor their solution to do so.
- Publish the asset. The asset needs to be made available to the teams who could actually reuse it. The publishing effort typically entails putting the asset into a reuse repository (which could be anything from a folder to a configuration management system to a commercial asset management product) and announcing the availability of the asset to potential customers of it.
There are four basic timing strategies for when to harvest an asset:
- Harvest in-progress. You generalize an asset developed by a team before it has been released into production. The reuse engineers do this by working closely with the development team, often joining them for a period of time so that they can generalize the asset and do the work to reintegrate the new version into whatever the team is building.
- Harvest after production release. With this strategy the reuse engineers wait until the source development team has finished building the asset. As with the first strategy they do the work to generalize reintegrate the asset. In cases where the team isn’t working on a new release they do a “patch” release of the solution into production, but this obviously isn’t a desirable situation to be in (it’s far better to have stable development teams).
- Harvest a legacy asset. In rare situations it is possible to harvest an existing asset currently deployed in production by encapsulating access to it. Although this strategy is often talked about it is rarely used in practice because it requires the asset being harvested to be well architected in that it must be loosely coupled and highly cohesive. Most legacy assets tend to be the exact opposite, which is the primary reason why they’re not already being reused by other teams.
- Harvest for a new project. You wait until a project team needs an asset previously developed by another team and then decide to either reuse the asset as-is or to generalize it. This strategy has the advantage that you know there is a customer for the reusable asset before you invest in it. However, the team may not be able to wait for the asset to be generalized. Furthermore, unless the asset was developed recently people are likely to have forgotten about it, implying that this strategy has a short viability time frame.
|
Posted
by
Scott Ambler
on: August 17, 2015 09:11 AM
|
Permalink |
Comments (0)
| During the first week of August we ran a mini-survey exploring whether or not teams have fixed iteration lengths. It was motivated by a question about the results of our Agile Cadences and Technical Debt Survey we ran earlier this year. Apparently the person was working on a team where their iteration length often shifted and he was wondering how common this was. I responded that it wasn’t very common and that instead the common practice was to not allow the iteration length to vary. He found this hard to believe and wondered why we didn’t have any data to back up that claim. So we decided to run a short survey to discover what is happening in practice. Over a one-week period we had 264 responses (thank you very much to those of you who did take the time to fill out the survey).
The following diagram summarizes the results of the third question that explored whether teams that were working with iterations kept the iteration length fixed. As you can see, the majority of agile teams (68%) that have iterations/sprints keep their iteration lengths fixed. Furthermore, for those teams that allow iteration lengths to vary it’s a rare occurrence (often the result of valid reasons, such as a holiday in the middle of the iteration).

The survey consisted of four questions:
- The first asked if the respondent was working on an agile team (if not they exited the survey)
- The second asked how long iterations are (the majority said two weeks or less). If the team didn’t work with iterations (such as lean teams or continuous delivery teams) or if the respondent didn’t know then they exited the survey.
- The third question asked whether the length of the iteration was fixed (see the chart above).
- The fourth question was presented only to people who said that their iteration length could vary. It explored the reasons why this was the case. I will summarize these results in a future blog posting.
|
Posted
by
Scott Ambler
on: August 12, 2015 09:25 AM
|
Permalink |
Comments (0)
|
Maybe the dingo ate your baby.
- Elaine Benes
|