View profile

VII: A Few Things I Believe About Building Software

Jared Norman
Jared Norman
For fun, I’ve just been recording various random thoughts that have come up over the last couple weeks as I’ve been working. I have the benefit of being involved in all kinds of different teams and projects at any given time. It’s interesting to see all the ways in which they face the same issues, again and again.

  • A backlog is not a plan.
  • Project management tools exist to create legibility for those who seek to control, rather than administer, development teams.
  • The smaller the increments you deliver and the more feedback you can get, the less time you need to spend planning.
  • Tickets, tasks, and user stories serve very different purposes.
  • Individuals must be able to change the systems they are part of or those systems will fail. (This is true of all systems, not just software development teams.)
  • The goal posts are always moving, even if you pretend they aren’t.
  • Fear of changing the system cripples teams.
  • Microservices don’t solve the problems that people experience with monoliths.
  • A bad test suite is worse than no test suite.
  • The first way you think of doing something is almost never the best.
  • “A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: a complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a simple system.”–Gall’s Law, John Gall
  • Composition over inheritance, like DRY, is a principle that leads you towards better designed software. Also like DRY, the idea behind it is more subtle than the name tends to imply, so its often misunderstood.
  • Being able to change the function of code without breaking the code can be fine: some functionality is incidental to the purpose of the code.
  • Fred Brooks was right.
Did you enjoy this issue? Yes No
Jared Norman
Jared Norman @jardonamron

computers bend to my will • founder of super good software • solidus core team • Rubyist • time abolitionist • not actually grumpy • he/him

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.