Predictable Software Development (and the tools are free)

All information here is copyright 2001 by Matthew Von-Maszewski
... this is a work in progress ...

Proposal to Publisher

I propose to write a book for lead software developers and software development managers. The book will present a sample software development department that is an implementation of industry standard development practices using tools freely available. I will present six basic practices that everyone in a development department should understand. The presentation will discuss not only the tools but also how each individual contributor, Linux and/or Windows based, would interact with the tools as part of their daily activities. The department employees should benefit both individually and as a whole as their development practices become more open and predictable.

Prior literature in this area is handicapped. The books cannot give actual implementation plans because typically the software tools are expensive. So the books are limited to either pure development theory, showing one vendor's expensive tools suite, or reliving a massive effort of a company such as Hewlett Packard. Each reader is left trying to find a way to apply and implement the book, or is required to purchase the presented software. Once money enters the picture, target managers must justify the expense and ensure that the software exactly meets their needs. Our book would not be hindered by cost. The tools are free. Who cares if they are not the perfect long term solution? Once a good development practice is established, a development department can carefully select vendor tools at their leisure. Using our book implies no cost, yet gives an exact, incremental plan for both the manager and the staff.

It is important to note that I scale the industry practices. Requirements Management is a good example. IEEE and SEI presentations on the topic prescribe elaborate documents. Our book presents managing basic requirements through the Bugzilla bug tracking system. This adaptation makes requirements gathering and management much more reasonable and cost effective for our target audience.

The target audience is large for two reasons. First, it consists of every small to medium software development group, each of which is today re-inventing the software development process partially learned elsewhere by one of its employees. Second, this book equally applies to Windows development houses as well as to Linux houses ... and the fast growing dual development groups. Yes, the actual tools sit on a Linux server. But all the interactions are through command line and web interfaces. These are equally available in Windows and Linux. The book has the potential to become a standard reference within the software development community.

Target Audience Format of Chapters
    [goal is to make a better individual contributor]
  1. Software development leads and managers
  2. Small to medium development departments
  3. Individual software developers
  4. Software consultants / independent contractors
  5. Windows and Linux developers alike
  • Place in mindshare
  • Justification for time
  • Desk procedures for generic use
    • developer
    • lead/manager
  • Implementation of shareware tool
  • Maintenance of tool and data

An Integrated Presentation of Freeware Tools and Industry Practices

  1. Introduction
  2. Preparing for Success
  3. Place to Stuff Your Stuff: CVS
    source code management
  4. Place to Strut Your Stuff: Apache
    general document management
  5. Thoughts About Your Stuff: Bugzilla
    issue (bug) management
  6. Plans for Your Stuff: Bugzilla II
    requirements/expectations management
  7. Stuff Needs to Compile: gnu make
    configuration management
  8. Funny, The Stuff Used to Work: unittester
    unit tests
  9. How Is The Stuff Doing: mySQL & gdchart
    progress presentation
  10. Beyond This Stuff:
    next steps


This is my first book. I am open to your experience in revising this schedule and expectations.

I estimate the book is a 22 calendar week effort. Here is how I derived the number:

Initial Bibliography

Blanchard, Kenneth, Ph.D., and Spencer Johnson, M.D. The One Minute Manager. New York, NY: Berkly Books, 1983.

Brooks, Frederick P., Jr. The Mythical Man-Month. Anniversary Edition. Boston, MA: Addison Wesley Longman, 1995.

DuBois, Paul. MySQL. Indianapolis, ID: New Riders Publishing, 2000.

Gane, Chris. Rapid System Development: Using Structured Techniques and Relational Technology. Englewood Cliffs, NJ: Prentice Hall, 1989.

Kernighan, Brian W., and Rob Pike. The Practice of Programming. Reading, MA: Addison Wesley Longman, Inc., 1999.

Kit, Edward. Software Testing in the Real World: Improving the Process. Susannah Finzi. Harlow, England: Addison-Wesley, 1995.

Laurie, Ben, and Peter Laurie. Apache: The Definitive Guide. 2d ed. Sebastopol, CA: O'Reilly & Associates, Inc. 1999.

Maguire, Steve. Debugging the Development Process. Redmond, WA: Microsoft Press, 1994.

Maguire, Steve. Writing Solid Code. Redmond, WA: Microsoft Press, 1993.

McConnell, Steve. Rapid Development. Redmond, WA: Microsoft Press, 1996.

Schmauch, Charles H. ISO 9000 for Software Developers. Rev. ed. Milwaukee, WI: ASQC Quality Press, 1995.

Yarger, Randy Jay, George Reese, and Tim King. MySql and mSQL. Sebastopol, CA: O'Reilly & Associates, Inc., 1999.