If you work in any type of project management you must understand the SDLC (software development lifecycle) because eventually you will run into it headfirst. There are so many situations that your company will probably face in the near future where you will need to have a basic understanding of the SDLC and how it apply it in your job. I think one of the more common will be transitioning away from enterprise level software, or software that is located on your computer or over your company network, to cloud based software. Some of the more forward thinking companies have already begun the migration and if your company hasn’t already considered it, you will. At a very basic level, SaaS is where a company subscribes to an application it accesses over the Internet. This article is not about SaaS and the advantages or disadvantages it presents — we will talk about it another day. Today we are going to talk about enterprise level software and web development.
As a project manager you will most likely find the need to understand the SDLC because of enterprise level software development, web development, or even SEO. SDLC is kind of like PMBOK or Agile project management methodology — it is the foundation for the discussion but there are several methodologies that will guide you through the actual project planning, implementation, testing, and deployment of your product. While this graphic shows the process that is advocated, there are several methodologies that can help you and your organization achieve your development goals. Each methodology brings with it certain advantages and disadvantages, but each is useful in the right setting.
There are seven mainstream models that are used in software development. Today I want to look at two of the most common — Waterfall and Agile. I know, Agile isn’t really a methodology, but we will treat it like one today because that is what most people call it when they use Scrum in a software development setting. I have written a ton about Waterfall and Agile, and I will invite you to click on either word to get a listing of the articles I have written on each to help you get an understanding of the methodologies. Today I want to look at when to use Waterfall or Agile and what the advantages and disadvantages are.
Waterfall Project Management is a sequential or linear life cycle model. I think it is simple to understand and apply, so it could be used by someone who has little experience or training. The process itself only has six steps — Requirement Analysis, System Design, Implementation, Testing, Deployment, and Maintenance. There are plenty of resources available on the methodology, making it an easy choice for the first time project manager.
When to use it. I think Waterfall is best used in the SDLC when the requirements are well-defined, the outcomes are stable, the technology you will be using is understood by your project team and not dynamic, your project team has the resources and understanding to support the product, and the project timelines are short. This methodology is sequential, so the process is well defined and requires you set deadlines for each development stage and the product then progresses through the development process one stage at a time. That also means the process is easy to manage.
Disavantages. The Waterfall process does not produce working software until late in the life cycle, which leads to high amounts of risk and uncertainty. Since integration is done as one big event at the end of the model, if you missed any technological or business bottlenecks in the planning process your chance of project failure is much higher. If your project requirements or the technology behind them have a high likelihood of changing during your project, you will want to select a different model. If you are going to have to make changes, your project cost is going to increase.
Agile Project Management takes a more iterative approach. The focus of Scrum and other Agile methodologies is on process adaptability and customer satisfaction when you have project requirements or technology that may change over time. Truthfully, we all know that requirements change and hardware requirements and specs change over time and a model that plans in flexibility and adaptation to changing inputs and required outputs. Agile itself only has five stages — Planning, Requirements Analysis, Designing, Building, and Testing — but they are repeated over and over again as versions of the software take shape and defined requirements and functions are built in.
When to use it. I like to tell people that it is best suited for a development project that does not have clearly defined requirements. It is a more realistic approach to development in my opinion because of the planned flexibility, which means it is very well-suited for changing requirements. It provides the developers and the project manager with the flexibility they need to provide a product to the client that meets their needs the day the final version is deployed. Because it delivers versions of the software throughout the process, testing is continuously conducted, which means you aren’t stuck at the end of the process with a gold plated turd — something that isn’t good for anything.
Disadvantages. While Agile is a very flexible methodology, it does require discipline to implement and a knowledge base to administer. You really need a project manager who is a CSM and PMP if you are going to use Scrum. Your project manager should also have highly refined soft skills because there is a ton of interaction, both with the project team and the customer. There isn’t as much documentation used in Agile project management, which will increase your risk if your project manager or a team member leaves.
I think both Waterfall and Agile methodologies have their place in helping guide you through the SDLC. There really is no right or wrong answer to which methodology you should select to help guide you through your next development process — it is really dependent on the nature of your project and your organizational culture. With all the B2B and B2C SaaS projects coming down the pipe, you really owe it to yourself as a project manager or business owner to educate yourself so you are ready for the transition.