Navigating Transformations:Eight Essential Insights

With a background in leading product development and engineering teams, I’ve learned that successful transformations require deliberate planning and execution. This guide outlines eight key considerations to help leaders drive meaningful change.

  1. Establish Purpose

Why change? The more people understand and buy into the need for change, the greater the momentum for a successful transformation

  1. Successful change is a team sport

Change-agent heroes can be very lonely. Invest in creating a winning coalition.

Effective transformational leaders need creativity, need to understand system thinking, need passion about working with people and the ability learning from difficult circumstances.

  1. Define the baseline

Know where you are coming from particularly in terms of the metrics that you want to work on and improve.

  1. Look below the surface

Avoid curing only symptoms. Frequently, what is visible on the surface may not tell the full story or give enough insight into understanding the root cause of your problems. It’s important to analyze and understand sufficiently what needs to be fixed so that the intended and sustainable change will happen.

However, also bear on mind not to get stuck with analysis paralysis.

  1. Understand the system

Be mindful that often things to change depend on each other.

E.g., troubled teams rarely follow mature processes, produce great products,  built with compelling design and architecture. So, if you want to se one particular outcome, you may need to consider other changes as prerequisites.

I found the B-A-P-O principle (Business à architecture à process à organization structure) useful that suggests the following:

Start with the intended business outcome. Next, define the architecture and product design that supports this goal. Then, establish the processes needed to execute. Finally, organize teams to implement the plan.

  1. Think big!

… but start small!

Having a clear picture on mind of where you want to go and being able to express a compelling vision inspiring the people implementing the change can be tremendously helpful. However, the big picture may miss the view of critical details or rely on unrealistic assumptions. Hence, encourage running small experiments, run such experiment frequently, carefully evaluate their results – and learn from them by utilizing “inspect-and-adapt” cycles for the transformation itself.

  1. Show progress

Establish key metrics and track the progress – or failure – to encourage continued focus on the change

Seek to identify and nurture developing lighthouse(s) – such as teams, locations, functions – for change

Celebrate success, encourage further engagement.

  1. Strive to improve something always!

Seek leaving the organization, product, engineering teams – and as result the business – in a better state than what I found upon joining.

Transformations are complex but rewarding. By focusing on these eight principles, leaders can guide their teams through meaningful and sustainable change.

How Agile are you really?

Sentiments about how Agile would not work because its introduction having missed to produce results that people were expecting are common these days. When engaging in a discussion about the context of the sentiment I found a pretty obvious aspect to probe and challenge the assumption that agile does not work.

What is the typical frequency by which the organization delivers their software? If your organization can still only release new software versions once every three months you need to be honest and ask yourself how far you really have progressed on your agile journey and your actual ability to respond to change?

An organization that can release new versions of their software only once every three months likely has significant room for improvement in their agile journey. Agile emphasizes the ability to deliver small, incremental changes frequently, respond to customer feedback quickly, and maintain adaptability in the face of change. A three-month release cadence often indicates constraints in areas that limit agility.

Indicators of Current Agile Maturity

  1. Delivery Speed:
    • Agile organizations aim for shorter feedback loops with releases happening every sprint (e.g., every 1-4 weeks). Once robust DevOps pipelines have been established, deployments should be possible much more frequently, ideally several times per day.
    • Releasing every three months suggests bottlenecks in the pipeline, such as manual testing, complex dependencies, or a lack of automation.
  2. Technical Practices:
    • Limited release frequency may indicate insufficient adoption of key technical practices, such as:
      • Continuous Integration (CI) and Continuous Delivery (CD).
      • Automated testing and deployment pipelines.
      • Decoupled architectures (e.g., microservices) enabling incremental changes.
  3. Cultural and Process Maturity:
    • Agile organizations focus on delivering value iteratively. A three-month release cycle suggests:
      • Potential resistance to change or risk-averse culture.
      • Over-reliance on extensive upfront planning rather than iterative adjustments.
      • Insufficient alignment between development teams and stakeholders.
  4. Customer Feedback Integration:
    • Delayed releases reduce opportunities to incorporate customer feedback into future iterations, a core tenet of agile.
  5. Dependency Management:
    • A long release cycle can signal complex interdependencies across teams or systems, making it difficult to deploy independently.

