5 Step Software Development Life Cycle (SDLC)
A properly developed application must undergo a series of actions to ensure success.
To facilitate the successful completion of an application whether it be a website
or custom Windows application of any sort, professionals usually engage in a standard
process using best practices for the given project or solution. There are various
types of approaches and different styles of addressing a project such as traditional
methods such as Waterfall to current Agile Scrum method. Whichever methodology is
practiced, most often than not a combination of approaches are combined and as such
most projects also fall into a basic structure.
The software development life cycle normally encompasses the following standard
processes:
1. Consultation
Once an idea or requirement arises out of necessity or otherwise, a basic review
of what the idea encompasses and to which degree does it work with or affect other
systems once in place. The careful assessment of the general costs associated with
implementing the idea or requirement in relation to its measurable benefits are
weighed and reviewed.
2. Design
A preliminary specification which outlines the fundamental requirements is drawn
up for the required solution. This specification document is then used by the design
and development teams as a master plan, comparing the ongoing progress of the project
requirements to its actual development. For larger projects which require higher
levels of detail and planning, Detailed Design and Functional Specifications and
any supporting document specifications such as Test Plans are devised and compiled
into the overall solution to which various levels of reviews and checks are made
prior to commencement.
Most typical developments deal with a straight forward specification document; projects
such as websites, browser based back ends, most custom Windows applications of a
simple nature, etc.
Customer comments, feedback and approvals are submitted for review and by relevant
parties. The approved specifications are used for developing the solution and measuring
its completion.
3. Development
This is where the solution begins to be developed. There may be iterations where
the customer is asked to review works and provide feedback and approvals. Often
during development, new issues may arise that are brought to light that where unforeseen
and may affect items within the solution that will need to be addressed by proper
consideration of all parties considered. Typically these situations are minor and
usually benefit the solution by adding more functionality or flexibility than was
originally planned.
Unit testing is performed during development as it pertains to the nature of developing
a unit or segment of the solution for functionality and completeness. These same
tests will be performed in the QA stage.
4. QA
Quality Assurance is a term used to describe the act of verifying the checks and
balances against an item. In the case of a solution, there may be various steps
and procedures required with repetition to gauge whether the item has passed it
proper inspection and designed purpose.
The customer is often asked to also verify the item(s) or completed solution for
functionality and completeness once the item has be developed and QA’d. More often
than not, minor adjustments may be necessary in order to address the complete satisfaction
that the item serves its purpose as per design.
5. Maintenance
Finally the solution or a version of is ready to be rolled out. This stage may involve
many steps based on the solution at hand and typically rolled out in a phase sequence
to ensure the least impact in case of failure. Ultimately the solution is put in
place and the customer has been instructed on the proper usage. The solution is
then signed off as completed and being the typical support policy. Maintenance is
a factor of the nature of the solution and can be as simple as routine checks on
performance or continuance of QA for a set term or timeframe.