Category Blog Agilevswaterfall
Not sure where to start?
September 17, 2020
Share the link
In the custom development world, project management (PM) matters. It matters so much, it can truly make or break the cadence and success of a development project. Additionally, having an established, developed methodology that can then be tracked in a PM software platform, such as Monday.com, Basecamp or Asana is equally important if not paramount to project tracking and management.
Here, we’re going to break down the main types of methodologies you’ll encounter in the custom development world: Agile and Waterfall. And if you’re a business owner evaluating dev firms for your next mobile app or enterprise software project, it may behoove you to become knowledgeable in both approaches so you know the appropriate questions to ask when it’s time to hire your next development partner.
The waterfall methodology is a linear project management approach, where stakeholder and client requirements are gathered at the beginning of the project, and then a sequential project plan is created to accommodate those requirements. The waterfall method is so named because each phase of the project cascades into the next, flowing steadily down like a waterfall.
This approach is a thorough, structured methodology and one that’s been around for a long time because it’s incredibly effective. We’re referencing this method in the context of software development here, but other industries that use this approach include construction and IT.
Requirements: The key principle of waterfall is that all customer requirements are gathered prior to the start of the project, allowing every other phase to be planned without further customer correspondence until the product is complete.
Design: This phase is usually divided into two subphases: logical design and physical design. The logical subphase is when solutions are ideated and theorized. The physical subphase is when those theoretical ideas and frameworks are made into substantial specifications.
Implementation: This phase is when programmers incorporate the requirements and specifications from the previous phases and produce authentic code.
Verification: During this phase, the client reviews the product to make sure that it meets the requirements laid out at the beginning of the project. The completed project is usually released to the client at this stage.
Maintenance: During this phase, the client is regularly using the product, discovering bugs, inadequate features and other errors that occurred during production. The production team applies these fixes as necessary until the customer is satisfied.
Dev firms choose to use the waterfall model for many reasons; here are a few benefits:
You’ll also find that waterfall has its own set of limitations; here are a few drawbacks:
Although it has its drawbacks, a waterfall project management plan is very effective in situations where you are encountering a familiar scenario with several knowns, or in situations where your customer knows exactly what they want at the onset.
The agile software development life cycle is dominated by an iterative process. Each iteration results in the next piece of the software development puzzle until the final product is complete. Each iteration is usually two to four weeks in length and has a fixed completion time. Due to its time-bound nature, the iteration process is methodical and the scope of each iteration is only as broad as the allotted time allows.
Multiple iterations will take place in the agile model and each follows its own workflow. During an iteration, it is important that the clients and business stakeholders provide feedback to ensure that the features meet their needs.
The agile model was established in the 1990s, but was solidified when seventeen software developers got together and established the Manifesto for Agile Software Development, which was written to encapsulate all the new agile approaches under one umbrella. They did this to “uncover better ways of developing software by doing it and helping others do it.”
There are four core values outlined in the Agile Manifesto:
To help teams stay true to these core values, the manifesto developers defined12 principles for managing projects within an agile framework:
These principles are merely a baseline; most agile project management proponents agree with this nugget of agile understanding. However, as the process grows, so does dissension. The truth is that agile as a framework is not prescriptive. There is no rigid system to follow, like with waterfall project management. Agile is more of a philosophy of working. Many times, you’ll see dev firms using a variation of this model to create a hybrid method.
These phases are the foundation of an agile model, but these can be applied to one of many agile systems listed at the bottom of this section.
Concept: Projects and viability are envisioned and prioritized.
Inception: Team members are identified, funding is put in place, and initial environments and requirements are discussed and decided.
Iteration/Construction: The development team works to deliver working software based on iteration requirements and feedback. This step repeats as necessary to get all specifications in working order.
Release: Quality Assurance testing, internal and external training, documentation development, and final release of the iteration into production.
Production: Ongoing support and optimization of the software.
Retirement: End-of-life activities, including customer notification, migration and sign off.
These phases can be applied into one of the following systems of agile development:
The overall goal of each agile method is to adapt to change and deliver working software as quickly as possible. However, each methodology has slight variations in the way it defines the phases of software development. Additionally, even though the goal is the same, each team’s process flow may vary depending on the specific project or situation.
(At Shift3, we borrow effective techniques from multiple named methodologies to create our own hybrid which we’ve aptly named “Bruce Lee style.”)
Dev firms choose to use the agile model for many reasons; here are a few benefits:
⬬ Agile promotes some of the best practices found in development environments. Some of the risk in a project should be reduced as the output of developers is reviewed early and constantly during development.
⬬ When projects are genuinely new they usually require creativity. Requirements can then emerge as understanding matures and grows.
⬬ Flexibility can be higher than traditional methods, although this is not guaranteed. Changes (e.g. in prioritization) can be introduced at almost any stage.
⬬ Agile encourages or requires frequent communication between developers and those who will ultimately accept and use the deliverable. Frequent feedback can be incorporated into future iterations as increments are delivered and reviewed by users or a product owner or both.
⬬ Agile helps reduce the ‘silos’ that too often exist within project teams; something that always damages projects (as it should result in a collaborative style of working).
⬬ It should result in far less re-work on projects as issues and changes should be picked up much earlier.
⬬ Collaboration is usually much higher with agile. Although not guaranteed, this can result in more successful development environments, in terms of product quality (i.e. fit for purpose).
You’ll also find that agile has its drawbacks; here are some limitations:
⬬ Agile is simple to understand in principle but hard to do well in practice. It requires real commitment and first attempts are not likely to go very well.
⬬ Agile requires high levels of collaboration and very regular communication between developers and product owners. This is always desirable, but may not always be feasible and requires continual commitment and time from the client and developers.
⬬ There can be less of a blueprint of what the final deliverable will be. This can make it harder to gain commitment to the project by stakeholders at the early stage.
⬬ Agile can be challenging when there is a supplier-customer relationship. Clients typically want to know what they are getting for their money as early as possible. It can be far harder to estimate timescales and costs as there is less ‘definition’ on which to base estimates.
⬬ Agile can be very challenging on much larger projects or where co-location is not possible (between developers and the client).
Agile differs greatly from waterfall in two major ways; namely in regards to linear action and customer involvement. Agile is a nimble and iterative process, where the product is delivered in stages to the customer for them to review and provide feedback. In the waterfall model, everything is mapped out ahead of time, and clients interact only at the beginning and end of the project.
Every custom development firm has their own set of methodologies in addition to specific project management formats. When consulting with a software solutions partner, be sure to ask questions about their project management styles and consider how much you’d like to be involved in the development of your vision. Their method should fit with your expectations and vice versa.
Do you have any questions about the management of your upcoming project? How can we help? For a free consultation about your idea or project, click this link: Let’s Talk. Prepare for your consultation with this handy dandy guide or check out Five Easy Ways to Avoid Custom Software Stalls.
This post was written by Celeste A. Barron, Content Development Manager at Shift3 Technologies. You can find her nodding off fifteen minutes into playing Animal Crossing.
Maximizing Your Salesforce ROI Doesn’t Have to be a Headache. It’s not uncommon for someone’s initial takeaway from their first...
The New Normal Times have been hard for businesses to stay relevant in the market and efficient in day-to-day operations....
It’s About the Humans It’s just about time to close the book on 2022, and what a year it has...
A New Year Is Just Around the Corner It’s no secret that Salesforce is a powerful tool–whether it’s tracking business...
Bitwise Industries Highlights the Human Benefits At the heart of Bitwise Industries’ mission is the commitment to building a workforce...
Bitwise Industries Will Show You 5 Ways to Get Started Bitwise Industries is a company known for creating solution-based products...
If Mismanaged, Salesforce Can Feel Spooky For businesses big and small, Salesforce is an amazing CRM–but everything’s got a dark...
Use the Dreamforce, Luke Every year, thousands of administrators, executives, and developers gather in San Francisco to celebrate another year...
Turning Survival Into Success Cheat codes: since the dawn of gaming, programmers have baked in little tricks to help players...
What You Need to Know It’s a bit early to be talking about presents under the tree, hidden eggs in...
A Salesforce to be Reckoned With In this technological age, a company doesn’t successfully run without some type of AI-managed...
Bitwise Industries Receives Significant Honor Leadership. It feels like the definition is simple: the action of leading a group of...