Your Vision + Our Engineering
Every business is striving to achieve business agility. They want to create larger impacts, deliver value more often, embrace customer learnings, and ultimately move faster to outpace competition. At the same time, businesses are being required to tackle new and varying classes of problems. Innovation, for example, is classified as a wicked problem. This means the sustainable solution is not knowable at the start due to incomplete, contradictory, or changing requirements and information.
When faced with these two forces, many teams have incorrectly concluded that up-front planning is no longer valuable, architectures must be discovered and not designed, re-work cannot be minimized, and the best a team can strive for is creating a solution that will be heavily refactored or rebuilt the “right way” later. Unfortunately, nothing could be further from the truth.
We’re fortunate enough to partner with entrepreneurs and visionaries to launch or re-invent approximately 10-20 new ventures or products each year. With the substantial number of times we engage in these innovation efforts, we’ve discovered that you can increase the predictability, velocity, and overall success of innovation through the application of engineering discipline and the intentional management of complexity. Most organizations don’t experience this because 1) professionals in our field have not been equipped with the proper engineering practices to sustainability succeed when solving wicked problems and/or 2) organizations only actively address a subset of the complexities involved.
Our team is frequently asked about how we structure our partnerships for success. Contrary to resigning ourselves to the belief that “moving fast and breaking things” is the best way forward, building great software begins long before the first software developer puts their fingers on a keyboard. Creating software that supports changing processes and features as an organization grows and evolves over time requires the right forms of critical thought, planning, shared understanding, and engineering methods.
At the most basic level, achieving sustainable business agility involves blending vision with engineering discipline. This can vary with each engagement because there’s no one-size-fits-all in software product development, but we have a formula that defines the essence of how we arrive at success:
Your Vision + Our Engineering = Sustainable Business Agility
Putting this recipe into practice focuses on the intentional identification, analysis, and management of the three unique types of complexity within this model. There is no one silver bullet that creates success within this complex model.
- Objective Complexity encapsulates the clarity and validation of vision/mission, organizational structural realities, and domain-specific complexities that may not be directly related to specific functional requirements. To address this area, we frequently leverage the body of knowledge related to innovation. Some frameworks we have found effective include Lean Startup, Outcomes over Outputs, and Design Thinking. Specific tools/techniques that are helpful include the lean canvas, product vision statements, customer personas, and journey mapping.
- Requirements Complexity is the result of uncertainty and volatility around the functional and non-functional features (e.g., scale, performance, and usability constraints) as you make the vision concrete enough to implement. This is where frameworks and tools focusing on definition through critical thought shine. Frameworks we have found helpful include Project Design, select agile methods, and Solution/User Experience /Interaction design. Specific tools/techniques that are helpful include story mapping, Gherkin, acceptance criteria, wireframes, and prototypes.
- Solution Complexity represents the convergence of engineering, design, technology, objective complexities, and requirement complexity. A well-designed system and disciplined defense of the conceptual integrity of that design enable the management of solution complexity. This is where architectural frameworks such as IDesign and engineering methods such as decomposition fit in. A layered approach to quality is also critical to optimize defect detection and cost/effort.
Each of these areas of complexity has specific frameworks, methods, activities, and tools that must be employed to identify and manage them efficiently. Failure to address even one of these areas of complexity leads to a failure to achieve agility in the long run.
We hope you find this information helpful in your journey to sustainable business agility. Stay tuned as we continue to explore achieving sustainable business agility for new products and startups in upcoming posts.