Category Archives: Simplifying Software

“Why are manhole covers round?”

Manhole CoverThe famous Microsoft interview process (as described by William Poundstone in "How Would You Move Mount Fuji? Microsoft’s Cult of the Puzzle…") asks the candidate, among other things, to solve puzzles such as the quintessential question, “Why are manhole covers round?” It’s a question with multiple answers (see below), and the interviewer is looking for how the candidate approaches the question more than what answers are givens.

I view this question as a quintessential example of simplicity. Continue reading “Why are manhole covers round?”

Top 5 Ways to Keep a Software Development Project On Track

These tips originally appeared in an old version of this article.  I’m reprinting them here for the convenience of a friend who asked about it.  Basically, I maintain that good communication is the number one success factor to any project. Continue reading Top 5 Ways to Keep a Software Development Project On Track

Role-Based Security and Separation of Concerns

In a side conversation at the Orange County APLN meeting last week, we got to talking on the subject of role-based security, and I said that there should be a strict separation between permissions and roles, and between roles and users.  That is, that the programmers should code their security checks only against permissions (never directly against roles or users), and, going the other way, that users should only be assigned roles (never assigned permissions directly). Continue reading Role-Based Security and Separation of Concerns

“Clean Code” — Crafting On Principles

The inaugural post for blog that focuses on simplicity in software development has got to be one that mentions the book called “Clean Code: A Handbook of Agile Software Craftsmanship” by Robert Martin. As I originally mentioned on the ThotSpots blog, this is no ordinary book on writing better software. It’s not just another “Code Complete” or “The Pragmatic Programmer.” Continue reading “Clean Code” — Crafting On Principles