blogs.conchango.com

welcome to the conchango blogging site
Welcome to blogs.conchango.com Sign in | Join | Help
in Search

andyBlog [andy britcliffe]

My working life in an internet nutshell

Good engineering practices breed good software

Seems obvious when you state it out loud, however it is quite amazing how many companies seem to miss this crucial fact when trying to deliver software. To give some context to this topic I was going through my usual evening reading of blogs when I came across a post from Steve Yegge , a Googler titled:

Good Agile, Bad Agile

Now the title attracted me initially as we're certainly interested in the Agile arena. The post its self actually turns into something of a sales pitch about how great it is to work at Google and how they look dis-organised on the outside, but there is a method to their madness. All interesting stuff but hardly ground breaking. However I came across one paragraph which really resonated with me and is, in my opinion one of the major reasons why Google is so good at doing what it does:

"Google is an exceptionally disciplined company, from a software-engineering perspective. They take things like unit testing, design documents and code reviews more seriously than any other company I've even heard about. They work hard to keep their house in order at all times, and there are strict rules and guidelines in place that prevent engineers and teams from doing things their own way. The result: the whole code base looks the same, so switching teams and sharing code are both far easier than they are at other places."

You have to have the basic ingredients in place to make a good meal, and the basic ingredients that are vital to a good meal of software development are:


I've previously written about Ruby on Rails on this blog, and I guess one of the areas that really appealed to me in RoR was the convention over configuration. Like in Steve's quote above, if you go to another Rails project you immediately feel at home in it, the directory structure looks the same, running unit tests is the same, configuration is the same. Now I'm not sure you can say that about all (or even the majority) of .Net projects YOU work on.

As developers we have a professional responsibility to ensure that any project we work on adheres to the above, otherwise you WILL hit problems further down the road. Get the solid foundation in place, so the building doesn't collapse later on.
Published 04 September 2007 20:19 by Andrew.Britcliffe

Comments

No Comments
Anonymous comments are disabled

About Andrew.Britcliffe

Senior Technical Consultant.
Powered by Community Server (Personal Edition), by Telligent Systems