How to embrace the principles of Agile software development

13 Apr

Those who know me well know that I am obsessed with Alexander Hamilton. He’s the founding father you didn’t learn about in US History, mostly because he never became President. You probably know he was killed in a duel with Aaron Burr, you might even recognize him as the dude currently gracing your ten-dollar bill, but you probably don’t know that he was an orphan, an immigrant, and the guy who single-handedly created America’s financial system. (You should also thank him for the Constitution’s ratification – he wrote 51 of the 85 essays that make up the Federalist Papers.)

My obsession with Alexander Hamilton has taught me a number of things – about myself, about my work, and about how to simultaneously serve with humility and fight for what you believe in. More surprising, though, he’s also taught me something about embracing the principles of Agile software development.

 

“A well adjusted person is one who makes the same mistake twice without getting nervous.”

 

Think about that for a minute. It seems to run contrary to everything you were taught in school, doesn’t it? Making a mistake is bad enough, but making the same mistake twice, that’s unforgivable! We think of a mistake as the opposite of a success. We’re wrong.

Our software development delivery process at OST is based on the Agile Manifesto (www.agilemanifesto.org). The Agile Manifesto, and Agile software development in general exposes to us a core concept that iteration is a key to success. Responding to change wins out over following a plan every time.

In software development, this makes sense. Try something. If it doesn’t work, try something else. Do something. If it doesn’t match the user’s expectations, learn from it and do something else. Build something. If it doesn’t satisfy all of your needs, build more. This is how we do what we do. We start somewhere, and then we iterate. We test out ideas and approaches. We validate concepts and database constructs. We build, tear down, and build again. We iterate, iterate, iterate; each generation an improvement on the last.

It’s great! It’s a process that makes great solutions, and a framework that sets projects up to continually improve. At its core, continuous improvement requires that you have room to improve; embraces the notion that there is always opportunity to improve.

In life, though, that’s a hard concept to wrap our heads around. We don’t provide ourselves with a lot of grace to make mistakes. We tend not to look fondly on things that need improvement. And our lexicon is full of really awful words that we toss around at ourselves (and others) when things don’t go as well as we hoped. You failed. You blew it. You screwed up. You made a mess of things. You got it all wrong. You lost sight of the big picture. They’re terrible, soul-crushing words. Defeat. Collapse. Crash. Bomb. Die. They’re all words and phrases we employ to remind ourselves just how awful it is to fail.

Enough already!

Here’s what Alexander Hamilton taught me. It’s not awful to make a mistake. It’s essential. Let me say that again – it’s that important.

Failure is required for success.

It’s a foundational principle in practical Agile software development, and a foundational principle in life.

Fail. Make mistakes.

Then learn from them.

 

Andrew J. Powell Principal- Application Development

Andrew Powell serves the Application Development practice at OST , providing guidance, strategic support, and candy to more than fifty developers and consultants. Andrew has been a technology consultant for more than twenty years. In addition to consulting, Andrew is a frequent public speaker in technology circles, and loves to talk about the coming Robot Apocalypse and how application developers are positioned to defend the world against our future robot overlords. When not cowering in fear, Andrew makes his home in Grand Rapids, Michigan.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: