CVDD — A New Software Development Process

Curriculum Vitae Driven Development is a term a colleague of mine mentioned the other day — I loved it.

Chris Gregori
2 min readJun 9, 2016

It makes complete sense and any developer that’s been coding for a while or worked in the industry can immediately appreciate its meaning. After talking to some friends at other companies, I’ve realised this happens all over the place.

Programmers are always looking for ways to improve, and they love trying out new technology. Which is a great thing! You want to improve your craft, you want to learn, and you want to provide the best solution for a technical problem. The actual solution might not require you to learn a new stack, integrate a new type of CI pipeline and switch CDN providers though.

Many programmers are suspect of CVDD; their new system critical project is going to have a Swift backend (you read that correctly), use Scala.js to render Angular components (please don’t do this), and be hosted on someone’s Raspberry Pi underneath their desk.

Why is this a bad thing? Well aside from using untried, untested and conceptually ludicrous technology – Hi Scala.js 👋🏼– they’ll try and use a plethora of them in one project; a shit storm waiting to happen. Let’s not forget about the time spent up-skilling the team, the potential dangerous maintenance they’ll eventually have to deal with – do you want to be woken up at 4am being told SBT can’t execute your build on Heroku to create your Polymer product list components? – and the hours of pain trying to debug tech with little to no support.

I don’t want to be a hypocrite. I love trying out new technologies when I probably shouldn’t but I limit it and I try and make sure it is going to add real benefit, not just improve my LinkedIn profile. I’m not saying people using these libraries or stacks are just doing that, but it sure can seem that way sometimes, if the stories I hear from my friends at other companies are to be believed.

Use a new language or library or tool. Keep learning, push the boundaries of your current stack and definitely change it if it makes sense – just don’t do it all at once. As for me, I’m going to go write a new core service in Kotlin, because I am a hypocrite.

* DISCLAIMER: I’ve never used Scala.js myself, but reception from multiple developers I know has been awful after implementing it in a live system — it has since been removed and replaced with vanilla JS. I have never used it myself.

I like Scala.js from a technical and proof of concept stand point, but actually using in production when you could learn Javascript is painful
Joel Thornhill

--

--

Chris Gregori

Senior Software Engineer @Multiverse — ex @Skyscanner & @NETAPORTER