Most times in software development, we like our processes.
It’s nice to know that the web app you’ve just set live actually works. So we have a few processes around writing tests, and hiring QAs to make sure that happens.
But sometimes, the best results are found when you do things a little more creatively.
A great question over on Quora (thanks Khalid!)
Why do large corporations (e.g Quora) decide to write their important applications in python when they know that as the complexity of their code base increases, figuring out the interacting components will be hard?
It’s a great question, and it’s taken me 30 years to figure it out.
I’m a big fan of Martin Fowler’s definition of technical debt, here.
The name refers to the myriad ‘‘do it quick, or do it right’ decisions made by engineers everyday. In software, we have a little more freedom than our friends in Aeronautics to actually ship something that works – but only just. We can always fix it later. With a 747 – not so much.
But just how well does this analogy fit typical software projects?
As a commercial developer, you end up programming in a variety of languages.
A common beginner question is ‘How do I learn so many languages?‘
And the answer is, of course: you don’t. You get good at picking up the basics as you go along.
Here is how I do it: I learn the three basics of any language.
Whilst programming is thought to be a purely technical field, it isn’t. People are far more important. And that means we have to get our ideas across to other people clearly, whether in code, in a sales brochure or in a video.
And the way this has always been done best is by telling stories.
But how does that relate to code?