This amazing course will teach you, step by step, how to manage, control and avoid main mistakes in software outsourcing relationship.
start your FREE Course
we will never spam you
Even if you dont visit my site on a regular basis, you can get the latest posts deliverred to you for free via RSS or Email:
Flexibility and Independence in Project Management: A Solution for the Future?
Software development is rapidly becoming more intricate, complex, and expensive. Project management schemes relying on clearly delineated responsibilities, accountability, and a central manager are becoming, if not untenable, then at least inadequate. There are numerous factors that underlie this development. The key fact among these is that it's becoming increasingly difficult to predict the long term goals of any given software development project and its life cycle. To address these changes, fundamental alterations need to be made to the existing project management cycle.
Shifting into a New Development Mode
The heavyweight management of waterfall-oriented incremental software development is the primary factor that requires changing to adapt to the challenges of modern software development. While it can indeed be reformed, it is possible to do with it away entirely. The alternative solution is the so-called Agile development process, emphasizing lightweight management, focus on iterative development, and collaboration between individual software developers to allow for more adaptable, flexible development process.
The key element of being Agile is actually adopting the entire philosophy. Many companies describing themselves as such do not have actual agility. They implement certain methods and steps but remain rooted in traditional development solutions overall. To understand meaning of this development philosophy and note the extent to which it has to be implemented, one only has to look at Valve Corporation.
Founded in 1996 by ex-Microsoft developers Gabe Newell and Mike Harrington, Valve has consistently implemented the principles of Agile development, maintaining its innovative edge. This allowed the company to expand dramatically and establish firm control over the digital distribution market for video games. Steam, Valve's digital platform, is currently estimated to account for up to 70% of the digital video game distribution market.
Adopting the Philosophy
Valve's key advantage is that the company was founded upon this philosophy from the beginning. Migrating to an Agile development model is significantly harder, as it requires a makeover of the entire development process and an overhaul of the management tools. The point is to adopt the entire philosophy on all levels of development, down to the individual developer. Agile development relies on individual competence, personal management of projects, and self-reliance of developers.
As such, some employees may simply not be suited for this type of development, at least not initially. The shift towards an Agile framework should occur gradually, replacing elements of the existing development process with new ones. This process will include laying down the infrastructure, conducting pilot project, retraining employees (through both dedicated courses and coaching during the project), and seeking out new contracts and amending existing ones to permit full adoption of the development philosophy.
You should be prepared for difficulties in the process, including regression to traditional methods by developers and intermittent resentment. To make the transition more bearable, prepare a consistent adoption strategy in advance. Don't be afraid to consult companies that have already transitioned to an Agile development cycle for help. There are numerous organizations, both private and public, that have adopted this philosophy of software development and can provide invaluable insight.
Implementation in Detail
The most noticeable change the transition will introduce is breaking down the traditional hierarchy between the project manager and subordinate developers. Instead of large teams composed of people with clearly outlined duties, you will be implementing small, interdisciplinary teams of developers. These teams will focus on achieving specific goals in development and held accountable for their progress.
This accountability is one of the key advantages of Agile development and one of the biggest obstacles in its implementation. In traditional environments, responsibility is deferred to the manager. In Agile development, the developer is responsible for his own work. Understandably, this is going to create resistance. This is where the independence of individual developers come into play. The elimination of micromanaging results in giving the individual free reign to manage his project and achieve these goals.
This also fosters cooperation between developers. Without imposing particular processes or methodology, developers are free to come up with their own solution, both in development and programming. Of course, true agility requires that you hold them fully accountable, up to and including punishment for failure. It may sound harsh, but the consequences must be implemented. Otherwise, you'll be trading stifling micromanagement for unproductive chaos.
As mentioned previously, the focus of the Agile philosophy is iteration rather than incremental development. Together with a focus on outcomes, rather than output, this necessitates an overhaul of the setting of goals and measuring performance. First, goals need to be defined in a comprehensive and objective manner. Comprehensiveness manifests as a detailed definition of what the finished product is supposed to be and which stages have to be accomplished in order to complete the development. This naturally necessitates an objective approach. All stages and features of a project have to be measurable and verifiable to minimize the need for subjective judgment.
The iterative development is a logical result of this philosophy. When goals are achieved, iterations of the product are created, which can be objectively reviewed by other developers, investors, focus groups, and even end users. These demonstrations and reviews are an integral part of the development process and one of the strengths of Agile development. Feedback received for each iteration allows for improving the product immediately, instead of investing months or even years of development time, only to find that the finished product does not meet the demands of the end users, failed to meet the goals of the project, or is obsolete at launch.
The biggest challenge of implementing Agile development is the attractiveness of traditional development methods, which create a sheltered environment for the developer and make management easy due to the regimented, hierarchical structure. This is why extending the Agile development philosophy to the entire company is necessary. Creating an Agile environment on the development level, but failing to expand it all the way up to the management results in an untenable hybrid.
Flexibility and competence on the part of the managers are essential to maintain the philosophy in practice. Management needs to provide the necessary tools and foster an environment in which the advantages of Agile project management can manifest. Work spaces need to be arranged to foster cooperation and enable developers to formulate their own solutions to problems. Pipelines need to be created together with the developers to ensure the delivery of product iterations. Tools need to be made available. By far the most important element is the continuous refinement of organization based on employee feedback. Isolating the management from criticism and frank discussion of improvements is a mark of traditional project management and defeats the point of implementing Agile project management.
As the implementation of Agile project management is a complex endeavor that requires comprehensive planning, consistent implementation, and fostering a much closer relationship between the company and interested parties, it is not an approach that can be recommended without due consideration. Preparation for the transition needs to be ready well in advance and encompass all layers of the company.
It is possible to implement bits and pieces of Agile project management. However, these will always be stop-gap measures, hampered by the adherence to traditional models of management. While such a mash of different philosophies can be sustained, it will never benefit from the advantages of either development approach and suffer from the shortcomings on both.
In short, Agile project management is an all-or-nothing deal. You either have agility or you don't. Anything in between is just a half-hearted effort.