jump to navigation

Golden Rules of software development March 16, 2008

Posted by babblefrog in Geek.
trackback

Controlling complexity is the essence of computer programming
-Brian Kernighan

Just a few observations from watching some software development projects:

Change Increases Risk – Every time you want to make a change to something in the middle of the project, make sure that the benefit is worth the cost. The more critical the project, the more you need to manage change.

Follow your standards – If you have coding standards, documentation standards, commenting standards, standard processes and procedures: Follow them! Every time you think you can save time and effort by shortcutting any of this, it will turn out to cost you double (or more) time in the end.

Use the tools and techniques you know
– Trying out new technologies, tools, or techniques should be done in small, non-critical projects. Doing this is large, critical projects will increase risk, and make the project take longer.

Complexity is risky - If you have a choice between doing something a simple way, or a complex way, choose simple every time.

Test, test, test - Unit test everything. That one small change that won’t effect anything else, will ultimately come back to bite you.

Catch exceptions – each one is a bug you didn’t know was there. Check return codes – The one you don’t check will turn into a bug a thousand lines away in a different module.

Keep maintenance in mind – Make the code simple and easy to understand, and comment anything not immediately obvious. After 6 months, even you won’t know why you wrote it the way you did, so how are the maintainers supposed to know?

Use popular languages and tools – Your project may be a perfect match for that new language Babel-E++, but how the heck are you going to be able to hire programmers to maintain it?

Do peer reviews – Review requirements, architecture and design documents, and code. A second set of eyes can flush out errors and fill holes that the original author missed.

Hire good people – Experience counts, and experience with a broad range of technologies is much better than focused experience with the one technology you happen to be using now.

Comments»

No comments yet — be the first.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.