Technical Debt is not synonymous with Bad Engineering

Technical Debt is not synonymous with Bad Engineering

TL;DR I keep seeing the term "Technical Debt" used as some sort of justification for bad engineering: "we had to pick our battles", "it will be fixed when it's time", "it's what happens to all apps with time, live with that". This is not correct though: there's a very clear difference (of awareness & in-depth understanding of consequences) between these two & what is more interesting - there's also a huge gap between both consequences & price to pay if you want to fix them. Technical Debt (TD) seems to be…

Read More

Common misconceptions regarding code ownership

Common misconceptions regarding code ownership

TL;DR If you see that teams "reject" the (part of) codebase, working with it lowers their engagement level, they have neither energy nor will to tackle its challenges, it's very rarely the matter of codebase's size. Sober-minded engineers just do not want to have anything to do with crappy code, especially if they don't feel responsible for its "crappiness". What they need is not their nametags pinned to particular mounds of dung, but a viable, credible & feasible strategy to dispose it. Code ownership problem is almost as old as teaming in software engineering. At…

Read More

"Fly, you fools" - getting out of Survival Mode

"Fly, you fools" - getting out of Survival Mode

Do you recognize any of the following scenarios? Continuous influx of requirements put you into permanent death-march - you're always struggling against deadlines, there's never time for refactoring, unit testing, etc. Firefighting is your bread'n'butter - issues pop up on daily basis here & there, so there's never time to fix (or even locate) the root cause or go through thorough post mortem. You've reached the point when each quantum of work you do is burdened with enormous "tax" - hence huge efforts result in dripping value. There are just too many dependencies, architecture is too coupled, procedures…

Read More

Wiping the tech debt out with immutable code

Wiping the tech debt out with immutable code

Disclaimer: the idea of immutable code ain't mine - I've read/heard about it somewhere (can't recall precisely ;/) some time ago & it sticked with me. Code maintenance is already a huge problem & it won't get any better by itself. Software is everywhere - even mundane, basic everyday tools get "digital" & ... flawed. Two, three years ago I was encountering bugs (in software I use) occasionally (well, except of Windows itself ;>), now it's a daily bread'n'butter - I don't even have patience to report them. Bad news is that not only many new ones appear, but…

Read More