News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 7/1/2009 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
Is the mystery Borland suitor Serena?
Borland software is considering an offer from another company after a preliminary deal with MicroFocus. Is Serena the new company?
06/30/2009 01:55 PM EST

Windows 7 - An eBayer's dream product?
Windows 7 pre-orders can make people money on eBay.
06/29/2009 03:48 PM EST

Know thine cloud provider
Cloud computing require companies to understand compliance and regulation. Third parties will play a big role in regulated industries.
06/29/2009 02:58 PM EST

 

Microsoft Worldwide Partner Conf.
7/13/2009 to 7/16/2009
New Orleans
Microsoft

OSCON (Open Source Convention)
7/20/2009 to 7/24/2009
San Jose
O'Reilly Media

XBRL Technology Workshop & Summit
7/28/2009 to 7/30/2009
Santa Clara
XBRL US

ACM SIGGRAPH
8/3/2009 to 8/7/2009
New Orleans
ACM SIGGRAPH

OpenSource World (formerly LinuxWorld)
8/12/2009 to 8/13/2009
San Francisco
IDG World Expo


 
Most Read Latest News Blog Resources

A Culture of Fear




April 15, 2006 — 
As I write this column in mid-March, the venerable SD West conference (www.sdexpo.com) is just winding down. SD West is still one of the best conferences out there if you’re interested in actually learning something. Its sessions are all tutorials, and there’s absolutely no vendor hype—a refreshing change from Microsoft’s Tech-Ed, Sun’s JavaOne and the other big vendor conferences. A few thoughts came to mind while listening to this year’s keynotes, which I’d like to share here.

My first thought was that none of the keynotes covered bold new territory, but the talks were still topical because people just aren’t developing software in a way that works, even though we know how to do just that. How is it that we, as a profession, can know how to get the job done, but we just don’t do it?

ObjectMentor’s Robert Martin, in his keynote, asked if anyone had ever had to work on a piece of code so hideously complicated that it took forever to get even a simple change to work? Everybody raised their hands. He then asked, “So, why did you write it that way?” which engendered a nervous laugh from most of the crowd.

We do write bad code all the time for bad reasons. Some idiotic manager telling us to use AJAX, Web services, application servers and all sorts of other junk to implement a facility that could be written in 20 minutes using a simple socket—that’s all too common.

When it comes to software development, there are very few revolutionary ideas. The most recent example of a truly great idea is the notion of agile processes, which I learned about by reading Kent Beck’s “Extreme Programming Explained” about six years ago.

Few of Beck’s ideas were truly new, but a few stand out as truly inspired. Pair programming and test-driven development, for example. Even now, six years later, it’s still a struggle to get companies to put these ideas into practice, and that reluctance mystifies me.

Steve McConnell, former editor of IEEE Software, talked about process in his keynote. He observed that Extreme Programming (XP), paradoxically, is one of the most heavily documented software development processes. I can’t think of any other software development process that’s documented so thoroughly. This in spite of the fact that the XP folks seem to shun formal documentation. Interestingly, this documentation makes XP one of the easiest software processes to adopt—the rules are laid out for you right there in the books. Nonetheless, nobody seems to be adopting it.

Now don’t get me wrong, I can understand why a manager might approach XP with caution. The disregard of up-front thinking about program architecture is, to my mind at least, a bad idea. Nonetheless, there’s a lot of great stuff in XP. Pair programming really does work, for example. Several formal studies have demonstrated conclusively that short cycle times and regular releases of the software into the hands of real users is one of the two “best practices” that measurably reduce development time and increase quality. (The other is regular design reviews.) Since I’ve done test-driven development, I’ve not only seen my development times cut at least in half, but also have found programming to be a much more enjoyable activity. The pressure of “getting it working” is nonexistent. The code always works. Whenever I make a change, it’s never more than a few minutes from working again.

More to the point, designing the software around use cases (which the XP folks call “stories”) is, to my experience, a profoundly better way to develop software than to start with the technology and work outward toward the UI.

Martin also talked about “blocking”—people not being able to get work done while they’re waiting for someone else to finish something. A use-case-based approach, where a programmer (or a pair) implements a single task that the user needs to do, virtually eliminates blocking. That’s a very different way of working than many of us are used to, however.

Two programmers working on separate use cases in the same program will probably be working simultaneously on the same class definitions and in the same database. You don’t work on a single class definition until it’s done; you work on getting the program to do something useful, modifying as many classes as necessary.

So why aren’t we doing this stuff? It does work, and we know it! The answer is one word: fear. I just quit a CTO job because the CEO was so filled with fear of not getting the software out the door fast enough that he refused to let me do the very things that would get the software out the door fast enough. After being told off one too many times about how I “wasn’t doing anything” (i.e, not sitting in front of an IDE coding), I just gave up. I’m not going to preside over a death march, or be blamed for a failure, when I’m not permitted to do what’s necessary to make the project succeed.

Unfortunately, it’s exactly this sort of fear that makes uneducated managers everywhere sabotage their own projects, and the best way to deal with that fear is education, which brings me back to SD West. Conferences are great venues for learning new ways of doing things.

Education is almost always the first thing to go when budgets get tight, but it’s the only thing that can get you to work effectively within that tighter budget.

Allen Holub is an architect, consultant and instructor in C/C++, Java and OO Design. Reach him at www.holub.com.


Share this link: http://www.sdtimes.com/link/29250
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading