BID2WIN Software Inc. — Enterprise-Class Construction Management Solutions
BID2WIN Software Inc. — Enterprise-Class Construction Management Solutions
BID2WIN — Construction Estimating and Bidding Software
Expect MoreNews
View the Demo
Contact a Sales Rep
User Conference
Case Studies
RSS
BID2WIN Software in the News

Building Skyscrapers and Software Applications ... How Important Is Design?

Dave Todaro still benefits from something he learned 10 years ago, after making a rather memorable mistake as a new college graduate. It's a lesson that many other software engineers could learn from as well. In the February issue of UNH's FOCUS, Dave generously shares his story with the students of his alma mater, the University of New Hampshire.

Building Software Before It's Built
by Dave Todaro

I sat at my desk with my head in my hands. "How could I have been so stupid?" I thought to myself.

It was 7:30 a.m. and I had just received a phone call from our largest client, two days after shipping version 1.0 of our first Windows product. "Um…our software just shut off. How do we turn it back on?"

Not knowing what the problem was, I managed to get the client off the phone and did some digging. As it turns out, I had left a hard-coded shutoff date in the software, used during our early testing process. The date just happened to be two days after we shipped our product to approximately 50 companies throughout New England.

I now sat there, staring down at my desk, feeling the sense of dread sweep over me. I realized in a flash that all our clients would soon be calling me. I put my head down on the desk and gritted my teeth. I wanted to go hide under a rock.

That was almost ten years ago, when I was a fresh graduate from UNH. I had joined a local software company, at that time run out of my business partner's den in Stratham, as employee number two.

What I didn't realize then, but I know now, is developing commercial software is really hard. I had fallen into the classic trap of building software with little or no forethought or planning. The result? A small mistake, completely undocumented, turned into a major issue. Only some quick phone calls made by my business partner saved our clients, and our fledgling company.

Why is it that software engineering seems to be the only scientific "discipline" that, by and large, has little or none?

When we build a skyscraper, we don't start by digging a hole, pouring a foundation, and erecting some steel. Years of careful thought, planning, and computer-assisted engineering and simulation come before the first load of dirt is excavated. Every possible worst-case scenario, from earthquakes to gale-force winds, is considered and planned for. It isn't until the building is constructed "on paper" that construction begins.

There are similar parallels in other industries. The motion picture industry goes to extensive lengths to ensure that each scene comprising a movie is carefully scripted and the risks thoroughly explored before a single frame of film-or these days, a single pixel of digital imagery-is shot. Complex, technically challenging films, such as the second and third installments of the Matrix trilogy, were completely "pre-visualized" using computer simulation technology long before filming began. They made the film in a computer-based format before they made the film.

Creating nontrivial software applications is as difficult, if not more so, than building skyscrapers and creating motion pictures. Why, then, do software development firms and consultants frequently treat the planning stages of a software project as unimportant? Why do relatively new software development methodologies such as "Extreme Programming," which advocates little or no up-front design and planning, seem to be attractive to software teams?

Because programmers, by and large, just want to start writing code. None of us decided to become programmers because we wanted to write design documents. We were attracted to programming because of the process of writing the software itself, then sitting back and relaxing while we watch the computer run our creation.

I sat back and relaxed after shipping that first commercial software product years ago, not realizing the grave error I had made. I learned the hard way that successful commercial software applications are created only with careful thought, planning, and design. Only by building software on paper first, before the code is written, can we ensure a successful result.

To download the entire FOCUS newsletter in PDF format, click here: http://www.ceps.unh.edu/focus/focus204.pdf. Go to page nine for Dave's story.


Technology

Our solutions are built on the award-winning Microsoft .NET and SQL Server platform.

Microsoft Certified Partner: Microsoft .NET, Microsoft SQL Server