I started a new adventure in January. I started teaching a class at IUPUI devoted to Systems Analysis and Design. Over the course of the last few months, I have sprinkled in Agile rants about self-organizing teams, iterative processes, and emergent design with the required object oriented design and UML topics. Working with members of the class has refreshed my memory on how difficult “managing” software development must seem to the uninitiated..
Why does it seem so difficult? Here is a brief list that were top of mind without thinking much about it:
- Most folks don’t understand what it takes to develop great software.
- Software developers have varying degrees of educational background, skills, and experience.
- Software developers usually aren’t experts in the functionality of the product.
- Software built for consumers is different than software built for a company’s own employees.
- Software built for large companies is different than software for small companies.
- There are usually at least three different software languages involved in a simple webpage.
- Software developers abhor testing.
- Software developers abhor meetings more than they hate testing their code.
- Software developers tend to be loners, wanting to block out the world by putting on their headphones and getting into a zone.
- Software developers only respect other software developers.
- Software developers love donuts. I do too, so this means I am going to battle my weight the rest of my life.
- Most managers of software development got the job because they were good developers.
Given all the reasons above, why do I continue to work with software development teams? There has to be easier jobs out there, right? I love the job. I get a rush watching a group of smart people create something. I would almost describe it as an adrenaline rush. Not the same adrenaline rush you get from jumping out of a perfectly good airplane with a parachute on your back. The type of rush when you can’t hardly wait to start at the beginning of each day. The adrenaline rush created when a group of disorganized, often warring, group of people start getting a huge amount of quality work done faster than they ever have before. The best part for me is it doesn’t seem like work, and it seems pretty easy once you get the hang of it.
This is the first in a series of posts that will outline how I “manage” development teams. These posts will ignore the traditional management rhetoric and focus on the some of the uniqueness of managing software development, as well as my approach. Take a look and give me some feedback.
Thanks for coming in today.