What is the Software Development Life Cycle?
The sealed metal can predates the can opener by some 50 years. The pencil eraser did not crown the pencil until 1858, hundreds of years after the pencil was invented. With ingenuity, the process is never linear. So, too, with software development. The life cycle this process follows is iterative, which means it moves forward in leaps that also repeat some parts of itself. Gains are not made overnight, but software development is also a process that never stops, just like the biological life cycles it mirrors.
Definitions May Vary
To hear Microsoft tell it, the software development life cycle (SDLC) is the reason software developers exist: “you hear of a need, you write some code to fulfill it, and then you check to see whether you have pleased the stakeholders—the users, owners, and other people who have an interest in what the software does.”
Before you roll the new software out to clients, you test it internally. This creates feedback (without risk from adverse reviews by clients) that allows you to refine or alter your software. The process of testing, changing and testing again is all part of that cycle. This can occur over days, weeks, months or years. If you are trying to get a new software to market, it may be compressed. If you are exploring uncharted territory, it may be drawn out, almost leisurely.
Once released to clients, the software can still be improved upon. This continues the cycle, where software developers receive favorable or harsh feedback that directs their efforts toward the next version. Sometimes these development projects emerge brilliantly conceived, as with products rolling out of Apple; sometimes they arrive with a thump, like so many of Microsoft’s own products. These feedback loops (good or bad) create the iterative part of the process, turning innovation back on itself to lead to the next generation of software.
Our subheading for this is plural, because not everyone agrees with Microsoft. Security innovator Veracode calls the software development life cycle “a series of steps, or phases, that provide a model for the development and life cycle management of an application or piece of software.” The goal for Veracode is to produce a cost-efficient, high-quality product.
Phases Within the Development Cycle
Most software developing firms agree that the first phase of the process begins by identifying a need (which may have emerged from training from a previous round of SDLC). Pure invention without acknowledging a market is, after all, financial suicide; developers analyze and define the market and fill a desirable niche. Not only must the need be identified, research must ensure enough clients exist to make the SDLC cost effective.
Design comes next; we know what the software must do, so how do we get it to work? This is where the engineering and code writing occur, with small testing done internally as development continues.
Next is testing, which will begin very small and gradually ripple out to allow more and more stakeholders to participate. Code is tested using static and dynamic analysis; ethical hackers stage penetration tests to find security flaws; defects, deficiencies, inefficiencies and dead ends are all removed.
Agile and Waterfall
A buzzword of software development is “agile,” though it has largely been divorced from its beginnings with the Agile Software Development Alliance. The Alliance produced a 2001 “manifesto” that essentially stands on their heads all the expectations of a vendor providing a product to a fickle customer (late changes are welcome; satisfy the customer with early and continuous software delivery; stay in constant, close contact with customers instead of keeping them at arm’s length). This manifesto of “agile SDLC” sounds great in principle but can lead to burnout in execution. At some point, for example, the customer has simply had enough of the seemingly never-ending stream of options, improvements and tweaks.
Another model of SDLC is waterfall, which depends on sequences taking developers from one step to the next in a clear progression. Though it is the first model for SDLC, it is not useful in every instance. If you have a client whose software environment need not constantly upgrade, it is great.
A third model, the spiral SDLC process, says Tutorials Point, is a combination of an iterative development process model and a sequential linear development model (the waterfall model with emphasis on risk analysis).
Are you fascinated by the SDLC and want to be a part of this stream of production? If you want to earn a Bachelor of Science in Computer and Information Science with a Major in Software Development, consider ECPI University for the education you’ll need to make a difference. For more information about this degree program, connect with a friendly admissions advisor today.
It could be the Best Decision You Ever Make!
DISCLAIMER – ECPI University makes no claim, warranty, or guarantee as to actual employability or earning potential to current, past or future students or graduates of any educational program we offer. The ECPI University website is published for informational purposes only. Every effort is made to ensure the accuracy of information contained on the ECPI.edu domain; however, no warranty of accuracy is made. No contractual rights, either expressed or implied, are created by its content.
Gainful Employment Information – Software Development - Bachelor’s
For more information about ECPI University or any of our programs click here: http://www.ecpi.edu/ or http://ow.ly/Ca1ya.