Blog: Traditional Program Management Is Obsolete
For years software engineering practice borrowed ideas from project management that traces its roots to concepts that began evolving in the late nineteenth century in large civil engineering endeavors like the transcontinental railroad, which began construction in the 1860s.
While it has obvious merits, the value of traditional project management in a world defined by complexity and agility is being rightly challenged. In the 21st century thinking catalyzed by The Manifesto for Agile Software Development (2001) and such has been driving the challenge.
For starters, converting an idea into commercially viable software is a vastly different process from say converting an idea into something tangible like a bridge or a machine. So, while the intelligent use of mature project management practices is essential to the success of most business initiatives it often has the opposite effect on software development projects of any size.
Thankfully, we have an alternative approach. Modeled on ideas that trace their roots to musical forms where multiple musical instruments, capable of producing a vast range of very different sounds, played by highly individualistic professionals are combined to produce a harmonious outcome. This scenario is not very different from the software development today.
The foundational principle of such musical forms is orchestration. The beauty of this approach is that it even supports improvisation in real time. Software engineers call this responding to evolving needs with agility.
Program Management of yesterday yields to Program Orchestration of today.
It calls for a different type of organization and mindset. As in music, individual performance plays a pivotal role in the outcome. The framework in which tasks are executed, measured and orchestrated is very different.
The framework is tailored to align with the architecture of the software application being built rather than being based on some generic principles which often become encumbrances rather than enablers and facilitators.
It orchestrates all required resources and activities through the lifecycle of software development. It addresses planning, re-planning and constant course corrections. Ensures all resources needed throughout the lifecycle are mobilized according to a schedule, provides a mechanism to proactively identify issues and risks and resolve/mitigate them to ensure timely completion of tasks with ultimate responsibility for quality and compliance.
The series continues…
This is the first in a series of blog posts that aim to drive new thinking in the worlds of software engineering, technology management and such foundational themes in the digital economy.