Creating an Agile Technology Organization: Effective Application & Integration Of Technology In Business Function When it comes to actual agile functioning beyond people management and structures, the way software systems are built for teams to operate on a day-to-day basis plays a major role in supporting, sustaining, and strengthening an organization's agile culture
Opinions expressed by Entrepreneur contributors are their own.
You're reading Entrepreneur India, an international franchise of Entrepreneur Media.
Several organizations today are undergoing agile transformation, adopting the agile way of working as an efficient way of driving efficiency and productivity. The difference is between doing agile and being agile, going beyond viewing agile as a project management methodology to embracing agile ways of thinking, doing, and being across the organizational structure. The agile way of working brings all stakeholders closer thereby enabling more seamless operations.
When it comes to actual agile functioning beyond people management and structures, I believe that the way software systems are built for teams to operate on a day-to-day basis plays a major role in supporting, sustaining, and strengthening an organization's agile culture.
Let me use the example of technology teams to illustrate the significance of agile in enabling seamless delivery of products and features. Most organizations use a traditional three-tier system for their technology team structures – developers working on the user experience, the infrastructure team that provides access to data, and data engineers.
When teams are set up with these three layers, dependencies across layers become inevitable, which in turn reduces the speed of value delivery.
Ideally, agile technology teams should be formed without such layers to realize the full benefits of agile=. The structure may be optimal in some cases and sub-optimal in others.
Our goal should be to produce self-contained or less dependent systems mush as possible, so that independent and autonomous teams can be formed. Earlier, we did not have too many options primarily because of the lack of the required technological infrastructure. However, the technology landscape has evolved significantly over time, including the following:
- Micro frontends – Allowing for independent development and ownership of user interfaces
- Microservicesand containers – Enabling enhanced levels of faulttolerance and scalability, which are software language-agnostic
- Emergence ofpurpose-built databases – Different databases such as key-value pairs, relational databases, graphs,and the like
- DevOpspipelines – Continuous integration and continuous delivery (CI/CD) with integrated testing frameworks
- Evolution ofcloud – Enabling separation of resources through cloud accounts, with sufficient elasticity built in
- Orchestrationandnetworking components, a wide range of observability tools, and more
In combination with such technological advancements, I would recommend the following principles for agile technology teams to be most effective:
- Modularize architecture – The technology systems and architecture available in several technology organizations todayis the result of years of using the Waterfall methodology, resulting in attributes monolithic teams structures and ways of operating, thus making it difficult to work in an agile manner. Architecture systems should be modularized so that teams can work together easily and seamlessly.
- Redefine ownership–Usually technology assets are categorized by layers, resulting in their differentiated ownership among teams. For example, databases are owned by data teamswhile data access layers or APIs are owned by another team. To be more agile, the construct of ownership should be redefined throughvertical slicing, so that the technology team as a whole owns assets across boundaries such as the user interface, APIs, data,and more. Through shared ownership of assets and the modulization of systems, individual cohorts can access the assets they want for any task at any time, thereby facilitating seamless and fairly independent functioning.
- Eliminate dependencies – Non-agile technology teams very oftenhave to go through centralized teams or teams at other levels even for small data or API changes. This creates dependencies and leads to large backlogs of tasks, resulting in loss or productivity as teams work on managing dependencies rather than the main task at hand. Whenever and wherever possible, dependencies should be eliminated. Modularized systems with a redefined ownership of assets help in doing so.
All of this points to the fact that for technology organizations to be truly agile, they must develop fairly independent systems and teams. This will help them not only enhance efficiencies and productivity, but also enable more effective working and solutions.