Factors Contributing to Long Release Cycles

  • Legacy Infrastructure: Older systems with tightly coupled architectures that make frequent releases risky or resource intensive.
  • Manual Processes: Dependence on manual testing, deployments, or approval workflows slows down the release process.
  • Lack of Automation: Missing CI/CD pipelines, automated tests, or monitoring tools.
  • Organizational Silos: Poor collaboration across development, QA, and operations teams (anti-DevOps culture).
  • High Risk Aversion: Fear of breaking production due to inadequate testing or rollback mechanisms.

How Far Have They Really Progressed?

The three-month cadence suggests they are likely at an early to mid-stage of agile maturity:

  • Early Stage:
    • Teams may be adopting agile practices like Scrum or Kanban but are still constrained by legacy processes or systems.
    • Agile principles are understood but not yet fully implemented at a technical or organizational level.
  • Mid-Stage:
    • Agile processes are in place, but technical debt, architectural challenges, or organizational barriers limit true responsiveness.

Steps to Progress Further on the Agile Journey

  1. Automate Deployment Pipelines:
    • Invest in CI/CD to enable faster, reliable deployments.
    • Automated regression testing to increase confidence in frequent releases.
  2. Modularize Architecture:
    • Break down monolithic systems into smaller, independent components or microservices.
  3. Shift Left on Quality:
    • Integrate testing earlier in the development lifecycle with automated tests and continuous feedback loops.
  4. Embrace DevOps:
    • Foster collaboration between development, operations, and QA teams.
    • Streamline environments and automate infrastructure provisioning.
  5. Reduce Batch Sizes:
    • Focus on delivering smaller, incremental changes rather than bundling large sets of features.
  6. Cultural Change:
    • Cultivate a culture of experimentation and incremental improvement.
    • Encourage collaboration and shared accountability for delivery.
  7. Shorten Feedback Loops:
    • Deliver changes more frequently to gather user feedback and iterate rapidly.

In Summary

A three-month release cycle indicates that while the organization may have adopted some agile practices, they are still constrained by legacy systems, processes, or cultural barriers. They are likely in the early stages of their agile transformation. To move forward, they need to prioritize technical improvements like CI/CD, modular architectures, and automation while fostering a cultural shift toward smaller, faster, and more iterative delivery cycles. Only then can they achieve the agility required to truly respond to change effectively.

Technology Balance Sheet

Above is a slightly different lens through which the effect of the metaphor of “technical debt” may be easier to comprehend.

What do you think: Does this help to explain why technical debt is a matter that the business needs to be as concerned about as engineering teams?

Quality Management for Software Product Development

“Quality comes not from inspection, but from improvement of the production process.“

Edwards Deming

Why is this important?

Product quality is critical for satisfying customers and retaining their loyalty, so they continue to buy from the business in future. Quality products are critical to the long-term revenue and profitability.

Traditional, plan-driven testing frequently leads quality problems and delivery delays due to bottleneck

Plan-driven approaches allocate time for testing towards the end of development.
It may seem practical allowing to test entire system through several quality assurance cycles and fix (“debug”) the entire, integrated system at once. However, when defects or usability issues are inevitably found late, the release will be delayed until these have been fixed. In this model, testing usually becomes the bottleneck that seriously impedes the ability of projects to deliver on time and achieving high product quality.

It is always cheaper to fix bugs earlier on in the development cycle rather than stabilize the completed system with deep-seated defects. Moreover, developers will have to refresh the code in their mind incurring additional so-called switching costs. The time gap between changing the code and running all necessary tests on this code must be minimized in order to reduce the costs and improve the product quality systematically.

Test early and often – “shift left”

Agile practices encourage to “build product quality in” through process improvements including faster, earlier and more frequent testing in the software development lifecycle (SDLC). Bringing development and testing together early is commonly referred to as ‘shifting left’.

