By Naomi Karten on
Wednesday, February 24, 2010 2:29 PM
When an organization with disgruntled customers takes major steps to improve service delivery, customers ought to be happy. Often, however, they continue to grumble and grouse because of what I’ve dubbed the perceptual lag. That is, the perception of an improvement often lags far behind the implementation of that improvement.
Read More »
|
By Kevlin Henney on
Monday, February 22, 2010 4:43 PM
When given on its own, the advice to keep things simple and usable seems almost too obvious to mention. The problem arises when such advice comes up against the advice to make things general, reusable, flexible, etc. At this point, simplicity, usability, and other tangible qualities often fall by the wayside in favor of more abstract goals. It is important to place the advice in context: when presented with an option that is clearly simple versus an option that is not as simple but may (or may not) be more general, or when weighing between a demonstrably usable design versus one that is not as usable but has the promise (or aspiration) to be reusable, favor the former over the latter.
Read More »
|
By Daniel Wellman on
2/15/2010 12:24 PM
Writing great software requires a lot of communication, and not just the client-to-server variety; person-to-person communication is crucial in a well-performing team. While it’s easy to focus exclusively on improving our ability to communicate through the code we write, it’s important to remember that building software is a communal experience: developers work with customers, testers, product owners, and other developers.
Here are some techniques and articles I use to reflect upon and improve my own communication skills.
Read More »
|
By Daniel Wellman on
2/1/2010 10:27 AM
In designing and developing software, it’s usually cheaper to prevent problems from ever occurring (by making a decision at design-time) rather than patching them as they happen (by a last-minute fix after deployment). It’s cheaper (and substantially less stressful) to design a system to handle thousands of concurrent users rather than trying to diagnose and fix a system that mysteriously breaks in production under heavy load. But detecting problems in real-time is a useful skill in many professions, including one as different as recording audio books.
Read More »
|