The concept of “Agile” management in the software development industry is the logical result of an evolution that began with the first programs that were written in the mid twentieth century.
From the original so-called "spaghetti code", to the first structured programs. to the introduction of object-oriented design, the development process has gradually became increasingly organised and adaptable. However, along the way it also became rather top heavy, as the desire to avoid confusion by carefully documenting everything became excessive.
From the original so-called "spaghetti code", to the first structured programs. to the introduction of object-oriented design, the development process has gradually became increasingly organised and adaptable. However, along the way it also became rather top heavy, as the desire to avoid confusion by carefully documenting everything became excessive.
Then, with the onset of new millennium, we witnessed the crystallization of a methodology termed "Agile software development". This was, in many ways, the culmination of all that came before - via a common sense approach that is intended to combine the following time-honoured concepts:
- develop and release code in small increments: this results in an iterative development process that "self corrects" and ensures that the product remains both feasible and consistent with the client's requirements
- develop prototypes and proofs of concept early: this ensures that any challenging technical or production issues are addressed early in the development process, thereby avoiding unnecessary delays later
- maintain constant client feedback: there is no substitute for feedback from the people who are paying for the product - whether it be through online access to the production server, or demonstrations in person, the client must be encouraged to continually evaluate the product and thereby ensure that the development process is on track
- keep development teams small: a multimedia team should consist of no more than 5 to 10 architects, developers, graphic artists, etc - if the project involves more people, then they should be split into small groups that are linked by their team leaders and a common project and/or product manager
- ensure that development team meetings are frequent, short and focused: the so-called daily "scrum" meetings should be a brief opportunity for all of the design/programming/graphics team members to report on their status, raise flags about possible problems and ask for help when needed
- limit documentation to what is relevant: while business requirements, use cases, design specifications, schedules and so on are important for ensuring that everyone is on the same page, they are only useful when kept concise, clear and up to date.
Thus an “Agile manager” embodies the ideals of a flexible, knowledgeable leader, who is aware both of the goals of the firm and the aspirations of the staff. The Agile manager strives to balance the needs of the client, the objectives of the company and the goals of the employees.
A satisfied customer, a strategically placed business and a staff that feels appreciated go hand in hand for success. Keeping these factors in mind makes the Agile manager an effective harbinger of corporate growth and professional satisfaction.