To overcome the testing bottleneck of the plan-driven model, agile product development moves the initiation of testing as far to the left as possible beginning at the requirements gathering and product definition stage intended to find and prevent defects early in the software delivery process. The idea is to improve quality by moving tasks to the left as early in the lifecycle as possible.

Cost alone is a very strong incentive for shifting your testing to the left. It has been estimated that over half of all software defects could be identified during the requirements phase, with less than 10% emerging during the development phase of the lifecycle. The cost of resolving these defects works in reverse:

A defect that is removed after the product has gone into product will cost around 100 times more than one that is identified and removed during the requirements phase.

The following pages discuss common approaches and practices to build quality into the product from the start of the effort.

The Ponemon Institute, in 2017

Inspired by the blog post:

https://www.bmc.com/blogs/what-is-shift-left-shift-left-testing-explained/

How to detect false Agile?

Agile is very commonly adopted – at least when you ask people whether they are working in an agile way. Once you get a chance to take a bit closer look at it, often there is quite some room for improvement left in terms of the true Agile way of working.

So, how can you tell whether an organization has adopted Agile effectively yet, or not? Well, you may want to start by asking some questions. How about some of these listed below?
This is by no means meant to be a complete list. I am happy to receive comments or emails suggesting further meaningful and powerful questions that help understand the state of Agile adoption of an organization.

Simple questions to ask:

  • How do you gather feedback about your product(s)?
  • How much has the team budgeted on that development effort to accommodate customer feedback?

Once you have asked these or similar basic questions you may think about asking more detailed questions such as some of the following to get a more complete picture of the situation:

  • Are developers understanding the importance of involving users with the development and actively seeking feedback?
  • Are teams delivering working software to real users every iteration (including the first) and gathering their feedback?
  • Is the feedback from users turned into concrete work items for print teams on short timelines, e.g., 2 or 3 iterations?
  • Is the full ecosystem beyond development agile? Agile development teams eclipsed by linear, bureaucratic deployment is a failure.
  • Are teams empowered to change the requirements based on user feedback?
  • Are teams empowered to change their process based on what they learn?
  • Is there more attention on requirements or compliance than to deploy something useful quickly? Are ‘working builds rarely ready to show at the end of a sprint or get pushed out to the ‘hardening sprint’ or ‘next sprint’?
  • Is there Agile ‘terminology hacking’ by giving plan-driven practices Agile terminology facades, such as ‘QA sprint’ or ‘Hardening Sprint’?
  • Is there more focus on output than the outcome? E.g. the number of features delivered may seem impressive – but how valuable are they in the view of customers?
  • Are the development processes still mostly manual? Is there still a lot of scope for automation left?
  • Despite having nominally assigned agile roles of product owner and scrum master, are these individuals in practice still performing the exact same functions as a project manager in any traditional development framework?
  • Is the plan-driven project simple been broken down into sprints – without allowing for adaptation of the backlog sprint by sprint?
  • Is the product owner merely a ‘proxy’ product owner without real decision power about the product, accountability for its success nor control over the product’s budget, vision, or strategy?

While answers to these questions may not provide the full picture yet about whether or not the organization is effectively applying Agile methods, many of these answers will provide an indication for areas that are worth diving deeper into when seeking to improve business outcomes by continuously improving the way of working.

If you want to know more about this or have suggestions for more great questions, please leave a comment or contact us via LinkedIn or E-Mail . We are working on a set of diagnostics tools to help dive even deeper into the state of agile within an organization.

What are the most common reasons to adopt Agile?

I have been asked several time about what would be the best reasons to consider investing into the implementation of Agile methods. Here are my thoughts.

Need to reduce technical debt

Agile software development encourages to add any defects, feature changes or other maintenance tasks to the product backlog. The team reviews the backlog during each sprint planning to determine what to address next. Thus, each sprint provides opportunity to fix defects along with new feature development.

Easily and quickly adapt to change

Working in time-boxed iterations means the team does not need to wait on a lengthy requirement change, review and approval process. Any change or maintenance item is added to the backlog and allotted to an upcoming sprint based on priority and business need.

