Life Cycle of a Software Development Project5
have to define what is in that black box. Senior software developers usually create design docu-
ments and these documents define individual software components to the level of functions and
procedures. The design document is the last document completed before development of the
software begins. These design documents are passed on to software developers and they start
coding. Architecture documents and MRDs typically need to stay in sync, as sales and market-
ing will work from MRDs while engineering works from engineering documents.
1.1.4Implementation and Coding
The software developers take the design documents and development tools (editors, com-
pilers, debuggers etc.) and start writing software. This is usually the longest phase in the product
life cycle. Each developer has to write his/her own code and collaborate with other developers to
make sure that different components can interoperate with each other. A revision control system
such as CVS (Concurrent Versions System) is needed in this phase. There are a few other open
source revision control systems as well as commercial options. The version control system pro-
vides a central repository to store individual files. A typical software project may contain any-
where from hundreds to thousands of files. In large and complex projects, someone also needs to
decide directory hierarchy so that files are stored in appropriate locations. During the develop-
ment cycle, multiple persons may modify files. If everyone is not following the rules, this may
easily break the whole compilation and building process. For example, duplicate definitions of
the same variables may cause problems. Similarly, if included files are not written properly, you
can easily cause the creation of loops. Other problems pop up when multiple files are included in
a single file with conflicting definitions of variables and functions.
Coding guidelines should also be defined by architects or senior software developers. For
example, if software is intended to be ported to some other platform as well, it should be written
on a standard like ANSI.
During the implementation process, developers must write enough comments inside the
code so that if anybody starts working on the code later on, he/she is able to understand what has
already been written. Writing good comments is very important as all other documents, no mat-
ter how good they are, will be lost eventually. Ten years after the initial work, you may find only
that information which is present inside the code in the form of comments.
Development tools also play an important role in this phase of the project. Good develop-
ment tools save a lot of time for the developers, as well as saving money in terms of improved
productivity. The most important development tools for time saving are editors and debuggers. A
good editor helps a developer to write code quickly. A good debugger helps make the written
code operational in a short period of time. Before starting the coding process, you should spend
some time choosing good development tools.
Review meetings during the development phase also prove helpful. Potential problems are
caught earlier in the development. These meeting are also helpful to keep track of whether the
product is on time or if more effort is needed complete it in the required time frame. Sometimes
you may also need to make some changes in the design of some components because of new