Traditional Project Management: Waterfall
The waterfall methodology was the traditional method of project management. This methodology saw projects being divided into different phases – conception, initiation, analysis, design, construction, testing, deployment and maintenance. In each stage, developers were expected to achieve a result before moving on to the next stage following a largely rigid one-directional progress flow.
However, as a result of the rigidity in the sequential steps, developers often found difficulty in sticking to the schedule when they encountered errors not accounted for in the planning stages. One major issue were the delays in a decision being made when a problem was highlighted. With this in mind a new flexible approach for project management was required to improve the workflow of developers and programmers.
The ‘New’ flexible approach – Agile Project Management
Today most software development companies have shifted from the waterfall methodology to Agile project management, that grants more autonomy to professionals. Rather than trying to complete a project in a series of sequential steps, Agile focuses on completing the project in iterations, with each iteration providing a refined and improved version of the product until it’s ready for launch.
The Roles in the flexible team
In order to understand how the Agile methodology offers more flexibility I shall guide you through the roles within the agile team.
The agile team roles are divided into two categories; a Core group, and an E
Core Group
The core group of an agile team is involved in all aspects of the project from deciding its scope to running the day to day activities. You will find the following positions in a core group:
Product owner – The product owner is someone who has a large investment in the project.
Business Analyst (BA) – A professional who assesses the business model of the project. The BA usually creates these documents by eliciting requirements from various stakeholders. In agile, BAs analyse the business domain, fill the product backlog with user stories, use cases, wireframes, UML diagrams, and groom the product backlog.
Architect Developer – The architect is concerned with the overall system and how it works. The architect designs the system architecture and monitors the technical quality to make sure the structure of the solution meets the requirements.
Subject Matter Expert (SME) – The SME is more experienced than developers, their job is to know all things related to the project; including the programming language, and technology utilized. A SME is expected to step in to solve issues and find solutions, thus keeping development smooth and free of interruptions.
IT Infrastructure Lead – The Infrastructure lead is responsible for the design, implementation, and maintenance of systems that are core to the function of the organization. The Infrastructure lead has to resolve any issues regarding networking, servers, and physical cabling.
Technical Lead – Provides technical guidance and hosts regular technical meetings. In agile development, they also take on multiple roles depending on the needs of the project. These secondary roles are called virtual roles because they are not a permanent fixture and anyone can perform them without specialist knowledge.
Iteration Manager – The Iteration Manager works with the core team and the extended team to make sure iterations of the project are delivered on schedule.
Extended Roles
Personnel working extended roles do not work on the project directly. They mostly deal with ‘external’ factors related to project development.
Project Manager – Works with groups invested in the project like sponsors, and product owners to resolve different issues, as well as make sure architects and developers are working well together.
Project Sponsor – Is a senior role in project management responsible for several duties including keeping the project aligned with portfolio direction, provide assurance, providing feedback and additionally governing risks. They are also expected to attend showcase events.
Application Architects – The job of an application architect is to understand how one system works with other systems/components of the project.
Agile team roles are divided to deliver a workable solution based on successive iterations. The roles that fall under core group are responsible for developing and delivering successive iterations of the project. The extended group is responsible for external responsibilities like attending project showcases and handling stakeholders for project management.
With this greater understanding of the roles within an Agile team let’s examine the advantages and disadvantages of the agile methodology.
Advantages of Agile Methodology
The main advantage of Agile over Waterfall is in correcting errors as stakeholders examine each new iteration of the project to identify errors so that developers can correct them. The ability to see and correct a mistake in its “early stages” is attributed to the iterative nature of development. Thus, Agile project management is great for managing complex projects where the risk of miscommunication is higher.
The key to success in Agile, is communication. Team members are able to communicate with project managers to resolve problems and with stakeholders to gain feedback. This constant communication and feedback is easier to achieve in a smaller team, compared to larger teams. Agile is well suited for projects with fast development cycles. Teams, taking a ‘release a product first and improve on it later’ approach, will benefit tremendously from the Agile method.
There are different types of Agile. While Waterfall is inflexible, the Agile methodology can be tweaked and adjusted to match the needs of each company. There are different agile methods like SCRUM and KANBAN for companies to select from.
Disadvantages of Agile Methodology
The Agile methodology is not the perfect solution for every company. Agile works best in smaller organizations where communication between developers, project managers, and clients make it easier to swiftly conduct discussions and make decisions. In comparison, in large corporation’s communication with different stakeholders is harder to do because the hierarchy is more rigid, making it difficult for members from different teams to communicate on short notice. Feedback on project iterations doesn’t come through as quickly making it harder to the move onto the next phase in a project, so for projects governed by a more vertical structure, a Waterfall model may be required.