Creating alignment between development and testing

Agile software development requires collaboration and involvement that is unusual in traditional plan-driven projects. Before each sprint, the entire team reviews, validates, and agrees on which user stories to assign to the sprint. The developers, testers, and product owner work together to accomplish the items assigned to the sprint. The team meets daily to keep aligned. Each user story developed during a sprint gets verified to ensure it meets the customer’s needs.

Minimize risk via agile software development and test

Although teams do their best to plan all phases of a plan-driven project, there is usually a level of uncertainty that is not common in Agile software development. Traditional software development approaches leave product testing and release to the end of the project leaving it open if the final product meets the customer’s needs. Developing a product in sprints allows teams to quickly determine if they are on track and to adjust almost immediately if needed.

Delivering higher quality product

In plan-driven projects the planned phases are usually packed so full of features that developers must rush to complete them and little time is left for testing which impacts the quality of the product negatively. In Agile projects, the team does not attempt to develop all features at once. Instead, the team assigns a smaller subset of features to each sprint. This allows developers to have more time to really complete those items before release at the agreed upon level of quality. Agile encourages continuous integration (i.e., merging all developers’ working copies to a shared repository several times a day). This gives developers the chance to test issues frequently and address them immediately. Working on a product in small incremental releases ensures that each sprint results in a fully tested and working product.

Performing user-focused testing

Agile is about more than just adapting to change. It is about delivering what is most valuable to the customer. As such, the product owner works closely with the team to help them gain a clear understanding of what is needed. In Agile software development, user requirements are captured  as “user stories.” These stories define an action that provides value to the customer. The user-focused concept of user stories is a stark contrast to the rather lengthy list of requirements developed in a traditional development methodology.

Improve stakeholder engagement

For Agile software development to be successful, it is important for the product owner to be fully engaged throughout the process. That level of engagement does not happen in plan-driven projects. In plan-driven projects, stakeholders aren’t inclined to participate past the requirements gathering phase and only re-engage during user acceptance testing (UAT). Unlike plan-driven, agile product owners are very active participants in Agile sprints. This level of involvement gives them a sense of ownership that encourages further engagement and helps recognize issues early and address them accordingly.

Achieving greater customer satisfaction

The product owner actively participates in the sprints during the Agile development and testing process. Their participation in this manner ultimately fosters a level of engagement that ensures their needs are being met. The customers get to see a working product at the end of each sprint. This level of transparency of the real progress and the ability to deliver releases more quickly and frequently helps establishing trust.

Improve project control

Teams work together, along with the product owner, to determine what goes into each sprint. That way, the team is on the same page about what needs to be delivered. Also, there is less of a chance of surprises or unplanned features making it into the build.

Predictable delivery dates

Plan-driven projects revolve around lengthy project cycles that make it difficult for teams to predict a release date accurately. Agile iterations happen in time-boxed sprints that result in a working product at each release. Thus, the product owner knows that they will get new features at the end of every sprint.

While this list is certainly not complete, I have seen various software product efforts that had uncovered potential for improvement in some of these areas benefit significantly from moving towards Agile way of working.

Journey from Project to Product

I have had the opportunity to work for the better part of my professional life in product-oriented businesses and build my experience around product discovery, definition, design, development, and delivery. Recently, I have recognized more questions from leaders of project-based businesses aspiring to become product-led. Most of my discussions are centered around software, hence I get asked whether moving to a product focus of selling software is a good idea, I respond along with the following:

What are you building today?

a) Are you building and selling customer-made software solutions built for bespoke customers based on their specific requirements and on cost allocations specific to their customer-specific scope and schedule? – Or

b) have you built software in a generic fashion for many customers on an anonymous market sold with a standard license fee or online services subscription fee?

Moving from a.) to b.) is not a trivial effort and requires changes on several fronts starting from a mindset, involving processes and structures, skill sets, and most importantly the financial runway to afford a significant investment before returns can be expected.

Mindset change

