Software Product Development–the Unsolved Mystery of High Tech Part I

November 9, 2009 by admin  
Filed under Management

Phil Morettini asked:


One of the most puzzling things in high technology, especially for executives on the business side of things, is the software development process. It’s the high tech equivalent to the “Black Hole” phenomenon made famous in Astronomy. Endless resources can be poured into a software development project, yet there never seems to be an end in sight.

And why is this so? It seems that in such a typically high tech, yet now familiar activity, we would have long ago figured it out. You would think that the process of software development would, by now, amount to simply turning a crank—yet it seems it hasn’t advanced much since the dawn of the PC age.

I don’t mean to be overly dramatic here. But I have been in the high tech and software industries since 1983, and I have never been involved with—or even personally known of a software project—that came in on time and under budget. Never. Not even ONCE. That’s pretty incredible. Now, I realize that there are almost certainly examples of on-schedule projects out there, but they are in the overwhelming minority of all software that is developed.

THEY ALWAYS SLIP

It’s just accepted in the software business that projects will slip, particularly when the end result is an actual commercial product. The businesses I’ve been involved in have tried everything. We’ve tried an approach of “No upfront planning”-starting coding as soon as possible. We’ve tried “extensive and laborious upfront planning”-with a detailed spec, and a prototype, completed prior to initiating production coding. I’ve seen many projects that tried using intermediate steps, falling between the two extreme approaches above. We’ve tried to start projects by purchasing as many “pre-written” modules as possible, used various languages and platforms, hired dedicated debugging personnel, tried code-generators, assembled both small teams & large teams, you name it—we’ve tried it. Project schedules have been written with the utmost conservatism, at the insistence of senior management. No matter. Across a number of different companies, EVERY project has slipped out beyond the wildest nightmares or everyone involved.

ONE LINE OF CODE, TWO WEEK DELAY

Once I asked our lead programmer to change ONE LINE OF CODE in a well-established product. He estimated it would take just a few seconds to make the change, and a few hours to test it. The change would be final by the end of the day, at the latest. Two weeks later I was still waiting for a solid product.

Now, don’t misunderstand. I’m not writing this to bash software developers. While not every developer I’ve worked with over the years has been a world-beater, I’ve had the fortune to work with quite a number whom I consider to be outstanding. But no matter how much thought, time and effort went into it, our projects always slipped. A lot. We usually ended up with a commercially successful product, but how much better we could have done, had we figured out a way to bring the product to market on time? The only saving grace was the competition had the same problem.

MORE ART THAN SCIENCE

The reason, I believe, is that writing software remains much more of an art than a science. This statement is a bit surprising, until you look a little deeper. There is certainly much methodology available to guide a team to use sound, time-tested practices in developing software. However, a software program is really just a document written in a foreign language. That’s why C++ and Java are called Programming Languages. In writing a novel you are essentially creating a unique work that has never been done quite the same way before. Also true for a software program. If you knew exactly how the writing of a novel or software program would go before you began, there would be no need to write it—it would have already been done. While there are plenty of rules (representing the science) to writing good software, at the end of the day it’s a unique, written creation (the art).

COMPLEXITY OVERWHELMS EXPERIENCE

Another key reason why conquering the software development process has appeared to be impossible, is the vastly increased complexity associated with software projects today. Let’s face it, the average piece of software today does a lot more, and is quite a larger in terms of the number of lines of code, than at the dawn of the PC era. The creation of graphical user interfaces really started the explosion in the size of software code. So much more code is needed, to bring the user-friendly products of today to life. And what enabled this, of course, was the dawn of the modern operating systems, especially the overcoming of the 640K limit that the original DOS operating system required PC programs to run in. Windows and other modern operating systems almost eliminated the need to write software efficiently, at least from a code size perspective. It’s interesting to speculate—if we were still writing in the 640K box, would software development have evolved to a more predictable science today? Maybe, but the world would be a less productive as a result.

WHAT TO DO FROM A BUSINESS PERSPECTIVE?

As you can tell from this discussion, I don’t have a great set of answers on how to bring software to market on time. It’s one of the great frustrations of my career. I still strongly believe that getting the best people you can get will make the problem better, even if it can’t be solved completely. I also believe in keeping development teams small, with the minimum of structure necessary to run the project. It’s also wise, in my opinion, to structure your product releases to be more frequent, while adding fewer new features per release. This should at least minimize the pain of each release slipping, since the slip time of each release should be less. And knowing what you’re going to be coding, developing a spec document and sticking to it (no feature creep!) is also sound practice, although I’ve found it to be no panacea. Beyond that, I’m at a loss. Maybe one of you has a strong opinion on how to bring projects out on time? If so, post a comment—this is a discussion worth having.

