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:
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.