To paraphrase a recent conference speech by Tom DeMarco, the insightful author of books and essays on software development, most projects are like Greek tragedies: During the first half, it appears that man is in control of events; the climax reveals that events are in fact in control of man. So it is with software development. At first we believe that the project controls the schedule, then we realize that the schedule was in control all along or, more likely, out of control. This is how testing is routinely sacrificed. Not out of a conscious decision to give quality short shrift, but out of a series of compromises that conspire to delay the project…but not the deadline. At the end, quality is the only price left to pay. What would happen if we became realists and just admitted, up front, that the schedule was the primary driver? This concept, also known as “time-boxing,” is a schedule-driven approach that treats deadlines as sacred, while resources and requirements are variable. When combined with the idea of a “rolling release,” which comprises continuous incremental deliveries that are scheduled early and often, this approach can work wonders or terrors, depending on how you go about it. Over the past three years I have seen an increasing number of companies apply this approach to projects as large as an SAP implementation and to those as small as a departmental client/server application, with impressive results. Working in boxes A time-boxed project works like this. The final delivery date is identified first, with frequent intermediate releases preceding it. These may be one, two, or three months apart depending on the size and length of the project, but usually no more than three. Each release should introduce sufficient functionality to permit user interaction. The goal is to get started as soon as possible, so that feedback has a chance to be incorporated before the project is over. So, instead of a one-year development project, you would have four quarterly releases, each building on the last. This approach forces requirements to be ranked by priority and order of implementation. Although the content of each release is aggressively planned in advance, it’s understood that the release will ship on the designated day with or without all requirements. The schedule rules–but we knew that, anyway. In this scenario, testing continues constantly. Instead of an end-of-the-line, frenzied event, it’s a constant companion to development, providing verification of each build and successive feature or function. In the later releases, corrections are being introduced and tested as well. The advantage of this approach is that it can produce a better product faster. Ambiguities and inconsistencies in the requirements are quickly flushed out when the software meets the cold light of user interaction. Rolling releases encourage constant refinement of requirements and continuous testing; this helps prevent projects from going too far astray or too late to test. And, if the truth be admitted, even “completed” software development projects are never finished. Any product that is being used is subject to a constant flow of issues and enhancements as the users and business it serves evolve and change. Viewed in this way, the project never really ends: It may simply metamorphose into monthly releases. Know where you’re going The flip side of this rosy picture is that discipline becomes sacrificed to speed. Although on the surface it might seem that focusing on the schedule encourages minimal planning and design, the opposite is true. The system architecture must be thoughtfully structured to enable the delivery of usable increments of functionality, providing a solid foundation quickly that supports future expansion without limiting it. It means you have to know where you’re going before you start. If you don’t, you’ll degrade into producing rewrites instead of adding requirements. One of the means for keeping tighter control on the software while enabling continuous change is to produce a software build at least weekly, if not daily. This requires the software to be assembled, available, and accounted for constantly, so that rapid responses to issues are possible. The longer the time stretch between builds, the greater the opportunity for confusion and mayhem. It should go without saying–but we will say it anyway–that relentless project management and good software hygiene is essential. Constant coordination is needed between developers, testers, and users. And source and version control with complete configuration management is crucial among developers. A rapid-fire schedule is unforgiving, and frequent releases are uncompromising. It’s either happening or it’s not. So simply declaring a time-box schedule and rolling release strategy, without the concurrent commitment to the supporting disciplines, will merely result in an interminable series of Death Sprints–each worse than the last. Accelerate or be left behind Let’s admit it. Market opportunities and product cycles are compressing; the days of multiyear development projects are gone, along with the untold millions wasted on runaways and endless delays. In this, the time of I/Net speeds, our approaches to software development and testing need to accelerate or be left behind. Time-boxing and rolling releases are just formalizations of what the market is forcing to happen. The key is to do it voluntarily and consciously, instead of unwillingly and unknowingly. // |
Ethics and Artificial Intelligence: Driving Greater Equality
FEATURE | By James Maguire,
December 16, 2020
AI vs. Machine Learning vs. Deep Learning
FEATURE | By Cynthia Harvey,
December 11, 2020
Huawei’s AI Update: Things Are Moving Faster Than We Think
FEATURE | By Rob Enderle,
December 04, 2020
Keeping Machine Learning Algorithms Honest in the ‘Ethics-First’ Era
ARTIFICIAL INTELLIGENCE | By Guest Author,
November 18, 2020
Key Trends in Chatbots and RPA
FEATURE | By Guest Author,
November 10, 2020
FEATURE | By Samuel Greengard,
November 05, 2020
ARTIFICIAL INTELLIGENCE | By Guest Author,
November 02, 2020
How Intel’s Work With Autonomous Cars Could Redefine General Purpose AI
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
October 29, 2020
Dell Technologies World: Weaving Together Human And Machine Interaction For AI And Robotics
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
October 23, 2020
The Super Moderator, or How IBM Project Debater Could Save Social Media
FEATURE | By Rob Enderle,
October 16, 2020
FEATURE | By Cynthia Harvey,
October 07, 2020
ARTIFICIAL INTELLIGENCE | By Guest Author,
October 05, 2020
CIOs Discuss the Promise of AI and Data Science
FEATURE | By Guest Author,
September 25, 2020
Microsoft Is Building An AI Product That Could Predict The Future
FEATURE | By Rob Enderle,
September 25, 2020
Top 10 Machine Learning Companies 2021
FEATURE | By Cynthia Harvey,
September 22, 2020
NVIDIA and ARM: Massively Changing The AI Landscape
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
September 18, 2020
Continuous Intelligence: Expert Discussion [Video and Podcast]
ARTIFICIAL INTELLIGENCE | By James Maguire,
September 14, 2020
Artificial Intelligence: Governance and Ethics [Video]
ARTIFICIAL INTELLIGENCE | By James Maguire,
September 13, 2020
IBM Watson At The US Open: Showcasing The Power Of A Mature Enterprise-Class AI
FEATURE | By Rob Enderle,
September 11, 2020
Artificial Intelligence: Perception vs. Reality
FEATURE | By James Maguire,
September 09, 2020
Datamation is the leading industry resource for B2B data professionals and technology buyers. Datamation's focus is on providing insight into the latest trends and innovation in AI, data security, big data, and more, along with in-depth product recommendations and comparisons. More than 1.7M users gain insight and guidance from Datamation every year.
Advertise with TechnologyAdvice on Datamation and our other data and technology-focused platforms.
Advertise with Us
Property of TechnologyAdvice.
© 2025 TechnologyAdvice. All Rights Reserved
Advertiser Disclosure: Some of the products that appear on this
site are from companies from which TechnologyAdvice receives
compensation. This compensation may impact how and where products
appear on this site including, for example, the order in which
they appear. TechnologyAdvice does not include all companies
or all types of products available in the marketplace.