Disciplined Agile and Essence: Succeeding Together
|
![]() The Disciplined Agile (DA) tool kit references hundreds of agile, lean, and in some cases “traditional” techniques, putting them into context. One such technique is database refactoring, adopted from the Agile Data (AD) method, which is critical for the Improve Quality process goal. Where a code refactoring is a simple change that improves the quality of code, a database refactoring is a simple change to your database that improves the quality of its design without changing the semantics in a practical manner. Database refactoring is a sophisticated practice, in fact I co-wrote a 400+ page book about it, Refactoring Databases: Evolutionary Database Design, with Pramod Sadalage in 2006. The book, which won a Jolt Productivity Award, provides a detailed description of the practice. But what if you’d like to start with something simpler before jumping into the details? This is where Essence comes in. A few months ago a group of us – Roly Stimson of IJI, Nebojsa Trninic, Vladimir Savic, Ervin Varga, and myself – decided to experiment with the idea of essentializing DA. To focus our work we decided to start with a simpler problem, that of essentializing a subset of the techniques referenced by DA, in this case those of Agile Data. We then focused further on a minimal viable product (MVP), in this case the single practice of database refactoring. We captured the practice using Essence Enterprise 365 from IJI, a screen shot from which is shown below. Essence is a language for describing software engineering methods and practices from Ivar Jacobson International (IJI). Essence was created as a part of Software Engineering Method and Theory (SEMAT) and approved by The Object Management Group as a standard in 2014. I’ve been working with SEMAT from its beginnings in 2009 and have known (and admired) Ivar since the late 1990s. ![]() As you see in the screen shot we summarized database refactoring using the tool, describing the practice as a collection of cards. The tool can be used to develop process material, as we’ve done, and more importantly it can be used by teams to tailor and evolve their own process. Within the tool are dozens of practices, including ones from Scrum and XP, that a team can configure to reflect their own way of working (WoW). In the following picture you see that these cards can also be printed out and used in a physical manner, often for process tailoring or training. In November I experimented using the cards to train a small group of people. We played a game where the group worked through how they would go about refactoring an existing database. They discussed each card, moving them around on the table until they had something that looked like the picture below. The cards provided a tactile way for them to explore database refactoring by thinking through how they would apply it in practice. IJI has identified a collection of teaching and process tailoring games using cards such as this. ![]() An interesting result of this teaching experiment is that we discovered that we wanted more cards. The group wanted cards to explore automated database regression testing, agile data modelling, and continuous database integration in detail, and of course how all of these things fit together. So it looks like we have our work cut out for us. We’d love to hear what you think about this effort. This blog has been a brief description of our work to essentialize the practice of database refactoring, but we have a lot more work ahead of us. A more detailed description will be presented in a forthcoming research paper that the team is working on. We also intend to continue with this essentialization effort to share some of the key DA techniques within Essence. Stay tuned!
|
Choose Your WoW! is now available
|
Our new book, Choose Your WoW! A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working, is now available! This handbook is an indispensable guide for agile coaches and practitioners to identify what techniques – including practices, strategies, and lifecycles – are effective in certain situations and not as effective in others. This advice is based on proven experience from hundreds of organizations facing similar situations to yours. There are literally hundreds of books that have been written on agile and lean. So why one more? Most books focus on just a subset of what is required to delivery end-to-end solutions in an agile manner. Developing a coherent approach to the complete picture by piecing together these practices is difficult, especially when the advice in many of these books is conflicting and not well researched, often based on just a few successful applications in a specific context. Disciplined Agile (DA) is the only toolkit available that combines the most effective practices across lean and agile methods into one comprehensive context-driven approach that you can use to optimize your way of working (WoW). This book is organized into several sections:
For more information, please visit the Choose Your WoW! book page. |
Supporting Several Lifecycles Allows for Wider Adoption of Agile
|
One of the key benefits of Disciplined Agile is its flexibility to apply different lifecycles, practices, and strategies based on the vast array of situations that a typical enterprise faces. It is “pragmatic agile” after all. Unfortunately many organizations box agile into a corner. Many try to standardize on one flavor such as Scrum/XP, Kanban, or worse, a prescriptive scaling pattern such as SAFe. We also sometimes see project authorities restrict agile to initiatives that pass all of a certain criteria such as; teams of less than nine people, full-time Product Owner, requirements not needed beyond user stories, collocated team, whole team, and other characteristics of “classic agile”. Using such restrictive selection criteria means that the percentage of teams that are permitted to adopt agile is often far less than if a more pragmatic approach to applying agile was permitted. As a result we see situations whereby a large percentage of projects that could benefit from agile approaches are forced to use traditional methods. This marginalizes the adoption of agile in such enterprises as exceptions rather than the default approach that it should be. We know that the majority of enterprises can benefit from each of DA’s lifecycles. There are some situations where a basic Agile/Scrum approach is the best choice, but in others where the work is difficult to plan a Lean lifecycle would be a better fit. On other teams that have good Disciplined DevOps technical practices in place the advantages of the Continuous Delivery:Lean lifecycle could be applied. Additionally, many organizations have leading edge initiatives such as mobile applications where the market demand of features is not known so it may be that the Exploratory lifecycle is the best fit. Different teams require different approaches. Choice is good. Organizations that have adopted Disciplined Agile appreciate this flexibility and over time their mix of lifecycles changes as they move their the projects in their application portfolio from tradition to basic, and eventually to the advanced continuous lifecycles. The following diagram depicts an actual strategy of one of our customers, which shows their expected evolution to a mix of lifecycles as their adoption proceeds and their agile capabilities improve. As you can see from this example this organization expects to use Agile/Scrum for the majority of new agile initiatives but gradually increase the mix of the more advanced Continuous Delivery lifecycle as the teams’ capabilities improve. This is a typical pattern that we see for companies that are adopting Disciplined Agile, and in fact our new book Introduction to Disciplined Agile Delivery describes a team’s process improvement journey doing exactly that. The flexibility to adopt different lifecycles and apply a pragmatic and measured approach to adopting agile practices means that a far greater of percentage of projects can benefit from agile. |
A retrospective on years of process tailoring workshops
In my experience in running dozens of process tailoring workshops, over several years, with of teams of every shape size and experience level and in different organizations, the most recurring comment is that the workshops “revealed all kinds of options we didn’t even realize were options!” Although almost always a bit of a hard sell at the outset, I have yet to work with a team unable to quickly grasp and appreciate the value of these activities. I had to do quite a bit of experimenting in order to get the timing and content of the workshops right – and learned over time that success is also predicated on knowing whom to include when. My first attempts were gruelling, close-to-full day affairs with entire teams in attendance, held at or close to project kickoff. Though transparent and inclusive, to my surprise this approach was actually deemed a waste of their time by many team members, especially those whose contribution would occur primarily in the construction phase. First lesson learned – A technical team lead, architect or senior developer can actually stand in for most of the developers in the early stages. I find it helpful to always bear in mind what George Dinwiddie (http://www.velocitypartners.net/blog/2014/02/11/the-3-amigos-in-agile-teams/) dubbed “the 3 amigos” in determining who needs to attend a process tailoring session. Be it at inception, construction, or even in transition, you need to tailor not only the processes, but also the attendance of the workshop in order to ensure you have the right mix of people, with the right collaborative mindset, to cover issues pertaining to 1) the business problem being addressed 2) the potential technical solutions to that business problem and 3) the processes (both team and organizational) that will enable the work to be carried out. My second lesson learned pertained to the format and presentation of the process blades themselves. I found that simply working from the published process maps was insufficient, as we ran into onerous issues around how to best record the WoW choices teams were making. I eventually reproduced the entire process blade library in a spreadsheet format, with columns for comments. This seemingly innocuous administrative step quickly ushered in the third lesson learned – the sessions can be used not merely to document an immediate WoW decision, but also to identify future, more “mature” aspirational choices which the team can set as goals over a specified time period. A fourth lesson learned, and one that was also enabled by using a simple spreadsheet tool, is that it became far easier to Align with Enterprise Direction. By “locking down” enterprise-level process choices across all the blades where applicable, a lot of potentially fruitless (at that point in time) discussion was saved for many a team. No use in discussing test automation strategies to death for instance in divisions still completely relying on manual tests, or at the opposite end of the spectrum, teams endowed with high-performing, well-integrated CI/CD environments. This is a large part of what DA calls self-organization within appropriate governance. The fifth and final major lesson learned was to never start from a blank slate if at all possible. I would typically show up at a team’s first process tailoring workshop with a pre-filled version from another team facing somewhat similar challenges (the identifying data being scrubbed so they could not identify the previous team). I would then challenge the new team to reflect on the choices and determine whether they made sense for their own context. This also saved time and effort, as there are recurring themes and common challenges within organizations that all teams face. Here’s an important note on determining participation – Ultimately, the teams themselves are the best arbiters of who should attend the sessions at varying stages of advancement. Allowing this will typically result in a bit of initial over participation, followed by under participation (especially is the pressure is on to get “real” work done!) – the key as facilitator is to coax the team back into balanced participation, and to lobby the organization for the necessary support in freeing people up. The support will become easier and easier to obtain as the benefits of allowing teams to choose their WoW become apparent. Finally, be prepared for surprises. I once ran through the Program process blade with a team, only to have them come to the realization that … they weren’t really a Program! Which was actually a good thing as it helped avoid introducing a considerable amount of overhead, particularly in the area of program-level KPIs. |
When You Don't Invest in People You Get a Talent Shortage
|
On Monday I attended a talk by Mike Rosen about successful Digital Transformation. As always, Mike’s presentation was very insightful. One of many points that he made is that most organizations are struggling with the current talent shortage, something that in my experience has been a problem worldwide for several years and will continue to be so. There are many reasons for why there is a talent shortage:
Here are a few things that your organization can do to start addressing its talent shortage:
The primary reason why there is a shortage of talented people is because organizations are underinvesting in the learning paths of their staff. If you want talented people you’re going to have to help create them.
Related reading: |












