Archive for April 23, 2015

Thursday, April 23, 2015

Lessons Learned in Software Development

Henrik Warne (via Drew Crawford):

When you develop, and some tests fail, or a feature stops working, it’s much easier to find the problem if you only changed one thing. In other words, use short iterations. Do one thing, make sure it works, repeat. This applies down to the level of commits. If you have to refactor the code before you add a new feature, commit the refactoring first, then (in a new commit) add the new feature.


When developing a new system, one of the first things I do is adding logging and error handling, because both are useful from the very beginning. For all systems that are bigger than a handful of lines of code, you need some way of knowing what happens in the program.


Every developer should spend a portion of their time handling trouble reports from customers and fixing bugs. It gives you a much better understanding of what the customers are trying to do, how the system is used, how easy or hard it is to troubleshoot and how well the system is designed.


Sometimes there are several problems present that you know about. The different bugs can interact with each other and cause strange things to happen. Instead of trying to work out what happens in those cases, fix all the know problems and then see what symptoms remain.

FogBugz Iteration Planner

Fog Creek (tweet):

Iteration Planner helps teams construct and plan iterations from existing cases. Create milestones for backlog, sprints, doing and done — or any other structure your team or project needs. Customize each project's structure with Iteration Planner to match your ideal Agile or Scrum work flow. Iteration Planner provides the flexibility and power to make project and sprint planning work with your team.

I don’t use any of that agile process jargon. To me, it’s a nifty new view that shows multiple milestones at once, each in a column, like Trello cards. You can drag and drop to move cases between milestones. You can also create new cases and search for old ones to drag in without reloading the page.


Thanks to TidBITS (tweet). 25 years and still going strong in terms of content and editing, still with a clean page design that’s easy to read.

Although Take Control was keeping TidBITS afloat as we started the second decade of the twenty-first century, it wasn’t pretty. I was torn between working on Take Control projects that actually paid and TidBITS articles that didn’t, and sponsorship revenues had been dropping for years. With Glenn’s help on the back end, we turned TidBITS from being entirely ad-funded to being supported primarily by voluntary contributions from our readers through the TidBITS membership program (see “Support TidBITS by Becoming a TidBITS Member,” 12 December 2011). That money has allowed us to hire Josh Centers as managing editor and pay our contributing editors and freelance writers. As successful as the TidBITS membership program has been, with nearly 2,900 people stepping up to keep TidBITS coming out every week, that’s still not even 15 percent of our email subscribers, much less the many tens of thousands of people who read in RSS or on the Web. If you’ve found our work valuable over the years, or if one of us has helped you personally with a problem, could you kick in $20 to help TidBITS keep going?

Thanks to the Edge Cases podcast. They’re stopping after 128 episodes, but since it wasn’t very topical I think the back catalog will age well. The episodes are a rare combination: short, dense, technical, ad-free, and occasionally hilarious.

Update (2015-04-26): Thanks to John Siracusa for 15 years of Mac OS X reviews.