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. Perhap...
Just be aware that you reach a point of diminishing, or even negative, returns as the specifications get more and more detailed.
Documenting the reasons behind requirements will give your team invaluable information when making daily implementation decisions.
In some ways, programming is like painting. You start with a blank canvas and certain basic raw materials. You use a combination of science, art, and craft to determine what to do with them. You sketc...
In an article in the April 1999 CACM, Robert Glass summarizes research that seems to indicate that, while code inspection is effective, conducting reviews in meetings is not.
An investment in knowledge always pays the best interest.
An investment in knowledge always pays the best interest. • Benjamin Franklin
We who cut mere stones must always be envisioning cathedrals.
Great software today is often preferable to perfect software tomorrow.
You Can't Write Perfect Software. Did that hurt? It shouldn't. Accept it as an axiom of life. Embrace it. Celebrate it. Because perfect software doesn't exist. No one in the brief history of computing...
Tools amplify your talent. The better your tools, and the better you know how to use them, the more productive you can be.
The amount of surprise you feel when something goes wrong is directly proportional to the amount of trust and faith you have in the code being run.
Programmers are constantly in maintenance mode.
In addition, build dependencies may not be the same as test dependencies, and you may need separate hierarchies.
Have you noticed how some project teams are efficient, with everyone knowing what to do and contributing fully, while the members of other teams are constantly bickering and don't seem able to get out...
Every day, work to refine the skills you have and to add new tools to your repertoire.
There is a simple marketing trick that helps teams communicate as one: generate a brand. When you start a project, come up with a name for it, ideally something off-the-wall. (In the past, we've named...
Providing a comfortable transition through familiar metaphors is one way to help get buy-in.
Names are deeply meaningful to your brain, and misleading names add chaos to your code.
Kaizen is a Japanese term that captures the concept of continuously making many small improvements.