The next question to ask: How do you run your business, specifically, how do you set priorities, for example for your developers and how do you measure your – their – success?

Is success a) closing all requirements raised and committed to by the specific customer and b) ensuring that all developers are allocated to specific customer projects and book as many billable hours as possible? Are you applying a traditional plan-driven, waterfall approach to planning and committing projects with fixed scope, timeline, and resources while tracking the progress of projects via milestones? Or –

Are you ready to ready to shift to a goal-directed, long-term, and continuous product planning approach with iterative detailed planning and delivery cycles focused on maximizing customer value?

Process and structures overhaul

How are the processes and structures at your organization set up?

Are project managers running projects in a traditional top-down approach checking frequently on developers whether they adhere to a set of specs with the command-and-control style of management?

Or do you have established professional product management, user experience (UX), and product design? How well do your teams apply agile and DevOps? How mature are your system architecture and the software craftsmanship of your organization? How well do your teams manage to deliver high-quality products and services consistently?

Acquiring new sets of skills

How up-to-date is the skills of your organization and your senior leadership about agile, DevOps, SaaS / PaaS, architecture design “born in the cloud” etc.?

Seeding before harvesting:

Invest into the product journey before expecting to generate lasting returns: Organizations aspiring to shift from project-based, bespoke customer development and system integration services to generic product-based – or even platform – business is usually attracted by the typically higher margins of product businesses – particularly once they manage to scale their product revenue faster than costs for running the business. Investors are attracted by significantly higher company valuation of software product businesses as well.

However, before enjoying such higher returns as business outcomes typically requires significant and sustained investment in developing and upgrading skills, replacing, or upgrading of tools, processes, and practices – particularly when needing to retain the current services business in parallel. The shift from project-driven to product-led does not happen overnight and certainly not accidentally or just based on opportunistic efforts.

On this journey towards a product-led business, setbacks should be expected and allowed for as part of the organization’s learning. Senior leaders expecting short-term results are bound to be disappointed. Without the readiness of executives to invest systematically, strategically, and over considerable time I would not bet my money on the success of the transition from project to product.

10 Popular ways how Leaders can kill the Agile Transformation

The title of this post may seem a bit provocative. I hope that helps draw attention to a fairly serious issue.

Sometime unconsciously leaders on different levels of seniority within the organization exhibited behavior that harms or even derails efforts to improve e.g. product innovation and delivery or other key capabilities targeted by adopting an agile way of working.

Without awareness about the negative consequences it may be difficult to change the situation. So I started collecting some behavioral pattern shown by leaders that I have observed during my professional journey and that I saw having negative consequences for teams trying to improve agility:

  1. Push for agile just for the sake of the “optics of agile” – abusing the label “agile” instead of truly embracing it.
  2. Underestimate the significant impact on culture and leadership behavior – along the lines of an idiomatic expression that we have in my native language: “Wash my back, but don’t make me wet!”
  3. Pushing for too much too fast; setting unrealistic expectations.
  4. Delegating the responsibility for agile implementation far down in hierarchy.
  5. Missing to engage actively and personally in the agile journey.
  6. Miscommunication about the goals and changes driven by the agile transformation.
  7. Missing to fund agile training properly and missing to personally attend agile leadership training.
  8. Insisting on a detailed, long-term project plan with definitive milestones upfront for the agile transformation itself.
  9. Punishing people in public if anything goes wrong.
  10. Pushing for individual incentives that are strictly focused on delivery – for work within the system –  leaving NO ROOM for working on improving the system of delivery.

What are your thoughts? Have you observed any of these behaviors as well? Have you seen other behaviors that harmed the agile transformation?
Please let us know!

What’s the Difference between DoR, DoD and Acceptance Criteria?

To ensure the definition and verification of quality goals it is critical to define when a specific work item is complete and can thus be considered to be in a respective state. For two very important states of a user story – “ready” and “done” the Definition of Ready (DoR) and the Definition of Done (DoD) have to be defined and agreed upon between the relevant stakeholders.

Both definitions (DoR and DoD) are usually created as checklists of the work that must be completed and applies to all user stories!

