Lessons Learned in Software Development

Solid, timeless, and buzzword-free software development advice by Henrik Warne.

Henrik Warne's blog

Here is my list of heuristics and rules of thumb for software development that I have found useful over the years:

Programming bookshelf

Development

1. Start small, then extend. Whether creating a new system, or adding a feature to an existing system, I always start by making a very simple version with almost none of the required functionality. Then I extend the solution step by step, until it does what it is supposed to. I have never been able to plan everything out in detail from the beginning. Instead, I learn as I go along, and this newly discovered information gets used in the solution.

I like this quote from John Gall:  “A complex system that works is invariably found to have evolved from a simple system that worked.”

View original post 1,428 more words

How To Read Self-Help Books

Here are my rules for successfully™ reading self-help books. Like a self-help book, those rules work for me, but they may not work for you.

  1. I am OK if 99% of the book isn’t at all helpful. Since self-help books are written to improve the most basic and important areas of our lives – health, love, family, work, time, happiness – even if I get one habit or one sentence out of the book, it might be a worthy addition to my life.
  2. I automatically disregards any even semi-unrealistic-sounding claims in the book. Just disregard, skip, forget. For example: YOU WILL LEARN (in less than 30 minutes each):How to lose those last 5-10 pounds. Or […] reveals a step-by-step pathway for living with fairness, integrity, service, and human dignity. Or Learn the six ways to make people like you, the twelve ways to win people…
  3. I ask a lot of questions to myself: Why does this technique work? For what kind of people does it work? Would it work for me? Why would it work for me? How hard would it be to try it?

Self-help books are harmful only if we believe in what they say, not if we use them as a motivation to think deeper about how we operate and why we do the things we do.