OBriens tower
Musings on software development, Linux and business

Fuller approach to software development?

by Robert Fuller

During our daily lunchtime chat William raised the topic of Steve Yegge’s blog about ‘Good agile, Bad agile‘. William argued that although the article is highly entertaining and while some of the criticisms are valid, Steve didn’t really present alternatives.
There ensued some discussion about various software methodologies which we’d been exposed to the past decade. The methodologies mentioned included waterfall, agile, scrum, omt, xp and rational unified process. My partner Stephen suggested that in each case someone has come up with a few useful ideas and observations about methods of developing software, but as you can’t sell “a few useful ideas” they’d take these, surround them with a load of useless ideas and voila! a new methodology.

Hmmn… I wonder is it true.

Here are some of my observations after a decade of software development:

  • Gathering requirements and writing them down is important.
  • Mock-ups are useful to help elicit the customer requirements and to set expectations. They also make the development phase easier.
  • Keeping a standard structure on the file system for the software source code is useful, likewise standard naming for packages and files.
  • Automated build procedures are handy.
  • Unit testing is indespensible.
  • IDE’s and compilers are your friends. Google is too.
  • Leaving comments in code is a kind thing to do.
  • Junior developers can learn from senior developers.
  • Revision control tools are indespensible.
  • Refactoring is often helpful.
  • Gathering requirements before the development phase is more efficient.
  • Keeping a list of things to do makes it easier to get them done.
  • Good project managers do it without interfering.
  • Bug tracking systems are good things.
  • Coffee breaks and lunch breaks should be mandatory.
  • Working extra long hours doesn’t result in a long term benefit.
  • A quiet work environment is more productive.
  • Copy-and-paste is evil and sometimes irresistable.
  • No matter what it is, somebody else has probably done it before.
  • Microsoft is NOT evil.
  • Senior developers can learn from junior developers.
  • Linux is NOT evil.
  • Open source is a gift.
  • C runs faster than java or C#.
  • perl -p -i.bak -e ’s/foo/bar/g’ is handy.
  • User interfaces are of utmost importance.
  • Someone else on the team might know the answer.
  • Code reviews are often useful but expensive.
  • Some things are better done where you can’t be easily interrupted.

Hmmn. Maybe I could write the Fuller Software Methodology… I wonder could I write it on a 4X6 card?

One Response to “Fuller approach to software development?”

  1. stephen mulcahy Says:

    Hehe, well summarised. I would note that you won’t make the blogosphere since your list is far more than the standard “10 things about … “.

    On the Microsoft and Linux thing, I think it’s fair to say that all operating systems suck (though some may suck just a little bit more than others ;)

Leave a Reply