Design Philosophy

I’m lazy and selfish. I don’t want to spend time doing things I don’t like. My mom likes to tell people that when I was a teenager I’d spend 10 minutes arguing with her about the best way to do a 5 minute task. Now I do that professionally; I fight to make your job easier.

I started my career being the best in the office at Excel, then to my delight I discovered databases, and eventually graduated to building web applications. My intention was always to solve my own problems, to make my day easier. I made good tools, useful for my job, so inevitably the rest of the office would adopt it. My career path is a trail of systems I built and left behind for those who followed.

Most systems are designed for the people at the top of an organization, they don’t help the people at the bottom, the ones doing all the work, in fact they add to their list of tasks required each day. The resulting system is hated by everyone working in the trenches because it doesn’t help them, it adds to their already busy day. The organization tries to implement a system that produces major friction from the people expected to use it everyday.

This resistance means that middle management must take on the role of enforcer. They spend their day pressuring subordinates into using this new burden, but the moment that pressure disappears, because middle managers have their own jobs to do, the system is ignored en masse by the workers, which means the reports and data senior management was looking for in the first place are late, incomplete, and inaccurate. Designing organization wide systems from the top down is a recipe that produces an expensive thing no one likes that solves the original problem poorly.

We design software from the bottom of an organization upwards. The primary objective is to help people do the work. What managers at the top of an organization want to know must be a result of the activities being done by the people working at the bottom. If you help people do the day to day work, you inevitably help the organization as a whole.

The added benefit of this philosophy is that the people at the bottom of an organizational pyramid cost less than those on top. Why pay a premium to have administrative or management staff enter data when minimum wage employees can do it as part of their job? Providing quality tools to staff can simplify a task, and that makes their job easier and prevents errors, which in turn reduces the effort and time requirements of managers, bookkeepers, and owners. The entire organization benefits by helping workers do their everyday jobs. That’s where problem solving needs to begin, at the bottom.