Quantcast

Secrets of Managing Software Projects

Secrets of Managing Software Projects

In addition to writing good software (see our five step guide), we know we have to deliver software on time.  Managing the project is as important as delivering the software.

Here's how we deliver high-quality software projects.

  1. We always start with requirements and a specification. Even for small projects. (Small projects have small specs.) Specs save money, time, and arguments. Would you build a house without a blueprint? We start our software projects with a clear definition of what is in and out of scope, and a technical plan for getting to the finish line on time.
  2.  

  3. We break all big projects down into small tasks of 40 hours or less.  This is particularly important in the estimating phase of the project.  Any estimate over 40 hours means the estimator hasn't thought in enough granular detail to truly understand the work they'll be doing.
  4.  

  5. We enter our time daily against the tasks.  It has to be daily.  If our developers wait until the end of the week to enter their time, we've lost 83.5% of the details.  Without daily entering of time, there is no way to accurately track how much time a task really took - so it's impossible to compare to the original estimate.
  6.  

  7. Screen showing hours left on task. We ask for the remaining time left on each task.  Here's an example of how that works.
    The task was budgeted for 20 hours.
    The developer already used seven hours.
    The developer worked five hours that day on the task.
    So, are there really eight hours left?  In this case, no. The developer says there are only six hours left - she's ahead of schedule.  Hot damn!  We love it when that happens.
     
  8.  

  9. We keep an up-to-date schedule - who's working on what, and when will he/she be finished.  Note: without an accurate "remaining time left" entry, we don't really know when somebody will be finished!
  10.  

  11. We use the very best software development tools and computer equipment we can get.
  12.  

  13. We employ full-time testers. The worst people to test code are the programmers who wrote it.
  14.  

  15. We employ project managers who “get” programming.
  16.  

  17. We do usability testing and use our design experts for the user-interface work.
  18.  

  19. We use source control. This allows us to keep track of changes to source code when more than one programmer is working on the project. Source control saves our lives about once a month.
  20.  

  21. We do daily builds. This is the technical term for making sure the project in process has all the parts and pieces that make it up, and that they all run together.
  22.  

  23. We fix bugs before writing new code.  Seems like a small step, but it ensures that, at any point in time, the code is solid.  Bugs are fixed while they're still fresh in the developer's mind; additional work that other programmers are writing doesn't get blown up due to known-but-unfixed bugs.
  24.  

  25. We have a bug-tracking database.  Not that we ever have more than one or two bugs to track...
  26.  

  27. We offer all our programmers a private office with a door that closes. This makes a huge difference.

These practices lead to high quality software, which leads to repeat business. We like repeat business and we suspect our customers do too!

Our Influences

Joel on Software

We've suffered through a lot of real-world learning - no doubt about it.  We've also been deeply influenced by the best thinking in the software industry, including Joel Spolsky's seminal book Joel on Software.  (If you're really into the software process, make sure to follow Joel's blog.)

We read Joel's book together as a company and met weekly to discuss it.  The book had a huge impact on helping us grow as a professional software-development company, with real standards and expectations. 

 

If our process is intriguing, please contact us or call Rick Fessenbecker at 414-434-8202.

 

© 2011 - Northwoods Software Development, Inc.
4600 West Schroeder Drive, Brown Deer (Milwaukee), WI 53223 414-434-8200