Billy the Kid may be considered the most infamous cowboy in history. He began his career in crime at the age of 15 by robbing a Chinese laundry. Dedicated to his craft, he developed amazing skills in robbing and shooting, as well as disappearing and eluding the law. He seemed unstoppable.
The Regulators were a group of approximately fifty men brought together to issue some warrants and confront the corruption of Lincoln. Cowboys combined for the greater good.
However, it was his time in the Lincoln County Regulators, that stitched him into the fabric of American history.
While not nearly as famous as Billy the Kid, I have had quite a career in technology. I first started (many years ago) as a coder. Back then, the "web” was a concept that I had to sell as the future technology.
Determined, I, (with my partner David), attacked projects independently within the solitude of our headphones.
We didn’t challenge each other’s choice in method or architecture. We never reviewed each other’s code – we just 'got it done.'
We weren’t alone in ‘being alone’. Software development used to be, largely, a solo activity — one “super-smart-cowboy” coder creating software in isolation – answering to no one. Back then, we knew what we knew, and if we had even a little design skill – we were heroes.
Like many evolutions, that doesn’t work anymore. The concept is not only antiquated, but it is inefficient and creates risks that successful project stake-holders should (and would) avoid like the plague.
"The equation for ego is: One over Knowledge." - Albert Einstein
It’s not a matter of ego. It’s not a matter of intelligence. It’s simply a matter of scope.
Think about doctors – my favorite analogy. A general practitioner is super smart and has seen a lot of ailments, and made countless diagnoses, but, when it’s life or death, a patient is treated by a team of specialists.
It may be difficult for the average layperson to appreciate the amount of skills required to produce a reliable, scalable, and sustainable software application or stack.
Perhaps sharing a list will help illustrate the breadth of skills required today. Let’s look and see what your ‘solo’ coder needs to know these days…
Starting with the basics of coding:
- Learn and master at least one IDE
- MVC frameworks
- Proficiency in multiple development languages
- Understanding various types of SQL and NoSQL
- APIs – design and use
- Maybe DBMS aptitude
- Knowledge of countless libraries, plug-ins, and extensions (even knowing they exist)
Wait, you want it to be sexy and cool? Get started with…
- Adobe Suite of tools
- Thorough understanding of UI/UX
- CSS Authoring
- Maybe SEO & SEM
Who cares if it has bugs, right? Wrong. Add these…
- Unit Testing Tools
- Regression Testing Plans
- Bug Tracking Tools
- Use Case Authoring and Monitoring
Oh, you actually want to release the software? Ok, check these too…
- Competency with Packaging and Deployments
- HTTP and SSL Protocols
- Server Installation and Configurations
- DNS Management
- Knowledge of the ins and outs of dealing with Apple and Google for code compliance
- (CI) Continuous Integration
Phew, we did it. Let’s relax. Nope. We have to plan for the next release. OK. OK.
Finally, add these to your "ONE” guy/gal’s list of skills…
- Source code repository management
- Library Reviews
- Framework Development Strategies
- Development Methodology Strategies
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.
This proliferation of development technologies has fostered a degree of specialization in the industry with no end in sight. Now, to develop software to standard, it takes a well-coordinated team of highly skilled, engineers, designers, and DBAs.
Working with a single consultant? Existing with a single IT resource? Maybe it’s time to hang up the cowboy hat and spurs. Remember, as soon as Billy the Kid left the Regulators, he was killed.