Quality Built-In by implementing and applying Definition of Ready and Definition of Done

1.Definition of Ready (DoR)

The Definition of Ready defines the quality criteria for the creation of any

  • User story
  • Business epic
  • Product (release) theme

to ensure that any backlog item being considered for work is actually ready to be worked on and to be moved into the next sprint. Specifically, this means that the development team can confidently commit and complete the backlog item by the end of a sprint.

For illustration, here is a sample DoR for User Story definition

Business value is clearly articulated.
Details are sufficiently understood by the development team so it can make an informed decision as to whether it can complete the Product Backlog Item (PBI).
Dependencies are identified and no external dependencies would block the PBI from being completed.
Team is staffed appropriately to complete the PBI.
The PBI is estimated and small enough to comfortably be completed in one sprint.
Acceptance criteria are clear and testable.
Performance criteria, if any, are defined and testable.
Scrum team understands how to demonstrate the PBI at the sprint review.
Example of Definition of Ready (DoR) for User Story Definition

A key element of a User Story are Acceptance Criteria for the User Story. Please note, that Acceptance Criteria are defined specific to a User Story.

Why do User Stories need Acceptance Criteria?

Acceptance criteria are an essential part of user story definition to ensure that developed software meets actual business requirements. They serve as a basis for definition of test cases that ensure achieving business goals and produce bug-free apps.

Writing acceptance criteria is truly a win-win activity for both stakeholders and development teams:

  • The team knows exactly what is expected of them,
  • keeps the stakeholder abreast of development process.

Key considerations regarding Acceptance Criteria – the What?, the Why? and the How?:

What?

  • External quality characteristics specified by the product owner from a business perspective
  • Exit criteria that a component or a system must satisfy in order to be accepted by a user, customer, or other authorized entity

Why?

  • To define boundaries for user story
  • Help the product owner define what they need in order for this user story to provide value (i.e. minimum functional requirements)
  • Help team to gain shared understanding and reach consensus
  • Help developers know when to stop adding  more functionality to a story
  • To serve as a basis for deriving tests
  • To allow for accurate planning and estimation

How?

Acceptance criteria

  • define desired behavior and
  • are used to determine whether a product backlog item has been successfully developed.

The “Given/When/Then” template helps to reduce the time spent on writing test cases by describing the system’s behavior upfront. We prefer writing acceptance criteria with the first-person “I” since it helps us talk from a user’s perspective and keep a user’s needs in mind.

Sample User Story with Acceptance Criteria:

As an internet banking customer I want to see a rolling balance for my everyday accounts so that I know the balance of my account after each transaction is applied.”

Example acceptance criteria:

  • “The rolling balance is displayed
  • The rolling balance is calculated for each transaction
  • The balance is displayed for every transaction for the full period of time transactions are available
  • The balance is not displayed if a filter has been applied.”

2.Definition of Done (DoD)

The Definition of Done (DoD) establishes the quality criteria for delivery of product increment. The DoD is used to assess when work is complete on the product increment.

Characteristics of the DoD

  • Agreed between the team and the product owner
  • Applies to all work of the entire team – including user stories and defect resolution i.e. bug fixes 
  • Must allow immediate release of product increment
  • Quality increases with maturity, hence the various elements of the DoD are expected to become more ambitious over time.

For illustration, here is a sample DoD for a User Story completion:

Upgrade verified while keeping all user data intact.
Potentially releasable build available for download
Summary of changes updated to include newly implemented features
Inactive/unimplemented features hidden or greyed out (not executable)
Unit tests written and green
Source code committed on server
Jenkins built version and all tests green
Code review completed (or pair-programmed)
How to Demo verified before presentation to Product Owner
Ok from Product Owner
Example of Definition of Done (DoD) for User Story Completion

Remember:
The Definition of Done (DoD) applies for all user stories that the team is working on. In contrast to this, Acceptance Criteria are defined specifically per User Story as required by the Definition of Ready (DoR).

This should clarify how DoR, Acceptance Criteria and DoD relate to each other.