Wow, it’s an Agile world we’re living in isn’t it ?
Could you guess how many hits you will get by searching “Good Agile” in google? about 12 million!! “Being Agile”, “Agile principles”, “Agile stories”, “Agile practices”, “Good Agile, “Bad Agile” – millions of books and articles out there for us to reach. Buzzwords addicted as we are, we try it all. We pair programming, we work in short iterations, we drop features early and receive early feedbacks, we combine our developers with our QA guys to create some sort of “Feature Team”, we use cards, backlogs, big boards with colors, we Scrum, we XP. We practice. We succeed. We fail. We try. Still, a lot of people all over the world claim that Agile Development don’t actually work and those methods cause more damage than good. Reading Stevey’s post about Good Agile .vs. Bad Agile made me think about my definition for successful agile development.
Do you ever seen StarGate? if not, it’s really not too late to buy a DVD and catch up. In this great TV series, SG-1, the “main” team on StarGate, explore the galaxy through a series of Star-Gates, each one located on a different world, which allow them to move from one gate to another through some sort of wormholes that connect the gates together. Their job is to interact with other species, to establish alliances and to acquire new technologies. SG-1 is my definition for an agile team.
Let me introduce you to the team:
Jack. A confident soldier and the ultimate manager – he will be the first one to take to bullet, always believing in his teammates and letting them do their job with full confidence. Improvise is his nature. His team are his family. He’s the one that make the team glue together.
Sam. The genius scientist of the bunch. Do you need someone that will write your Java paper for the university in alien dialect? Do you need to make your car a flying ship from two gums and a rope? Rummer has it that she wrote Skype in pure assembly just for the fun in it and that WCF was actually planned by her(Juval Lowey disagree, though). Never says no (I am naughty…) and always do her job in a professional matter, thinking two(thousands) steps ahead(the 100000 alien she killed concur).
Daniel. “I can talk 10293740447303^2 languages in 2827349*3 different dialects” guy. If you have a beloved dead uncle whom you’re dying to talk with, page Daniel and he make it happen. Got a book from 1700BC in Chinese that you are really eager to read, he’ll translate it into English in an hour. A passionate guy that manage to calm the team under fire an to make some sense of Jack’s nonsense.
Teal’c. The muscles. Teal’c is an alien that joined the team after being slaved to the “gods”(high rank politician with some impressive gun power) in his home-world. He can kill a nation and shave simultaneously. Brave warrior that brings the confidence the team requires during hard times. If you are an AC Milan fan as I am, he is kind of Gatuso – you thank the lord that he’s on your team.
You know why SG-1 is the ultimate agile team? because of the people in it and the way the complete each other. See, you can learn the tactics, get the right tools but without the right men in the right position, you are as good as dead. From my experience, there are bunch of actions you can do to make your development process as agile as possible:
- Invest time in developing inner tools for your workers. You need tools to help you code(good IDE), to control your source, to set up a Continues Integration environment, to perform Daily Builds, automatic Unit Testing and Code Coverage, to run automatic UI and Sanity tests. You will want to easily create setup files and deploy them on various testing environments all in a single click. You want fast feedback that your product is stable each and every day.
- Challenge your people on daily basis. Pair them together on tasks that they can teach&learn from each other.
- Give your team members the “small” stuff they need (bigger space, another screen, better chair, more food, whatever!).
- Praise your workers. Glorify them. If they give their best – they deserve that.
- Treat each and every one differently.
- Hire the best people and the best people only. yes, it is worth it. one superstar developer is better than 5 mediocre ones. Don’t believe any book or any poor manager that claims otherwise. Hack, don’t trust my words, what do I know anyway? Instead, let’s all read 100 books of XP and Scrum, miss the deadlines, release crapy code and hate our jobs. We can always blame the management. Superstar developers will build tools that can replace 10 mediocre programmers, so let them do it and give them the stage they need. Superstar developers make your company a place worth working for. Best people bring the best with them. Now, isn’t it worth paying some extra for those guys? Don’t worry, you will get your $$$ back, I promise.
So agile, in my book, is the confidence you have in your teammates and the greatness of your people and your tools. Without the best people, don’t bother doing the rest. at least don’t expect for “agile” development. The best you’ll get will be Agile Development and that’s suck isn’t it?