SDLC, or Software Development Life Cycle, is a process classified into a set of phases. These phases, or steps, provide a model for the development and lifecycle management of an application or piece of software. What does that mean exactly? Basically, SDLC is the outline used to frame whatever methods you’d like to use for the creation of information or a software system. It’s a step-by-step process involved in the development of a software product. That’s what makes it the software development process. SDLC is the, “Why do we need this?”, “What problems might we face?”, “Let’s design and put this thing in motion” model.
SDLC is often referred to as a process of gradual refinement because each phase takes over where the previous phase left off, and refines what was done in the previous step. The process covers several actions across well defined phases. These actions range from questioning why the system needs to be built in the first place, to charting viability, analyzing any problems that may or may not come up, architecting a specific design for the system, working on the actual development involved, and putting the system into implementation and then testing the entire process. The phases that these activities are carried out in is the SDLC.
The question, “What is the right Software Development Life Cycle?” has been asked by many a project/development manager. In my experience, it is a combination between three things: what the team needs to operate efficiently, what the company needs to meet expectations, and what you as the leader require to manage the process effectively. There are lots of good books, articles, and websites dedicated to their perceived right or optimal method. A SDLC process that works for a small development shop made up of a couple of experienced people is way different from a process where there may be several developers that are rolling in and out of many different projects. They may be located in different locations and they may be working on different parts or phases of the project. The bottom line is, as with most things, the optimal SDLC process for your organization is what fits the situation. Good project and development managers adapt their process to the local environment and the changes that may untimely come along.
At the end of the day, whatever your process is, it should not get in the way of progress. Innovation and talent should be driving your process instead of metrics, checklists, Gantt Charts and/or unrealistic deadlines. Some things that I have always tried to do to ensure a quality result is to first bookend the process with creative designers and exceptional testers. With them in place, I can let the developers develop. While the process is maturing, I then find, bring in, and support superstar developers and provide them with an environment for success.
What parts of your SDLC do you think work well in your organization? What things have you tried that didn’t work out as you had hoped? Other feedback?
Depending on how closely the process was followed, SDLC can really influence the success of a project. Check back in for details on the various stages of the process to help your application or software thrive.