Journey to become a tech lead | "Software Entropy" and "Bolied Frogs"

Journey to become a tech lead | "Software Entropy" and "Bolied Frogs"

Notes from "The pragmatic programmer"

Software entropy.

When disorder increases in software, we call it "software rot" or "technical debt", with the implied notion that they'll pay it back someday.

Factors that can contribute to software rot: Psychology, or culture at work on a project.

A broken window:

Psychologists have done studies that show hopelessness can be contagious.

Don't live with broken windows!

Don't leave "broken windows" (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up. Perhaps you can comment out the offending code, display a "Not implemented" message, or substitute dummy data instead. Take some action to prevent further damage and to show that you're on top of the situation.

Neglect accelerates the rot faster than any other factor.

Don't let entropy win.

Being the first do not harm anyone.

One broken window (a badly design piece of code, a poor management decision that the team must live with for the duration of the project), is all it takes to start the decline. If you find yourself working on a project with quite a few broken windows, it's all too easy to slip into the mindset of "All the rest of this code is crap, I'll just follow suit".

If you find yourself on a project where the code is pristinely beautiful (cleanly written, well-designed, and elegant), you will likely take extra special care not to mess it up.

NO BROKEN WINDOWS!

Stone soup and boiled frogs.

Work out what you can reasonably ask for. Develop it well. Once you've got it, show people, and let them marvel. Then say "Of course, it would be better if we added...". Pretend it's not important. Sit back and wait for them to start asking you to add the functionality you originally wanted. People find it easier to join an ongoing success. Show them a glimpse of the future and you'll get them around.

Be a catalyst for change!

Most software starts too small to notice, and most project overruns happen a day at a time. It's often the accumulation of small things that breaks morale and teams.

We've never tried this. But "they" say that if you take a frog and drop it into boiling water, it will jump straight back out again. However, if you place the frog in a pan of cold water, and then gradually heat it, the frog won't notice the slow increase in temperature and will stay put until cooked. In the broken window theory, people lose the will to fight entropy because they perceive that no one else cares. The frog just doesn't notice the change.

Don't be like the fabled frog. Keep an eye on the big picture. Constantly review what's happening around you, not just what you are doing.

Get in the habit of really looking and noticing your surroundings. Then do the same for your project.