CV Driven Development
What is CV Driven Development? I first heard it used by a colleague, self-deprecatingly, talking about their own career decisions. Googling “CV Driven Development” didn’t return a conclusive definition: the first page of search results contains ten links to ten different interpretations. The explanation I liked most was from Martin Jee’s blog:
CV Driven Development (CDD) is a software development process which prioritises design and development choices that will enhance the implementing programmer’s Curriculum Vitae over other potential solutions, regardless of how rational that choice is.
I found myself empathising with this definition, and started thinking more about it from a developer’s perspective. The rest of this post is an exploration into my thought process and (spoiler alert) doesn’t offer any answers to the numerous questions I pose, just a lot of opinions.
Note: I work in the UK and use the word CV (Curriculum Vitae) where other nationalities may use resume. A CV is the document I’d use to apply for developer jobs and is around two to three pages long, containing relevant work and education experience for the job I’m applying for.
What tech would enhance a developer’s CV?
As a developer, what development choice would enhance your CV? For example, what tech would you choose for the frontend of a website, only considering what would look good on your CV? Do you choose the JavaScript framework that appears in the most job-listings in your city, or offers the highest average salary, or is mentioned in the job spec of that company you’ve always wanted to work for?
When you started to learn programming, how did you choose which language to start with? If you weren’t dictated by a curriculum, were your choices influenced by potential job prospects and salaries in your area? When you’re a complete beginner in coding, it can be difficult to find a metric to help you decide whether to learn SQL or C++, when you’ve never worked with a database or built an API. Numbers of job adverts and prospective salaries are a tangible criterion that people can use.
Why do certain tech stacks appear more attractive on a CV than others? Are there fewer jobs with language X or library Y? Is it mentioned all over tech Twitter? Maybe you want to keep your skills fresh and up-to-date, and you feel that the tech you’ve worked with for the past decade has fallen out of fashion.
The implication of this definition is that the project suffers in the long run and probably wastes money, because the tech stack is unsuitable. However, as I see it, the developers working on the project are happy because they get to learn the latest shiny toy of their choice. If the technology is really unsuitable, it can give the next crop of employees a chance to refactor the project with their own tech stack, letting the circle of life of software development continue!
Choosing technologies for commercial or even hobby projects is a difficult decision, and can understandably be motivated by what looks good on a developer’s CV. A CV is a vital part of obtaining a well-paid, fulfilling job. It’s savvy to invest in your future by learning marketable skills, particularly if you can get paid to do so.
What do you think? How much do you think about your CV when choosing a new framework or language to learn?