Whenever I walk into a new client, the first things I hear from the Technology Executives are typically: “We need to modernize”, “We need to transform”, “We need to adopt <insert trendy tech buzzword>”. What I never hear is: “We need to bring our development and testing methodologies up to date”, “We need more collaboration across our teams”, “We need to inventory our skills and see what’s missing”.
If we think of the IT organization as a basketball team, that would be the equivalent of the coach saying: “We need more 3-pointers”, and “We need those fancy new shoes to be able to dunk”. Whereas even the most inexperienced youth coach knows that the key to winning includes: “We need to practice dribbling and footwork”, “We need to communicate better on the court”, and “We need to improve our free throws/jump shots/rebounds”.
While it is both valid and necessary for IT organizations to push towards the big picture objectives highlighted by glossy Gartner and Forrester whitepapers, these have to be supported by continuous and deliberate investment in foundational concepts.
Let me step in as coach for a moment and propose a strategy for focusing on the foundation…
1) Invest in the basics: Invest in good basic IT delivery concepts, kind of like dribbling, footwork, and basic fitness in basketball:
- Make Business Analysis about teasing out the requirements from the Business’ objectives, rather than simply asking the Business to write down their requirements
- Encourage good testing rigor and embed it throughout the entire solution delivery lifecycle, and not just at the end just before go-live
- Promote good documentation habits and create templates for common documents (e.g., logical solution architecture, functional designs, interface specifications, data models)
- Spend adequate time and budget to implement solutions which improve developer productivity (e.g., continuous integration, 3rd party frameworks)
- Allocate budget for developers to learn different languages so they can be exposed to different software concepts and improve their coding skills
- Spend generously on training for system analysis, modeling, design methodologies (e.g., domain driven design, SOA, microservices architecture, semantic modeling, BPMN), and not only on those being standardized by the organization, but to improve people’s ability to make smart decisions
2) Communication is key: Create an environment that promotes collaboration and teamwork:
- Create communities of practice across your organization (or connect to external groups) to build on collective knowledge and experience
- Implement real-time collaboration tools (no, Sharepoint and instant messenger don’t count)
- Make governance less about formal approvals and more about ensuring the right expertise is pulled in at the right stage of a given project
- Adopt iterative delivery methods to promote frequent touch points between IT and Business obtaining feedback and ensuring alignment
3) Focus on the right skills: Build the skills that support your strategic objectives. After all, dunking is only made possible by training to jump higher:
- Strengthen Information and Data Management capabilities as a foundation for Big Data Analytics
- Educate the team on hashing algorithms, binary trees, digital contracts, and distributed storage to bring Blockchain to the table naturally
- Leveraging Cloud means good distributed system design, loosely coupled interfaces, container-ready applications, and security frameworks that can deal with 3rd party infrastructure
- Adopting COTS requires strong technical Business Analysis, ability to negotiate requirements with the Business, and strong platform administration skills
We all want to work with the cool new tech and follow the latest trends. Working with the latest and greatest is what draws people to technology work. But the team will be stronger if the foundation is strong and the team is well connected so take time to build our own skills and our teams’ foundations so we can all up our game.