|
One day at a time, Daily Build wins converts
Software companies in India and abroad are looking at a marriage
of traditional quality processes like CMM and ISO with the Daily Build process,
something global software majors like Microsoft have been following for ages.
Stanley Glancy takes a look at the scene unfolding in India
Microsoft Windows NT consists of more than six million
lines of code spread across 40,000 source files. Hundreds of software engineers
spent thousands of hours writing this code. But how many users ever wonder about
the mammoth complexities that a project of this size would have generated? The
fact is that it takes a tremendous amount of discipline and effort to complete
such a gargantuan taskeven though there will be bugs even in the final
product. What is it that Microsoft does right? Microsoft religiously adheres
to the practice of Daily Build and that is the secret, says Rajeev Agarwal,
principal, MAQ Software.
Daily Build explained
 |
Praveen Kankariya feels
that the sooner an integration problem is resolved the less expensive it
is to deal with, and Daily Build helps in this aspect |
Simply put, Daily Build is a process in which a software
product is completely built everyday and then put through a series of tests
to verify its basic operations. Elaborates Praveen Kankariya, president and
CEO of Impetus Technologies, A Daily Build is an automatic, daily and
complete build of the entire source code, which is clubbed with a smoke test
to verify the sanity of the build.
Daily Build involves making the latest version of the
product available to the client every day. The process calls for integrating
the latest work done by the developers, testing the integrated version, fixing
priority issues and making it available to the client by hosting it.
Other than Microsoft, many product companies in the
West have been religiously following the Daily Build process to save on time,
cut costs, minimise integration risks and improve software quality. Indian companies,
which have followed generic process frameworks like SEI-CMM and ISO have now
begun to realise the advantages of Daily Build. Says Agarwal, We are taking
the practices learnt at Microsoft and moving them to the offshore model. We
build the product everyday and host it on the server, which then goes through
bug logs. This enables us to get a daily review on the status of the product.
Why build daily?
 |
According to Rajeev Agarwal, MAQ Software
is taking the practices learnt at Microsoft and moving them to the offshore
model |
Among the main reasons for companies adopting Daily
Build are the minimising of integration risks and improvement in quality of
the software product. For instance, in the case of a distributed software development
environment (onsite and offshore going on simultaneously) the risk of integration
is very high, thanks to diverse sets of people working on different requirements
at different places. The problem arises at the time of integration of the various
codes and the product doesnt work well. If the fault is discovered very
late in the project cycle, then debugging would take that much longer, resulting
in further delays and added costs. In extreme cases, projects have even been
shelved because of incompatibility between various modules.
By building the product daily and smoke testing processes,
developers can minimise such risks. If a build worked perfectly well one day
but smokes the next, then something that was done in the interval has gone wrong.
So it is a matter of correcting just one days build than rebuilding an
entire build.
Some companies follow a Weekly Build process. But,
according to Agarwal, the problem is that if the build is broken one week then
the organisation can go for several weeks before the next good build, resulting
in a loss of all the benefits of frequent builds. Even Kankariya feels that
the sooner an integration problem is resolved the less expensive it is to deal
with. According to certain industry estimates, by following the Daily Build
process companies can save anything between 30-40 percent of the total cost.
Even the deployment is much faster as an organisation can significantly cut
down on the amount of time spent on development.
Reducing the risk posed by poor quality is another
key advantage. Daily Build helps capture the defects in the coding phase itself
and reduces burden in the testing phase. It also helps the development team
focus on larger issues of testing than dealing with individual bugs. This adds
more value to the overall software development process. Says Agarwal, You
bring the system to a known good state and then keep it there. You simply dont
allow it to deteriorate to the point where time-consuming quality problems can
occur.
Other than these primary benefits there are a few tertiary
benefits as well. Iterations are done away with. It is generally difficult to
get customers to articulate their requirements. So when you provide them with
the product they will be able to pinpoint their requirements. Also, according
to Raghunathan, it improves employee morale. Says he, By following the
Daily Build process developers can see the project running everyday, which serves
to be a major morale booster.
How it compares
According to K Raghunathan, vice president-technology
for Blue Star Infotech, Daily Build becomes relevant in two contextsthe
Microsoft context wherein companies run very large projects to develop products,
and secondly in the context of extreme programming (XP), wherein versions are
released everyday. Typically, Indian companies do not get projects on
the same scale as those
undertaken by Microsoft. Traditionally, Indian firms
have followed CMM or ISO processes. But companies that are into product development
and others like Blue Star that have adopted XP are major proponents of Daily
Build. This is mainly because XP and CMM cannot be reconciled.
While SEI-CMM suggests incremental process maturity
built across 18 key process areas covering aspects related to software engineering,
software management and organisational improvement activities, the ISO quality
management system is based on the Deming cycle of plan, do, check and analyse
and helps in putting a customer-focused organisation-wide process framework,
aiming at satisfaction of all stakeholders.
Says Agarwal, Companies that follow the CMM process
need to necessarily document every single process. They also need to get prior
approval on every single document before even a minor change can be incorporated.
This slows down the process, which in turn leads to customer dissatisfaction.
But both Raghunathan and Kankariya feel that software
developers can achieve a fine blend of both SEI-CMM and Daily Build. Impetus,
for example, uses SEI-CMM and ISO 9000 for an organisation-wide quality management
system covering all aspects of software engineering, software management and
organisational activities. This integrated process framework helps the firm
to incubate knowledge integration exercises and also incorporate best practices
like the Daily Build process. ISO and CMM are strategic and philosophical
whereas Daily Build is tactical and a tool used for implementation and operational
aspects. In that sense, the two complement each other and provide a complete
and comprehensive guideline for the development process, articulates Kankariya.
Daily Build encourages a certain discipline and helps developers stick to original
deadlines as it measures progress on a daily basis. Even Microsoft follows processes
like documentation, as it proves doubly beneficial to marry CMM and Daily Build.
Daily success
Adoption of the Daily Build process is not without
its challenges. Things can get hectic, as the pace is much tougher. The process
has to be extremely streamlined, though this can actually do a lot of good in
the long run. Penalties need to be put in place for breaking the build, otherwise
the point of the exercise can stand defeated. For instance, all other works
need to come to a halt till a broken build is fixed. Even when schedule pressures
intensify companies need to stick resolutely to the process, as developers are
bound to take design and implementation shortcuts when stress levels increase.
In the case of Windows NT a complete build would take as much as 19 hours but
the team managed to build everyday. In fact, the NT team attributes much of
its success on that huge project to their daily builds.
But certainly, more and more organisations in India
are adopting the Daily Build process of software development. With ex-Microsoft
employees like Agarwal moving these processes offshore and making a success
of it others are soon likely to emulate their example. Companies have realised
the time and cost advantage of the process. Even clients are beginning to demand
that developers provide them with a daily version of the solution being developed.
Most major companies in India already have a Daily Build component as part of
their process and we should soon see the others joining the bandwagon. As Raghunathan
says, Today, advocacy of Daily Build is just a trickle but we should soon
see it turning into a torrent.
stanley@expresscomputeronline.com
| SEI-CMM describes the principles and practices
that can help software organisations improve the maturity of their software
processes. CMM identifies key process areas and the practices that comprise
a disciplined software process. It provides a layered framework to achieve
the discipline needed to engage in continuous improvement.
ISO (International Organisation for Standardisation)
is concerned with the formulation of technical standards to make development,
manufacturing and supply of products and services more efficient, safer
and cleaner. ISO 9000 standards aim to guarantee the effectiveness and
efficiency of the organisation, its processes and customer focus.
|
|