In a blog post I wrote a little over a month ago, I tried to make a plausible analogy of the introduction a new tech stack into a software team, to civilizations making first contact. In fact, my experiences at that point in time had been so dramatic that the term that immediately popped in my head was that of the Prime Directive, a higher order principle used in the fictional universe of Star Trek. This directive basically sums up to: «Don’t interfere with the normal and healthy development of alien life and culture. Such interference includes introducing superior knowledge, strength, or technology to a world whose society is incapable of handling such advantages wisely».
40 days after writing that blog post, I’m happy to say I was completely wrong about this analogy. Elixir is not «alien technology» – nor is my team ‘incapable of handing’ it, not at all! In fact, things have improved quite dramatically, and this blog post is about contemplating a) why I felt and reacted this way and b) how mixed-stack teams can work better together.
As I’m writing these lines, there are two new members to the Elixir team, the first of which joined about 3 weeks ago and delivered a tremendous psychological boost to the whole company by demo’ing his first (fully working) Elixir prototype of a project we’ve initially set aside for our MVP in no more than the end of his 2nd week (!). What makes it even more interesting is that he hasn’t touched any Elixir code before. The second member joined about a week ago and has already started writing code too.
With just these two new team additions, both counter-arguments posed when I made the case for Elixir in our company, magically became obsoleted:
– ‘How relevant will we be in 5 years if we’re taking the plunge and learning a new radically different language’: well, I still think that learning happens to be the key to being relevant and staying current in the IT industry, and not any particular language. You don’t have to fear the new/different, you just need to break out of your comfort zone and explore what’s out there. Try it. It might cling on you, or it might be repulsive. You don’t know unless you’ve tried.
– ‘Who’s going to support our Elixir projects in the long term?‘: Well, if you can get a senior engineer who has had no Elixir experience to write an MVP in 2 weeks, (and he’s not just forked an existing project off GitHub and changed a couple of lines!), then most probably you have a tech stack that’s supportable. If you can get people interested in a stack, and you can combine that interest with solid engineering practices, then the end result will almost always be supportable.