Skip to main content

Big Aardvark Up Front

I really got a kick out of reading the Project Aardvark spec. Like Joel, I think a big design up front, is a superior way to get a project completed. While I like lots of the extreme programming dogma, the concept of getting the whollistic design down pat before you start to write any code is a great way to clear out a whole bunch of distractions, that can prove really expensive when you do them on the fly (in code).

I think that it's mainly about being responsible. When you're managing a development project, you have three things you have to concern yourself with: Schedule, Features and Resources. That's all there is to manage. Investing your precious resources on actually building features that might not make the product, when you could spend a week planning to avoid it seems irresponsible to me. And the other thing is that once you have an actual, code complete feature, it's heart-breaking to cut it. Deleting a paragraph from a document isn't the kind of thing you come home about and cry into your beer over.

Of course, you can't get everything right first up - there are always bits you have to add as you go. With Context ICE, (my current project - coming soon!) we left out a bit of functionality from our design (template generation) which has ended up costing us weeks out of the plan. The team still has to be able to adapt and change in order to get things done on time - the BDUF doesn't solve all your problems.

But it does make for less surprises, which means planning is easier to get right.

Comments

Popular posts from this blog

Easter at Blackhead

Camping out on the headland, miles from anywhere. Big swell, off-shore winds, clear crisp nights and smoke from the wood fire. Sometimes it's so rewarding to get out from under the pressure of your life and just be a family of humans.

How to rename an XML Node in C#

This was driving me crazy - here's an easy cut and paste solution to not being able to use the DOM to rename a node for lazy developers like me: public static XmlNode RenameNode (XmlNode node, string namespaceURI,string qualifiedName) { if (node.NodeType == XmlNodeType.Element) { XmlElement oldElement = (XmlElement) node; XmlElement newElement = node.OwnerDocument.CreateElement(qualifiedName, namespaceURI); while (oldElement.HasAttributes) { newElement.SetAttributeNode(oldElement.RemoveAttributeNode(oldElement.Attributes[0])); } while (oldElement.HasChildNodes) { newElement.AppendChild(oldElement.FirstChild); } if (oldElement.ParentNode != null) { oldElement.ParentNode.ReplaceChild(newElement, oldElement); } return newElement; } else { return null; } ...

Democracy in Action...

I have to vote in the US Senate Election Tomorrow. Okay, I don't have to vote, but being an Australian American, voting is something we do. Australia has compulsory voting, which I am overwhelmingly supportive of. People often assume that the point of compulsory voting is to somehow educate people about politics - to force them to have an opinion. The reality has nothing to do with voters, and everything to do with ensuring good governance - By forcing politicians to care about every voter, rather than just the ones who can be bothered to go down to the poll both and vote, it means that politicians are consequently forced to address the needs of all the citizens in the country. Under a non compulsory voting system, it's mainly the wealthy and educated who vote. I was a little shocked to find out that part of the aim of the campaign advertisements that have been confusing me for the last month on TV is not to encourage voters to vote for one candidate or another, but to discou...