I read an article not too long ago that discussed how everyone is looking for the next Silver Bullet to fix all their problems. “If we just migrate all of our apps to the cloud, we’ll be able to scale as much as we want. Move to the cloud. Deploy to containers. Serverless for the win!” What we don’t talk about is craft. The craft that makes an application scale in the cloud. The craft that ensures your container environment can support your workload. The craft of being cost efficient. And the craft to know the limits of serverless technologies and when not to use them.
Some time ago I developed my own take on the “three laws of robotics” as related to software development. I know it’s been done before, but I like where mine ended up. I’ve had the chance to test these with both developers and product owners and they’ve held up. I’ve even had a product owner surprise me by quoting one of them. Pay close attention to how number three addressing the opening rant.
Three Laws of Development
- A developer may not actively jeopardize the long term health of a project, or through inaction, allow the enterprise to come to harm.
- A developer must adhere to the user stories created by the product owner, except where such stories would conflict with the First Law.
- A developer must further advance the craft of software development as long as such advancement does not conflict with the First or Second Laws.