How To Improve your Resume, Job Search & Interviews or Get a Tech Job

Which Software Development Life Cycle Is Best?
id="attachment_3286" align="aligncenter" width="350" caption="Your Guide To Software Development Methodologies (Agile, Scrum, Waterfall, SDLC, Extreme ...)"]

Models like Agile, Extreme Programming, Scrum or Waterfall are used by project managers, business analysts, software developers or quality assurance analysts to describe how a project is managed or a software product is built.

The software development life cycle determines how risks are managed, business requirements documented, resources estimated and allocated, stakeholder expectations or customer feedback is managed and when software / quality assurance testing is performed.

Each software development model recommends a set of guidelines or best practices for developing software.

It is then up to an adopting organization to follow these guidelines from the inception of their project.

Choosing the right Software Development Life Cycle is important because it helps your project team reduce or eliminate the risks of project failure which occur as frequently as 60% of the time.

Software Development Life Cycles are also important because they help deliver a better product or user experience.

In a nutshell, software development practices like Agile, Extreme Programming, Waterfall, Lean Software Development, Rational Unified Process (RUP), Scrum will help your project team meet or exceed customer or business requirements, deliver products on time or under budget.

Meeting Business Requirements

Software Development Life Cycles help with clarifying when or how software requirements will be gathered and analyzed in a software development project.

In software methodologies like the Waterfall model, business requirements are collected, analyzed or documented extensively at the beginning of the project.

In other software models like Agile or Scrum, requirements are gathered or analyzed multiple times during the life cycle of the project.

While opinions differ as to which software model helps you gather better software requirements, each model still offers the benefit of a formal plan for gathering, analyzing or documenting business requirements.

Engaging the Best Minds or Resources

Some Software Development Life Cycles like the Waterfall model are more traditional with their "top down" team structure or project management approach.

Other software models like the Agile or Scrum models are flatter in their team structure or more self organizing and independent.

The benefit of following a software development model is that it helps with organizing or structuring the project team's roles, responsibilities or communication style.

Reducing or Eliminating Time or Budget Overruns

Statistics show that as much as 60% of Information Technology (IT) projects fail for various reasons including time or budget overruns.

This is where choosing the right software model can be helpful.

Each software development life cycle offers a set of best practices for estimating project resources, planning project deliverables or product features and monitoring timelines or milestones.

While some software models like the Waterfall emphasize time, budget or resource estimation at the beginning of the project, others like Agile or Scrum emphasize time, cost or resource estimation & planning throughout the life cycle of the project.

Managing the Software Development Process

Each Software Development model divides separates the development process into a set of activities which makes the project more manageable.

While some Software models are sequential, others are iterative.

Software development models separate your development cycle into phases which helps with project planning, resource utilization and progress monitoring or control.

Creating Better Software Products

Software development life cycles can help with meeting or exceeding customer expectations as well as creating better software products.

Your software development model will provided guidelines for creating test cases or mapping test cases to requirements or product features.

Software models provides guidance for quality assurance analysts or software testers, on when to execute tests, record bugs or defects and measure or report on the quality of the software product.

How To Adopt A New Software Development Life Cycle

An organization may be incapable of taking advantage of a software development model in-spite of the merits of the model.

Here is my advice on adopting a new software development model

  1. Evaluate your Company Culture: consider the flexibility or willingness of your company to change or adapt.

    I have seen organizations with a top-down management culture fail at agile models because they were not ready to give up some control to an agile, self-organizing team.

  2. Take Small Steps: don't try to change too much, too soon, when adopting a new software development model.

    Over-committing at the early stages of your project raises a red flag because it means that your project team is being expected to run before it has learnt how to walk!

  3. Get Executive / Organizational Commitment: get someone with senior management or executive authority to back the adoption of the model or it may not survive corporate politics.

Sometime ago, I functioned as the Information Technology Director of a re-manufacturing plant in the Ozarks.

One of the goals I set for my team and employer was to get them to adopt a formal software development model.

Before I started running with the implementation of that model, I spent time coaching the CEO, the quality assurance and product development directors, and other senior managers on the benefits as well as potential challenges of the new software development model.

Because I had strong organizational commitment and backing, the software model was finally adopted without any incidents.

Which Software Development Life Cycle Is Best for Your Project?

With all that has been said in mind, i have prepared a downloadable study guide that will help you with choosing a software development model for your project!

The study guide which you can download below covers answers questions like:

  1. What is Agile, Scrum, Waterfall?, Lean Software Development, Extreme Programming ...

  2. What are the advantages, disadvantages, challenges or benefits of adopting a software development model ...

  3. How does Agile compare to Waterfall ... And More ....

[studyguides size="6" feed="" date="false", cache_time="3600"]


Subscribe to IT Career Coach Newsletter

Get our latest posts delivered to your inbox ...

We respect your email privacy

Waterfall is probably out of the question in small projects.
Which leaves Scrum, XP, and Kanban (there is no such thing as Agile projects, the above 3 frameworks are different variations of Agile). I'd go with Scrum, although Kanban seems to be getting a lot of hype lately.
I was told by an instructor with Requirement Inc. that Waterfall is for small projects. I knew he was wrong because I've worked on huge, government projects which were repetitive and specifically spelled out because they were federal contracts. Those were ALL waterfall SDLC projects. Communication was minimal with the workers with business people never speaking to them, which caused most of the projects to suck. However, that's just the way the government wanted it, so the continuance of stupidity on those contracts persists even today. Federal employees are too dumb to know there's a better system, especially even when it's composed of a dumber military regime that abhors changes for the better.
As far as Kanban goes, in the DC area no one's really using it yet. SDLCs being used are all based on geographic location. I bet most Kanban is in the western part of the United States where people aren't as dumb as here because there are less military people there.