Organizations are continuously being challenged by new innovations from their competitors. Even when they are not dealing with the threat of outside disruptive innovations, they need to ensure that they are innovating on their own and are adapting to change.
An Agile approach to developing software gives organizations the ability to continuously innovate in response to the needs of customers. As the “Principles behind the Agile Manifesto” puts it: “Agile processes harness change for the customer's competitive advantage.”
And yet businesses cannot establish a culture that is characterized by innovation until they intentionally adopt patterns and practices that enable innovation. Agile software development consists of many practices that organizations can adopt to facilitate innovation. In this Advisor, I highlight three core practices needed to keep innovation alive:
Fund outcomes then outputs.
Establish real cross-functional teams.
Adopt technical practices that enable change.
Fund Outcomes then Outputs
Money is often a scarce resource for many organizations. This makes the way in which an organization allocates its funds extremely important. In fact, it is said that the way money is allocated largely determines the way work is accomplished. Funding models are probably the number-one enabler or disabler of innovations.
Most businesses have some combination of goals, objectives, strategies, and tactics that set the stage for how work will get done. Traditionally, funding happens at the level of specific tactics that have been decided upon. These tactics are often defined as projects, and these projects generally have a focus that is limited to delivering certain outputs by a certain time and at a certain cost. The underlying assumption is that the outputs defined up front will provide the outcomes that clients desire. In a landscape that is continually changing, focusing primarily on the outputs without testing that outcomes are being met can be hazardous. However, when investments are attached to specific deliverables, teams lose sight of the actual outcomes desired and simply focus on producing the outputs they have been chartered with delivering. These businesses have unintentionally invested in a lack of innovation.
Instead of focusing funding on deliverables (outputs) first, organizations that desire the ability to adapt and innovate should consider funding goals or objectives. Businesses need to be clear on what success means by defining explicit measures of success and then allow teams to innovate on solutions that satisfy these objectives and constraints. Some organizations use constructs such as OKRs (objectives and key results) and SMART (specific, measurable, achievable, relevant, and time-bound) goals to be explicit about what outcomes they desire.
I am not suggesting that specific deliverables should never be funded. There are good reasons for funding specific projects and outputs to ensure that a business remains viable. However, it is critical that organizations that want to be able to innovate on the solutions they bring to market allocate funds to goals and objectives and allow the tactics to evolve as needed.
In addition to funding outcomes, organizations must also be able to identify shifts in the outcomes desired. Investing in outcomes causes businesses to have to continually validate that the outcomes initially established as the outcomes desired by the customer remain relevant.
I recommend that organizations follow the Agile Manifesto principle, “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software,” and value responding to change over following a plan.
Establish Real Cross-Functional Teams
The benefits of cross-functional teams as the unit of execution for accomplishing significant complex things are well documented by various experts, including Jon Katzenbach and J. Richard Hackman. Teams have the potential to do amazing things when the right organizational conditions are in place. However, most organizations never realize the benefits of teams because their teams are not fully cross-functional. Most organizations have software development teams composed of team members who belong to a single functional group. This functional group is often the technology group.
Having software development teams made up only of members of the technology organization wouldn’t be a problem if all the skills and expertise required to successfully develop and deliver software were in the technology department, but this is rarely the case. Indeed, in most cases expertise from other groups — such as product management, sales, marketing, and change management — is required for software development to be successful.
Real cross-functional teams have a composition that crosscuts the functional groups that exist in the organization. Functional groups or silos serve to grow team members and foster high degrees of specialization and learning in a particular set of skills. However, when it comes to getting work done, cross-functional teams that span organizational functional groups are often the most effective and efficient unit of execution.
Having the necessary expertise and skills on the team regardless of what functional group they belong to ensures that the team has access to all the information required for quick decision making and the efficient flow of information. It means that different perspectives are being considered at the same time and the team can evaluate decisions in a holistic manner and then decide what needs to be done. Handoffs and excessive coordination are minimized while collaboration is amplified.
It is important to highlight that many organizations struggle with the ability to innovate simply due to an ineffective flow of information. These organizations are characterized by unneeded back-and-forth between individuals in different functional groups as they try to resolve complex problems through innovation. Cross-functional teams prevent this challenge.
It is not unusual for an organization to observe that certain functional groups may not have enough people to be 100% dedicated to all cross-functional teams in the organization. As is the case with the funding strategy, businesses need to decide which teams are pushing the innovation envelope and then compose those teams accordingly.
To support real cross-functional teams in an organization, all team members, regardless of their functional group, should share the same goals, rewards, and incentives.
Adopt Technical Practices that Enable Change
It is extremely important that our teams are utilizing practices that amplify innovation. Hence it’s critical that business leaders support the adoption of technical practices that allow teams to innovate effectively. While many organizations are partially committed to some of the events and cadences (daily standup, retrospectives, planning meetings, etc.) found in popular Agile frameworks and methods, there is little commitment to the technical practices needed to ensure that the teams can continue to innovate effectively. In fact, in many organizations it is discouraged and seen as a waste of time. Unfortunately, in these organizations, the ability to innovate is being reduced.
Foundational technical practices such as test-driven development, pair programming, continuous integration, simple design, automated tests, and so on, ensure that our codebase is an enabler of change and not a constraint. While we may spend a little more time up front getting things done, these initial investments reduce the subsequent investments that we will have to make and provide the technical safety net required to innovate rapidly.
Many teams struggle to innovate and change direction because their codebase and systems are in technical disarray. The codebases for their systems are both unmaintainable and unmanageable. Making changes to systems takes a lot of effort and, even then, the teams are not confident that they have not inadvertently introduced new problems. Their ability to keep pace with requested changes or simply respond to changes driven by internal or external needs is severely limited because their working environment is a constraint. For these organizations, technical practices have not been a priority.
More advanced (even though these are close to becoming foundational as well) practices such as continuous delivery and continuous deployment are enabling teams to make changes to solutions in response to internal or external triggers and have those changes immediately available to customers for their use.
Here is a thought exercise for you: How many teams in your organization could you confidently ask to stop working on an initiative and release it into production so that your customer could start using it at this very moment? If not today, how many days, weeks, or months would it take for your team to be able to release something? Would they be able to release anything at all?
Again, as the Agile Manifesto principles state: “Continuous attention to technical excellence and good design enhances agility.” Organizations that desire to remain competitive through innovation will be well served to focus on outcomes, create cross-functional teams, and invest in technical practices. Adopting a holistic Agile-based approach to software development fully supports an innovative environment.