Skip to main content

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. 

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 task—even 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
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?
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 day’s build than rebuilding an entire build.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 doesn’t 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.

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 don’t 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 contexts—the 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.

This article first appeared in Express Computer.

Comments

Popular posts from this blog

Seven tips for recession proofing your data centre

The credit crunch and recession have put value-for-money at the top of the business agenda.  IT budgets, and more specifically data centre operations, have been among the first to bear the brunt of the cost-cutting axe.  Operational expenditure on top of high initial capital investment means CIOs must now cut cost and increase return on investments. However, reducing investment can damage an organization’s smooth functioning so how do you find initiatives that are cost-effective with a relatively quick payback period but not at the expense of disrupting the business? Know your Cost-Cutting Sweet Spots:   Maintenance and support accounts for more than 50 percent of an organisations IT budget.  In the initial phase, an audit team should identify all DCO assets deployed.  This will enable analysis of annual spending on servers and storage devices, network components, software licenses, applications, databases, and operating systems.  Overspend...

IT Act languishes thanks to government negligence

The Indian IT Act 2000 turns two this month. However, rather than being part of the solution to the misuse of technology, its implementation seems to have opened up a Pandora’s box. In light of a recent Bombay High Court verdict on the lackadaisical track record of the Indian government in this aspect, we trace the loopholes in the Act With the recent spate of high profile cases involving the entertainment industry and the underworld, and with cases dealing with global terrorist conspiracies, the Bombay High Court has been in the news for one reason or another. However, last week saw a landmark judgement in the IT space, when a bench comprising Justices Ajit Shah and Ranjana Desai, severely censured the Union government for not appointing appropriate authorities to enforce right of remedy under the Information Technology Act (IT Act), passed by Parliament way back in 2000. Though this judgement lacked the drama and sensation associated with the more high-profile cases, in th...

Indian billing vendors look outside India

A robust, world class billing system forms one of the most critical components of a telecom operator’s infrastructure, as it has a direct impact on the bottom line. Indian vendors however have received a lukewarm response from the domestic market despite the fact that their products are on the shopping list of international telcos. It’s a strange situation. Indian software solution providers are acclaimed the world over for delivering high-quality, low-cost solutions. But when it comes to products very few have been able to achieve any significant breakthroughs. Take the case of the telecom billing solutions space. Indian telecom operators have internationally reputed systems in place. But except for one or two exceptions, none of the major telecom service providers in the country have deployed solutions developed by domestic telecom billing solution providers. This despite the fact that most Indian solution vendors boast of quite a few international telecom operators on their cli...