Resume Driven Development
Podcast: Play in new window | Download (48.3MB) | Embed
Subscribe: Apple Podcasts | Spotify | Email | RSS | More
It’s common to move jobs every 3-5 years as a developer to avoid stagnating in your knowledge. Some developers with 10 years experience really only have 1 or 2 years repeated. When looking to switch jobs you want to find someplace where you can learn newer technology and grow as a developer. In order to get into those positions though you usually need some experience with that new technology. It can be very tempting to bring it into your current job to gain that experience before leaving.
What is considered Resume Driven Development will change with time. As things become older and more established they will not be the newest or most popular.
“In fact, RDD is so prevalent these days that people will actually choose Java over Perl because “Perl will not help my career”.” From an article written in 2007.
11:15 What is Resume Driven Development (RDD)
At it’s most basic Resume Driven Development is the practice of picking new or popular technologies for your work in order to make your resume look more impressive. This means using unfamiliar technology to solve a problem that could be solved with known technology. You may not even know much about the stack that you are trying to use and what the limitations are before you start doing it.
“It’s not about what works best but what is the coolest.”
Resume Driven Development can become very buzzword driven. Sometimes it’s the newest thing, other times it’s the most popular or well known. It becomes a popularity contest between technologies, languages, or frameworks.
Not all use of new or popular technology is resume driven. If you are using something new or popular because the way it solves the problem is better than your current technology then it would not be considered resume driven. Another case may be when upgrading applications and systems to newer technologies so they are maintainable. It may be hard to find developers for older technologies. You have to pay them more.
“You’re basically a small mammal after the dinosaurs died out.”
Resume Driven Development is part of a larger problem called Principal-Agent. Principal (manager) hires the Agent (developer) to build something. The Agent’s interests are building up desirable skills. The Principal’s interests are in creating a great product using the correct tools. These interests may not align toward mutual benefit. If the Principal allows the Agent free reign the Agent will prosper and the Principal will suffer.
16:00 The Resume Driven Developer’s Manifesto
“This is Will level parody”
We value specific technologies over working solutions. This would be building a SPA instead of a regular webpage for a blog. It’s a focus on the technology used to build the app rather than the functionality of the application itself.
We prefer hiring people with buzzwords over proven track records. This is the old keyword filtering of resumes. It can be dangerous listing out skills that you barely know.
“If your job title sounds like something from a Magic The Gathering card it makes you sound like your really cool but you actually have only one health point.”
We desire creative job titles over technical experience. You’ll see this a lot more in the start up community or the Silicon Valley giants. It’s less prevalent in older or larger organizations. They care less about sounding cool. They may have standards across the organization. These cool, creative titles don’t translate well to jobs outside of that organization.
“Neat is a way you should drink scotch, not have a job title”
We would rather react to trends over selecting more pragmatic options. A leaf in the winds of change rather than an oak enjoying the breeze. Stability isn’t “sexy” in technology but it’s something important to the people using the technology.
22:40 Coworkers Will Detest Resume Driven Development
Instead of learning on their own time developers are using company time and resources. This is a waste of resources. The technology may not be suited for the particular problem. It may require changing other areas just to suit the new technology.
“There has to be a value to the employer because otherwise you’re stealing.”
It forces other developers at the company to learn that particular technology. This means extra time spent learning that technology and not addressing actual development. It can require a company to hire a less desirable employee just because they know that technology.
Trends don’t always last and a company may be stuck with unmaintainable code and no way to replace it. If that new technology doesn’t take off or gets replaced with something else it’s hard to find developers to maintain it. It could also go the way of things like Silverlight and Flash.
28:25 It’s Not Just Developers
When hiring developers management may also engage in Resume Driven Development. There is a desire to hire a developer with same skillset as the one that left. The developer that left was an “expert” in the new technology. They then want to hire a person that is an expert in that technology. They may want to say they managed a team using a certain new technology. This happens instead of hiring a person to fill the need of the company.
“They’ll also do that with methodology.”
Sales people may tell customers a product was built in a particular technology. This may be due to a lack of technical understanding on the sales person. It could be they overheard developers talking about new technologies and misunderstood. In any case they may make promises that force developers to use something they wouldn’t normally use.
Customers, subject matter experts, and the business team may want to add a new technology. This can be difficult when a C-level asks you to use a technology that may not be correct. Customers may have heard about something and want it used in the product. Development managers should handle this but it may fall on you as a developer to explain why the newest technology may not be the best for what you are building.
38:25 Resume Driven Development Isn’t Always A Bad Thing
“In the end, if developers are not concerned with their own careers, it’s not likely they’ll be concered with your business.” ~ Paul E. Davis
Personal projects are the ideal place to work with new technologies to build your resume. If it fails you are not out of a job. You can choose how and when to apply the new technology. You’re also able to work at your own pace without the pressure of deadlines. This reduces stress when learning new technology. It also allows you to take the time you need to research or go through tutorials.
“You do this every once in a while on a complicated project.”
One off projects that are not mission critical is a good way to sneak some RDD in at work. These projects are ones that may not be part of your regular product. They can be things built for internal customers or your own development team. Tools to help the team are not necessary for production. These need to be projects that will require little to no maintenance. Once you are gone if it breaks it can go away. You won’t be throwing team members under the bus when leaving.
Another way to get some newer technology is if you can build something for a client using that technology. You may be able to find some side work or contract work building something in the technology you want to learn. This gives you the chance to build production code. To do this you’ll likely need to have already taken tutorials and know at least the basics.
Proof of concept development allows you to build something to show it’s possible. This is outside of your normal workload so it’s extra work to add to your resume. It may lead to your company adopting the new technology. This will turn RDD into industry driven development. You can then say you not only worked in that tech but brought it into the company. If you leave on good terms references will brag about that.
IOT Home Automation Using Raspberry Pi
This is an IOT based home automation system using raspberry pi. It automates home appliances and allows you to control them via any device with a browser. It combines a Raspberry Pi with a microcontroller based circuit that interacts with the IOT Gecko, a free online interface. Users send messages from the interface to the Raspberry Pi allowing them to turn appliances on and off. You could preheat your oven on the way home from work, or turn on the coffee pot while laying in bed.
Tricks of the Trade
Be careful of dumb behavior with positive results.