Software Teams vs. Superheroes: Why the Solo Developer is DeadFiled Under Human Factors
This is a reader guest post by Jason Gibb. Jason is a Systems Architect and Development Manager at Sundog, where he helps his team and clients implement agile methodologies for online software projects.
Comic book fans may recall a Marvel character named Multiple Man, who has the ability to create exact duplicates of himself at will. Or if you’re a DC fan, perhaps you’ve heard of Triplicate Girl? Most software developers have probably heard their manager say to them, “If only we could clone you…“ (If you haven’t heard this at least once in your career, you might want to step it up a little 😉
Software development used to be largely a solo activity — one cowboy coder working in isolation creating the next cool thing. A decade or more ago, all a cowboy needed was a text editor, a compiler, a debugger, knowledge of a single programming language and a few code libraries. Toss in some l33t design sk1lz and you had a complete, one-man software shop.
Now, in the face of modern software development methodologies, the concept of solo developers seems antiquated, almost laughable. Let’s see what our cowboy would have to know to build software these days:
- Mastery of an IDE
- DBMS installation and administration
- Various flavors of SQL
- Multiple compiled and scripting languages
- XML configuration files
- MVC frameworks
- O/R mapping tools
- Unit testing harnesses
- Source code repositories
- Bug tracking tools
- Continuous integration servers
- Software packaging and deployment
- Development methodologies
- Countless open source and commercial libraries, plug-ins, and extensions
Oh, you want to do Web development too? Well then don’t about forget these:
- Application server installation and configuration
- HTTP and SSL
- X/HTML (with multiple DTDs)
- CSS 1 and 2 (and eventually 3)
- Script.aculo.us, Gears, Dojo, YUI, etc.
- Flash, Flex, AIR (maybe Silverlight too?)
- SOAP and REST
- RSS and Atom
- Web Analytics
- SEO and SEM
- Usability and User Experience
With all this, it’s no wonder managers want to clone their developers. No one person could ever possibly hope to master all of these systems, technologies, and skills. The result? The era of the cowboy is ancient history.
Such a proliferation of development technologies has fostered an amazing degree of specialization in the industry today, and there is no end in sight. For today’s modern software, it takes a well-coordinated team of highly skilled, highly specialized engineers, designers, architects, database administrators, build managers, and Web professionals to create the next cool thing.
Until someone builds that cloning machine (or we see more comic book superheroes on Monster.com), there will only be one effective approach to software development: a team approach.