Wednesday, August 23, 2006

Software Development

Stardate 60082.3
Picked this up on the web:
Werner Vogels: Yep, the best way to completely automate operations is to have to developers be responsible for running the software they develop. It is painful at times, but also means considerable creativity gets applied to a very important aspect of the software stack. It also brings developers into direct contact with customers and a very effective feedback loop starts. There is no separate operations department at Amazon: you build it; you run it.

This statement has generated a few comments. Some say, yeah, that’s a great Idea, and others reply, no, the compartmental organization is the only way to go. Me, I can see both points of view. I’ve sometimes dreamed of being locked away from all distractions and just CODING. But there were situations where this just went overboard. One in particular was with a new client. They needed a feature, so a group was formed to write documentation on how it needed to be done. I was called to give time estimates. The feature was that when a database field was set to a value, they needed another field in the same table set to ‘Y’. Could this be done as part of the server application? I replied that yes, it could, and it would be a few hours to code and a day to test. They could have it in a couple of weeks as part of the normal development cycle. OR, a trigger could be put on the table to do the same thing. If they didn’t have the knowledge to do that, one of several database admins we had could write it and send it to them this afternoon. The group was a little shocked by the simple solution.

The organization into separate departments is ok, but not when the communication is always formal. Informal chats can sometimes reveal simple and elegant solutions.

End of Entry

No comments: