In the movie Top Gun, Maverick and Goose have the famous line “I feel the need… the need for speed”.
Many CIOs might express a similar sentiment, but with some added qualifiers. Something like: “I feel the need… the need for speed… and high quality… and cost efficiency… and innovation”.
For most, it is quite a challenge. Getting there requires an extremely talented, well-organized and high performing team. I put together this quick list of 10 attributes that I see in high-performing technology organizations that help yield speed, quality, and cost efficiency.
- Trust: Have trust at the executive level (CIO, CMO, Chief Digital Officer), their direct reports and throughout the organization where politics are minimal and a priority is put on getting better as an overall team and getting work done
- Bi-Modal: Employ different operating models (e.g., bi-modal, etc.) to best support the different needs of certain products, applications and business units, taking into account the specific goals of each (e.g., speed, risk avoidance, compliance, etc.) and eliminating non-value-add gates and processes
- Cross-functional Teams: Delivery teams consist of dedicated resources with the cross-functional skills required to deliver their work without heavy dependence on other, siloed teams (e.g., user experience, QA, architecture, infrastructure / deployment, etc.) – a recent Rally study found that these are twice as productive
- Clear Product Vision: Have a well-defined product vision and “low friction” from initial idea to actionable backlog item – I see some companies spend as much as 50% of their time-to-market in this set of pre-development activities
- Architecture, with Some Autonomy: Have high-level architecture standards defined, but allow for a lot of autonomy for teams to then work within those general guidelines
- Embedded Architects vs. “Ivory Tower”: Embed Architects within the delivery teams to help with the “in the field” decision making and execution vs. gated “Architecture Committee” reviews
- Work Iteratively: Deliver work in short iterations (approximately 2 weeks) to get frequent feedback on status, product direction and quality and to allow for responsive adjustments to the product roadmap or project plan
- Invest in Modernization: Invest in keeping their architecture modern and minimizing technical debt, especially for applications that are expected to continue changing frequently
- Automate: Heavily utilize automation to minimize manual steps and increase the overall throughput of the process (e.g., unit, integration and UI/UAT testing, code quality management to identify duplication, test coverage, environment provisioning and configuration management, Continuous Integration & Deployments, Performance testing, etc.)
- Talent: There is no substitute for this. Have an extremely talented team across all of the important disciplines (e.g., product, dev, UX, etc.). Talented, motivated teams are hard to beat and will work their way through almost any process issues to still be effective.
What did I miss from the list? Would love your feedback in the comments.