Technical Debt - title image, showing "no debt"

Technical Debt: Where the analogy breaks down

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?

Read More
Wprdcloud of popular programming languages

How to learn the basics of any programming language quickly

As a commercial developer, you end up programming in a variety of languages.

I’ve used C, C++, Java, PHP, JavaScript, PLM/51, a ton of 8/16 bit assembler languages, Pascal, FORTRAN, BASIC.

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.

Read More
Storytelling around the campfire

Programming: It’s all storytelling

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?

Read More