Survivor: SoftwareLand... Learn to be a name....not a number!
As a long-term veteran of the software biz I feel the pain of those who wish they could just code forever. Outsourcing and off-shoring unfortunately, are part of our brave new economy.
So here's what I think you need to do to not get thrown off the island of SoftwareLand:
(Thanks to the article by Howard Adamsky in Software Development Magazine for the 6 bullet points to which I'm adding my $0.02)
1. Do not plan to write code for your entire career.
- Or if you do... learn every new thing you can get your hands on and don't ever stop learning. Learn to learn more quickly than the next person. And get that you can't just code... read on McDuff...
2. Learn to communicate effectively.
- Yes Bunky, you've got to write intelligible prose that can be understood by those folks not blessed with a genetic understanding of how binary maps to hexadecimal!
3. Develop people skills.
- This means, in my humble opinion... be friendly and be honestly interested in other people's lives! This is also known as open ears are more valuable than an open mouth.
4. Move into the people part of the business.
- This doesn't mean leave the software part of the business. It means learn the part of the business which exposes your software to human beings and interact with them... they *are* the ones paying for what you build.
5. Learn how to sell.
- No, this doesn't mean you have to learn how to tell less than the truth. It means.... (see #2) Learn to communicate what is valuable about you. You might know in your bones that you're the best microcode designer that has ever lived but if you can't convince me that (a) I need what you offer and (b) the value you provide is worth what you charge.... you're a commodity, which is *NOT* what you want to be.
6. Consider consulting. (i.e. Learn how to provide value not just information)
- Consulting... what a grab-bag word! I've worked as a "consultant" for most of the past 20 years and have never had the same task twice, been a software gigolo, a writer, a system designer, a hiring manager, a hardware designer, an errand boy, and a salesman....and oh, by-the-way, a business owner. A successful consultant offers something of value that you can't find anywhere else. When the "dot com" era crashed, I was a Java expert. In 1997, that skill was very valuable, in 2001 I couldn't give it away. However, as I'd done many times before (just like when I started learning Java in 1995 while plying my trade as a VB/Windows expert), I had started in 2000 to investigate .Net and by early 2002 I was leading a team of .Net developers building WinForms, Web Services and ASP.net. All because I was always looking out for the next valuable skill that I didn't have.
The point is... to stay on the island... you must be an identifiable individual that provides more value than you cost not just a commodity code generator.
Note: As with everything else on this blog, these are my personal opinions and are not an official nor informal representation of my employer! Your mileage may vary... but it's worked for me.