Anyone can program. Once you learn a programming
language’s syntax, it’s just a matter of slapping it all
together to make your application do what you want it to
do, right? The reality is, software needs to be built using
a structure to give it sustainability, manageability, and
coherency. You may have heard the phrase “cowboy
coding” to refer to an unstructured software project,
where there is little formal design work, and the
programmer just sort of “shoots from the hip” and slaps
code in with little or no forethought. This is a path that
leads straight to late-night support calls and constant
bug scrubbing. Heaven forbid if you inherit a ball of
spaghetti like this and you are asked to try to fix, extend,
or modernize it. You will more than likely be updating
your resume or packing your parachute for a quick
escape.
To prevent problems from slapdash approaches such as
cowboy coding, disciplines such as architecture and
construction establish rules and standards that govern
the process of building. In the world of software, the
Software Development Lifecycle (SDLC) provides sanity
by providing guidance on building sustainable software
packages. SDLC lays out a plan for building, fixing,
replacing, and making alterations to software.
As shown in Figure 2-1, these are the stages of the SDLC:
Stage 1—Planning: Identify the current use case or problem the
software is intended to solve. Get input from stakeholders, end users,
and experts to determine what success looks like. This stage is also
known as requirements analysis.
Stage 2—Defining: This stage involves analyzing the functional
specifications of the software—basically defining what the software is
supposed to do.
Stage 3—Designing: In this phase, you turn the software
specifications into a design specification. This is a critical stage as
stakeholders need to be in agreement in order to build the software
appropriately; if they aren’t, users won’t be happy, and the project will
not be successful.
Stage 4—Building: Once the software design specification is
complete, the programmers get to work on making it a reality. If the