best-practices

recent posts related to software development best practices

Software best practice - never say "75% done"

A lot of people have written to say that it's unfair that I think developers should never say "I'm 75% done", or "I'm 90% done".

So, to explain myself, here's why I think you should never use a phrase like that:

Team-level software development best practices

Here's a brief list of some of the most obvious, and important, team-level best practices I know for software development:

Function Point Analysis presentations online

I've had some Function Point Analysis documents available here before, and recently finished converting those presentations into a better form for the internet. To that end I've gathered all these in a new Function Point Analysis Education Center, which contains those free documents and presentations.

These educational documents cover FPA, cost estimating, and even cost estimating for Agile software development projects.

Bad things happen when developers don't communicate

I was recently reminded of the danger of leaving less-experienced software developers alone to create new functionality in a technical area where they have no prior experience. For instance, suppose you have one or more good but less-experienced developers, and you ask them to work in a technical where they have no prior experience. These aren't totally inexperienced developers; they may each have at least five years experience. Given that their are other people on the team with experience in this area, how do you think this should be handled? Choices include:

A simple robustness diagram explains Model-View-Controller (MVC)

If you've never read the book Use Case Driven Object Modeling with UML by Doug Rosenberg and Kendall Scott you're missing one of the most simple and important Model-View-Controller (MVC) diagrams in the software business.

In their discussion of Robustness Diagrams they introduce a figure called "Robustness Diagram Rules" that succintly tells you how to implement an MVC design in your code. In one figure they tell you:

Software rot, too much magic, and spaghetti code - the Kirk/Scotty syndrome

There is a disease I see so often in the software development industry that I've decided to give it a name. I call it "Kirk/Scotty Syndrome". This disease is related to the concept of "software rot" and "spaghetti code" inflicted by the management team. You'll know this disease when you hear it, because it will sound a lot like the following conversation, taken from most Star Trek episodes:

Software requirements writing - two notes on my frame of mind

Here are a couple of notes I just sent someone on how to get started writing a software requirements specification.

They may be a little vague, but I hope they show my intent, or perhaps my frame of mind, when writing a software specification.

Fred,

Here are two notes on my mental approach when writing software requirements specifications:

Using UML - The usefulness of UML diagrams

Following a speech two days ago, I'm struck by how very little we use the Unified Modeling Language (UML) on our software projects. Occasionally I'll create some activity diagrams to model how users get their tasks done, but that's about it. Typically when we create a software requirements specification this is what we deliver:

Code Kata - practice programming

Here's a link to a Code Kata site. It discusses the importance of practice in the software industry. It seems like the basic theory is "If musicians and athletes believe that practice is extremely important, why don't developers (and organizations that develop software)?"

At the moment I'm not aware of any software organization that takes time out for skills practice, unless training on new products or languages counts ... and I don't think it does. Kudos.

Steve McConnell's "Classic Mistakes Enumerated"

Here is a link to Steve McConnell's Classic Mistakes Enumerated, from his book titled "Rapid Development". It is a great listing of 36 common problems that plague software development projects.

Syndicate content