Monitoring the progress of a software project can be like peering into the darkness of a seemingly bottomless pit.

And why is this so? It seems that in such a typically high tech, yet now familiar activity, we would have long ago figured it out. You would think that the process of software development would, by now, amount to simply turning a crank—yet it seems it hasn’t advanced much since the dawn of the PC age.

I don’t mean to be overly dramatic here. But I have been in the high tech and software industries since 1983, and I have never been involved with—or even personally known of a software project—that came in on time and under budget. Never. Not even ONCE. That’s pretty incredible. Now, I realize that there are almost certainly examples of on-schedule projects out there, but they are in the overwhelming minority of all software that is developed.



Liberty Science Center: Reinventing the Science Museum

October 12, 2009 by admin  
Filed under Destinations

Ann Knapp asked:


From its unique approach to engaging people in real science, to its goal of positively influencing communities to take action to improve our world, the Liberty Science Center in Jersey City has been re-invented to enhance educational travel and inspire student groups in scientific literacy and understanding.

Science museums first appeared in the early 1800s, with a focus on collecting, researching, and presenting artifacts in an attempt to understand the past. In the 1960s, science museums sought to entertain and engage their audiences – increasing scientific literacy and understanding. Today, many science centers are focused solely on interactivity. The newly reinvented Liberty Science Center has placed its efforts on encouraging actual science activism, acting as a resource and catalyst to advance the realm of science, technology, and society.

Enhanced by its historic and cosmopolitan location, which overlooks Ellis Island and the Statue of Liberty, the Liberty Science Center strives to inspire student tours in understanding the continuing connection between scientific advances and how they improve the human condition.

For instance, the center’s “Live From Robotic Surgery” program uses live teleconferencing to take students into the O.R. where they interact directly with surgeons and witness how the advances of science and technology benefit humans. Program offerings include topics on cardiology, neurosurgery, and kidney transplant. Other programs include lab workshops in a state-of-the-art laboratory where students embark on an interactive learning experience led by a knowledgeable science educator.

As students explore the new Liberty Science Center, they encounter “Skyscraper!”, an unprecedented look at the planning, design, and technology of these amazing structures. Whether walking a steel girder high above the exhibit floor, facing down jet-powered hurricane force winds to test a building design, or taking a quiet moment to reflect on the destruction of the World Trade Center, “Skyscraper!” leaves students with a new appreciation and altered view of the impressive skyline that surrounds the center.

“Infection Connection” describes how the choices we make on a daily basis contribute to the rise and fall of infectious diseases. In this exhibit, students explore interactions between humans and microbes, learn about emerging diseases, and see how science develops tools and technologies to prevent and treat infections. Student tours can even conduct microbiology and epidemiology experiments in the center’s own laboratory.

While most of the exhibits in the center are brand new, students can still see some familiar favorites from the earlier days in “Wonder Why: Observe, Imagine, Create.” Exhibits highlights include the fossil-studded Rock Climbing Wall, observing the attributes of air at the Bernoulli Blower, or creating a masterpiece in the Digital Darkroom.

Science comes to life in demonstrations offered live in the center’s exhibition galleries. Student group travelers have the opportunity to participate and ask questions of a science educator on topics that correlate with the exhibits. For instance, students learn how to be an amateur surveyor using actual surveying equipment or learn the steps required to create a sterile environment in the operating room while performing live surgery on a (vegetative) patient. Or, they may experience first hand how lasers work and discover some of the ways lasers are used in daily life.

In the Liberty Science Center IMAX Dome Theater, student tours journey into ancient tombs or observe the surface of Mars during their scheduled film showings. In the Digital 3D Theater, the story of NASA’s Solar Terrestrial Relations Observatory mission unfolds, told through the eyes of key NASA participants. The film features the first stunning 3D images ever captured of the sun and explains the vital knowledge the science community will gain from the mission.

The Liberty Science Center offers a variety of educational programs based on age and interest level. Some of the more popular choices include lab workshops, which are held in a state-of-the-art laboratory, where students embark on learning experiences, ranging from meteorology to New Jersey wildlife, with a science educator. Enhanced Experiences allows groups to choose an onsite experience and dig deeper into one of the center’s new exhibitions, or pick an outdoor experience and learn about the Hudson River estuary.