May CINNUG – Software Development Careers

This week’s May CINNUG generated a ton of interest with 50 or so in attendance to hear Jim Holmes, Tim Apke, and Ed Summerfield take questions in a panel format on how to grow in and make decisions about a career in software development. Jim’s career has progressed in a multi-faceted way with stints in the military (if I understood his comments) and both large and small companies from a software development perspective. Tim has spent many years in corporate life before embarking on his own path of an independent contractor owning his own company. Ed has been all over the map with all sorts of different technologies currently settling into PHP at his third startup. When asked, “Why PHP?” Ed responded, “Because if this startup takes off I’ll be a millionaire.”

Mike Wood seeded the panel discussion with the question, “How do you keep up with change in the industry?” “Specializing generalist” seemed an apt response coupled with the ability to learn, possessing a broad range of skills, and not being afraid to say, “I don’t know.” Keeping up with trends, like TDD or what MS is up to, seemed to be important without necessarily knowing the implementation details. If details are necessary then on your own time develop small proof-of-concepts to prove out the implementations. In fact, challenge your own thinking by trying things you’ve never touched before because this can allow exposure to a broader range of solutions to problems that you can then apply to what you’re working on today. Practice learning.

Big company vs. independent? Big companies offer a lot of opportunity and the ability to experience career change without leaving the shelter of the same corporation. To that end a big company offers some security. Still, you’ll want to understand how the large company is doing financially in order to understand your viability there. As an independent you can take shelter in a big company by subcontracting through larger consulting firms. Big companies don’t always bring security, though. In fact, consulting could be considered more secure as you generate many more industry relationships and develop a much broader skill set that allows you to not become dependent on just one client. At a small company you’ll get the opportunity to wear many hats all at the same time.

The Vast Power of Certification

How about the value of certifications? At certain phases in a career certifications can be important. They are akin to a degree for an entry-level developer or a developer new to a platform, i.e. you may not have real-world experience, but you’ve been exposed to the technology. In consulting the paradigm changes a bit. Certifications may be expected by clients or required by partners, in the case of, say, Microsoft, in order to remain a partner.

Do you see a need to understand frameworks and scaffolds, and are employers expecting reduced cycle times due to leveraging exiting frameworks? Unless projects are very simple, scaffold or not, they will not take a week to complete.  Intimate knowledge of a particular framework isn’t necessary unless you’re being hired for that expertise.  Knowing at a high-level what a framework brings to the table may be expected.  Rails challenges all the development paradigms that we’ve become used to and how we build.  In the end the technology doesn’t matter.  Getting to market faster does matter.

How about diversifying in terms of adding BA, PM, or architecture skills to a toolbox?  In the end, the business doesn’t care.  Developers are commodities.  Diversity will enable seeing a problem from multiple perspectives.  The best developers are not technically brilliant.  Instead, they’ll look at the business problem, learn the problem domain, and allow the technology to become just an implementation detail.  There may be times you are hired for the technology, though, and in these cases learning the business gets in the way.  The business, in these cases, should know their business well enough to provide the business rules.

What sort of resources support software developers besides Google?  CINNUG, of course 🙂  Take advantage of the community and the network.  Get on IM and the telephone and ask questions.  The perception is that asking a question is akin to admitting defeat.  There is strength in asking questions.

What role have you liked the most?  Mentoring other developers and performing in the tech lead capacity.  Watching peoples’ eyes light up while they learn and reach that moment of ah-ha is so worth the effort.

How do you NOT get into management?  More mature or larger organizations stratify the career paths of technical people and provide upward mobility that allows someone to stay technical.  At the same time, you own your own career and cannot let an organization push you into management if that is not where you want to go.  It’s okay to make a decision and say, “I’m done here,” and then arrange a transition and an exit from the company on good terms.

How do you learn new technology?  Everyone learns in their own way.  That said, you can gain a lot of understanding from books.  The MS elearning content and labs provide good direction, although you can get sucked into the MS way of doing something the wrong way, that is, if you can get the actual example code to even compile 🙂

Ed, why PHP?  I joined a startup for the potential payoff.  It just happens to be in PHP.

Do you find teams scrapping and rebuilding projects?  Business value always exists in the current products or systems.  Re-writing requires a good business reason that generally can’t be found.  Take a look at Michael Feathers’ Working Effectively with Legacy Code.

Is there a market for specializing in maintaining old code?  All systems evolve and developers apply new learning to old systems.  You don’t want to get stuck in the position of being a nice person without a career path due to outdated skills.

How do you estimate when you haven’t seen the code?  Just do agile (laugh).  No, you have to have open and honest conversations.  An estimate by definition is wrong.  McConnell and Ambler wrote some good books on the topic.  Estimating is all about communication and learning to nurse clients through disappointment cycles.

What’s not going over to India?  Anything requiring customer contact to understand business processes.  The conversation becomes a value proposition about the skill you bring to the project.  You’re good at X part of this, so keep it here.  You need to invest in yourself and take personal responsibility for your skills.  Think “infinite Bolivians.”  India’s getting expensive as the industry workers realize their own value.  One Indian firm farmed a project they won out to Russia.  Developers are commodities.  In that model, if fast delivery is the priority then local development is the delivery model.  Slow, large projects lend themselves much better to outsourcing.

So how would a developer find new career opportunities?  CINNUG 🙂  No, really.  Get involved in the community and the community will make the opportunities available.  Tim used a head-hunter early in his career.  With experience and professional networking relationships head hunters aren’t necessary.  With all this, careers have been largely random.  You could focus proactively or just explore the opportunities as they make themselves available.

And that wrapped up the career discussion.



~ by Andy on May 23, 2008.

One Response to “May CINNUG – Software Development Careers”

  1. Excellent coverage of the meeting!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: