The evolution of thinking in software design

I know a few generations of developers. I find they tend toward different ways of thinking about software design, based on the languages and decomposition tools that were available at the time they formed their thinking. Their tendencies shift over time too, but often their imaginations are limited by whichever mode of thought they’re working in at the time. By design I mean the approach to solving a problem with software, including software architecture and low level design (not product, visual, or UX design). These are another universe around how we think about solving people’s problems with software, a topic for another set of posts. ...

May 10, 2011 · Bruce Alderson

On being awesome: just do it

Merlin Mann asks us why we’re waiting to be awesome, as he remembers Steve Job’s 2005 Stanford address. It’s a good question: why do we wait? There are all sorts of reasons, of course, but in the end my simple philosophy is: just fucking do it. Sometimes I have to say it to myself out loud, in the voice of the Dude, when things like absurd politics or chunky technical problems get in my way. “Just do it, man.” I need to be reminded to carry on. ...

January 25, 2011 · Bruce Alderson

Things I'm still learning, 2010 edition

2010 has come and gone. I’ve shipped a few projects, each a number of times. I’ve registered dozens of domain names and dropped a few of the older ones. I’ve started (but not finished) a dozen spare time projects. I’ve had hundreds of new ideas, and a few of them were even interesting. I’ve learned a lot, but not enough (it’s never enough). I’ve expanded my horizons and gotten stuck in ruts. I’ve gained weight and I’ve lost weight. ...

December 11, 2010 · Bruce Alderson

Exposing design

When you describe a design to a group of people, each person imagines something different. Depending on your story and the individuals, understanding may vary wildly. And if it differs enough, the result is chaotic–unpredictable and often negative. You need to fit how you show your ideas to different groups of people carefully, and notice when you your story isn’t hitting. For your closest team members you can wave your hands and scrawl ideas on a chalkboard. For people you work less frequently, you need more detail: proper drawings and clean wireframes. For non-technical clients you need even more, polished, functional prototypes and pretty drawings. ...

November 22, 2010 · Bruce Alderson

HOWTO: Directory recursion in Boost (and other tips)

Boost’s Filesystem library is an incredible resource: it abstracts paths, directories, and stat results. It simplifies coding shell problems in C++, it’s portable, and is maintained by a large community of contributors. The one downside of Boost is that some of its newer libraries are poorly documented.1 Until I have time to get involved in the Boost project, I’m going to post examples here. Traversing a directory tree This is the coolest feature I’ve found in boost::filesystem so far. It treats directory elements like iterators, and has a convenience iterator that flattens the problem of iterating through a directory tree recursively. The only examples I found for it were in their extensive test sources, (See convenience tests and operations tests for more examples.) which are a bit light on comments. ...

April 23, 2008 · Bruce Alderson