SDLC is the acronym for the Software Development Life Cycle. It is also know as the Software Development Process. SDLC is a framework defining tasks performed at each step in the software development process. The SDLC is sometimes also referred to as the Systems Development Life Cycle, often when referring to specific forms of software – notably apps.
It all starts with an idea – before you even come close to software development life cycles, you need an idea that needs to be developed. Once you’ve fully fleshed out that idea, a development company can begin the software development lifecycle – or SDLC.
Traditionally, The SDLC encompasses these 7 phases and has distinct requirements for each of them.
Contains all planning related activities – including resource allocation, capacity planning, the project schedule and estimating cost.
Gather business requirements from key managers and stakeholders to determine functionality for the software. This stage is critical for management of the overall project as this is where most of the decisions are made.
Designing & Prototyping
Requirements are analyzed and the solution is architected from them. This is where the software is outlined.
Coding (Implementation & Development)
Once the system design and architecture are specified – coding and implementation begin. This comprises the creation of the software as it was defined in the first three steps.
Test against the requirements you set for your software, does it meet them? Is it bug free?
Take it live – if you’re developing an app, make it available for download. If you’re deploying, you’re an app in stages, therefore make sure you make it clear to users.
Operation & Maintenance
Everything needs maintenance, software is no exception. Make sure you’re listening to your users and that they have an easy means of reporting bugs so that you can address them.
If you read that process and think – “That’s not where that should go!” you’re not the only one. The SDLC outlines a rigid framework for how the development process should work– over the years this process has seem some huge revisions that have spawned entirely different schools of thought – here are a few of the most popular SDLC methodologies.
The Agile Software Development Life Cycle looks totally different with most of the lifecycle happening iteratively in much smaller batches or “sprints.” These sprints allow agile organizations to quickly respond to user feedback and quickly architect a better version of their initial solution that is more in line with real user needs. Agile is all about responding to feedback quickly so that when you deliver the final product – there are no surprises. We looked at the ways that Agile can benefit development – you can read more here.
DevOps is all about embracing teamwork and collaboration on an organizational level. It’s more about changing culture than it is about a specific way of executing the SDLC. DevOps is often used in concert with agile because the two methodologies go hand in hand. In order to deliver the most value – collaboration is almost always necessity. It is to the benefit of the entire team to consider your peers’ feedback.
“DevOps is essential for any business aspiring to be lean, agile, and capable of responding rapidly to changing marketplace demands. It is an approach on the journey to lean and agile software delivery that promotes closer collaboration between lines of business, development, and IT operations while removing barriers between your stakeholders, and your customers.”
Waterfall is one of the first variations on the traditional SDLC model – it requires an equally rigid structure that demands all project requirements be fully identified and expanded upon before design and development begin – each step falls below one another on timeline representing the cascading water of a waterfall.
Like agile – lean focuses on speed, efficiency and continuous improvement. Lean was created by Mary and Tom Poppendieck and involved adopting the principles of lean manufacturing to software development.
These principles are:
Lean allows you to optimize software around real use cases. If you’re consciously eliminating waste and delivering fast, you end up with a process that reflects real users' needs and is focused on delivering value.
Interested in working with fivestar*?
If you decide that it is valuable and profitable for your business to have custom software, fivestar* can develop solutions that centralize workflows, optimize processes, and enable decision-making through real-time data and business intelligence.
About the Author: Cameron Avrigean
Cameron Avrigean is a Marketing Coordinator at fivestar*. Cameron is an analytics fanatic with a penchant for copywriting and social media. He works with the marketing team to create engaging content, and is looking for the next big thing. Cameron holds a B.S. in Business Management from Point Park University.