Sponsors

Sign up!

Name:
Company:
Email:
Password:

Notes from Don’t Follow the Lemmings

Chad Fowler; November 28, 2006

By Mike Karlesky


Chad’s Disclaimers and Background

Chad states that he’s not really a software developer. Actually, he’s a jazz saxophonist, classical composer, or punk rock guitarist. The video gane Doom in his last semester of 6 years of classical music college classes totally distracted him. Video games are what introduced Chad to software development. A friend applied for a job on behalf of Chad at the university. Knowing little about comptuers, Chad would read through help files and experiment on the phone with callers to solve their problems. He moved from the help desk and progressed into systems programming. His career progressed, and Chad ended up working for a large coporation where he really got into software development process. During his time there he was introduced to offshoring and eventually pushed for setting up a separate software group in India for his employer. Essentially, he became the CEO of this sub-business group.

Chad got into Ruby because of his interest in programming languages (he generally learns a language a week). He admits to never doing anything important with Ruby – just being present at everything related to Ruby. He’s written 2 books, co-written several more, and edited still others. And, of course, he’s organized RubyConf and RailsConf.

Most Software Developers are Lemmings

Chad says there really isn’t much to worry about in losing jobs to India. The numbers, in fact, suggest that there’s going to be a glut of work in the coming years inside the US. Instead, his talk will be about how to do what he’s done – have an interesting career doing good work with smart people.

Most software developers are lemmings (this idea being inspired by the video game Lemmings). Most developers are looking down and following everyone else around them. When they hit a wall they bump into it and change directions rather than consider the wall or attempt to scale it. The first step to avoid being a lemming is to just look up.

Many interviews Chad conducted ended early whenever a developer replied to a question with “never given the opportunity to…” Good developers take opportunity to do things or learn things. Waiting on your employer to give you a particular opportunity or offer learning is being a lemming.

Career Development as Product Development

Research. Invest. Market. Execute. Iterate.

Chad thinks about crafting a career in terms of developing a product. We (you) are the product. Think in terms of a product – What are the features? How do you market the product? What are the upgrades?

An employee is an expense to the company. Roughly 2.5 times a salary is what an employee costs in compensation, benefits, and development. So, just to break even, a developer must generate that much value (money saved or revenue generated) just to break even. Most Americans never think about such thing. For them work is a place to go and live part of their lives. They don’t think about the investment and return involved in their employment.

Product development requires researching the market and determining the features. In order to buy the product, the market must know about the product. This is marketing. This is something that tends to be “yucky” to technical people and the geek culture in general.

Career development like product development requires: Research, Investment, Marketing, Execution, and Iterations.

Research

Will I get deep into a particular technology or market segment? Will I have broad knowledge that allows me to architect big systems?

Think about market saturation. Java, for instance, is a skill that is commodity driven because there are so many Java developers. Same is true for things like .Net and other technologies. India really developed the commodity software market. In India such a thought as commodity software developers is not an offensive idea; here in the United States, it is. This is not to say that entering a commodity market should be avoided. Apple, for instance, has proven that getting into a commodity market (MP3 players) is not impossible. It simply requires doing it differently and better than the rest of the market with a value mindset instead of a cost mindset.

Consider bleeding edge technologies. Commodity development such as offshoring doesn’t work in cutting edge work. High volume / low margin work doesn’t match niche technologies and skillsets like bleeding edge technologies. There is a career to be had if you can understand the bell curve of technologies. Master dying technologies and bleeding edge technologies and helping people transition from one to another is a valuable niche. Considering this type of issue means that you are ahead of the lemmings.

What industry do you want to be in? Do you understand how the industry works? Which is more valuable – ideas that are real features in software applications or ideas on how to automate the software build? What industry is going to take off?

Investment

Make time to learn something and keep learning. Chad instituted at a previous job times to learn new things during the work day. Methodology and project management is as important as the technologies and art of programming itself. Chad is a six sigma blackbelt (from previous job). The traditional six sigma approach is a poor fit for Agile techniques. However, he’s found that it’s very valuable in thinking through quality at a meta level in programming projects.

Look at learning the things that are counter even heretical to what you believe and favor. If you do software the Agile way, explore how to do Waterfall successfully. If you’re an OO expert work with functional languages like Haskel to stretch your brain. This will force you to grow and see the thing you’re doing from a better perspective. For Chad, the biggest improvement in his Java programming was working in Ruby.

Marketing

In the geek culture, there’s a badge of honor in being the geek recluse. In this culture, marketing yourself is a negative thing. However, as Chard presents it, I’m robbing someone of the opportunity to save or make money if I’m not promoting and marketing a truly good thing. If you develop something great, you’re morally obligated to communicate it to the world. It’s not hard to find opportunities to write things for people (follow through is another thing). Publishers and editors are eager for good material to present to the world.

Execution

It’s often times the bulldog that executes the best. He or she knows they are not the best but tries so hard that they stand above the best and smartest.

Doing something poorly but on time that makes the user happy is a good thing. Kenny G’s music is not musical accomplishment but far more people appreciate it than good and subtle jazz. Which is better? What most users like or what is the most elegant solution? Execution means producing something users find valuable.

Local businesses that survive in the face of globalization and commodization (Starbucks, Walmart, Lowe’s) do so because of personal service and real value. Strive to be like local businesses that make it. There’s a local business called MacTown in Louisville where Chad lives. An Apple Store recently opened in Louisville as well. Chad took his broken laptop to MacTown, but they took forever to fix it and wouldn’t let him know when it would be returned. It was ultimately the faceless, huge corporation of CompUSA who got the laptop working and did it in short order. MacTown failed to execute.

Iterate

If you’re in Agile think of your career in iterations. Bill Gates said that if you don’t have something new and interesting to put on your resume every 6 months, you’re in the wrong line of work. Ask questions. Am I in the right industry? Am I pursuing good technologies? What type of position might I be interested in shooting for?

Ready. Fire. Aim. Small investments in developing what I’m becoming are cheap. Trying things in career development in small steps is not disastrous and will feed into researching the product that is your career development.