I bought a bunch of books recently. One of them is 201 Principles of Software Development.
It's got... well... 201 principles for software development. Across a spectrum of things. Including management side. I haven't sat down and read them. It's not really a book I'll do that with. It's a reference, or pick one and think about it style of book for me.
While this isn't gonna be a power read, though I could get through it in a days - I'm gonna blog thoughts about each point. Or most points... some points. I don't know yet - haven't gone through them.
You'll have to get the book to see what's written there; I'll just ramble my thoughts.
Either way; I'm gonna try to write my thoughts about each principle.
Yes; this is totally a cheat to get a bunch of posts pre-written. DEAL WITH IT!!!
OK; onto Principle no. 1
Quality is #1
Let's start by saying that "Quality" is subjective. There's objectively "high quality" and "lower quality" once what defines quality is agreed on.
As long as we're all being honest about what quaility is - Quality is #1.
Though, not everyone agrees with this. Not all that do agree apply it regularly. Quality is critical... unless there's a time crunch... It's the most important... except when many other things are actually more important.
Quality is #1.
As software professionals; we need to "Just say no", as Eward Yourdon suggests, when asked to skimp on tests, leave low priority bugs, or cut corners.
Much of the industry is not professionals, and they will say "Yes". We still struggle to get developers writing tests... so to skip tests, that's probably gonna be easy to get man devs to do.
Quality is the most important factor in our software. I say 'in our software' as I'm talking about the code we produce. The qualtiy is how our customers interact is ALSO CRUCIALLY important; but that can be fixed faster with high quality internal than low quality internals can be fixed after a highly polished UI.
Poor quality systems are hard to work with. We all know this; but we don't all realize what aspects are low quality. We don't help each other learn high quality.
... We're not a profession yet; we're still struggling with fundamentals. I think there's enough of us promoting and sharing; and clearly have been since early 90s; that we're refining and better able to articulate what and how to software quality the most important thing.
These posts aren't going to be long - I'm usually not going to have read the source material (like I haven't for this Principle).
Why is quality the most important - because it is what allows us to best provide value to the customer.