Main Software Engineering cornerstone: Quality

Recently Paul M. Jones published great article on the Software Engineering major conflict between Business and Software worlds: Product quality that perfectly matches Robert L.Glass book I’ve been recently reading on “Facts and Fallacies of Software Engineering“. If you still didn’t read it – strongly recommended!

Just few excerpts on the article:

They [engineers] have a reputation to maintain. Low quality for their kind of work is bad for reputation among their peers. (Note that their peers are not necessarily their employers.)

They understand they may be working on the same project later; higher quality means easier work later, although at the expense of (harder? more?) work now.

And on the other side (dark side?..):

The reputation of the payer is not dependent on how the work is done, only that the work is done, and in a way that can be presented to customers. Note that the customers are mostly not the programmer’s peers.

From hardware to software: key points

Absolutely great article by Seth Godin on hardware/software perspectives looking at the giants, like Apple. Few points need to be quoted:

  • Software can change faster than hardware, which means that in changing markets, bet on software.
  • It’s tempting to treat the user interface as a piece of fashion, some bling, a sort of jewelry. It’s not. It’s the way your user controls the tool you build. Change it when it stops working, not when you’re bored with it. Every time you change the interface, you better have a really good reason.
  • Hardware always gets cheaper. If you can’t win that race, don’t run it.
  • Getting users is far more expensive than keeping users, which means that investing in keeping users is the smartest way to maintain your position and then grow.
  • Software can create connection, and connection is the engine of our future economy.

Quotes: Technical Dept

Great article on software development sins from Ionel Cristian and great quote on technical dept:

Management fear risks. Juniors fear getting in intractable situations or just don’t know how to solve it better. Seniors with cozy positions fear embarrassment – it’s already cozy enough and the golden shackles are so shiny. Why risk looking like a fool and give management reasons for downgrade or lose that minuscule 1% salary upgrade.

But you, yes you, you can take it in your own hands. Fight for change or you’ll remain miserable and deal with “legacy” code forever. How to convince management to change and fix the damn debt? Depends on the situation, but it’s mostly a matter of ruthless politics. Make campaigns, invent reasons, gather support.