An application I built at work has been rolled out to a group of pilot test users.
One of the first pieces of feedback that came back was:
“It’s pretty basic but it does what I need”
I have to admit, I took this as a massive compliment.
I designed the application to fix a massive problem that’s been dragging on for about 10 years. It’s been given a grade 1 audit severity report. People have tried and failed to fix it many times before (there was once a manual process – the instructions were 20 pages long). People have argued, meetings have been had. I’ve been in meetings with 30 or 40 people about these issues.
The application itself came out of a number of meetings I had with senior technologists, who had no idea how to fix the problem.
The fact that someone can look at the solution and say, “m’eh, it’s pretty basic” is really a sign of a good solution, I think.
Obviously, part of my plan was to simplify the process as much as possible (in fact, as a result of his feedback, someone gave me an idea which meant I could remove one of the drop down options from the form). It’s a real case of the Unix Philosophy in action:
Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
In actual fact, it even handles text streams as well!
I’m reminded again of the importance of simplicity in application development. In fact, the application replaces some scripts that I wrote. That turned out to be too intricate complex. They were longer, more involved, relied more on their input being in the right format. At the time I thought they were the neatest solution, but I was wrong. They weren’t simple enough.
How you achieve simplicity in a complex world where people complicate things all the time is a difficult question. All you can do is practice it at all times, and try to get more and more experienced at developing “simple” applications.