Ongoing (Self-) Evaluation
by Lidor Wyssocky

A couple of days ago I was thinking about a design problem. I was working on designing a fictional product for an upcoming design workshop I was creating. Since I usually try to create a notion of a real-world problem in my workshops, I had come up with the requirements for this fictional product, and only then approached the design activity. It was not long before I had a rough high-level sketch of the design, but knowing the requirements something felt wrong. I couldn’t say exactly what it was at this point, but I liked the design ideas I had come up with, so I believed I could "make it work"…

…A couple of hours later I found myself still struggling with my original design, and trying to forcibly adapt it to the requirements. Fortunately, I’d come to my senses on time, and reminded myself that the design I had to do should be good in the context of the problem.

It doesn’t matter if the design is built with great design patterns, beautiful structures, and elegant abstractions, if it didn’t fit smoothly with the requirements of the product. The design should make the developer’s life easier, and not tangle her in a web of theoretical ideas, which do not seem to fit to the problem we are trying to solve.

I remembered my intuitive "bad feeling" from a couple of hours ago, and wondered why I had decided to ditch this intuition it and stick with the design, which was proven to be wrong for that application. The answer was that I was biased, and already hooked on what I believed to be a beautiful design. I wanted to see that design work, because I felt it was original and innovative. Why let reality (not to mention my intuition) get in the way? I then realized that this is happening all the time around us. We are repeatedly forcing our ideas on reality, instead of evaluating them to see if they are good in the context they should be applied in.

In many cases, we have some sort of review process just for that purpose: gain a second opinion on our work. However, when done after already spending valuable time on developing a certain idea, we tend to be more defensive and less open-minded. We already have a sense of ownership on the work we have done, and therefore we are biased. We might be willing to do some minor modifications, but throwing away the "piece of art" we’ve created is unheard of. We rigorously defend our ideas and our work (even from ourselves).

The solution is simple (although it will require some effort at start): force yourself to constantly evaluate your work. When you work on some task (especially a creative task) you should set predefined times in which you should stop your work and evaluate it. Does it seem too complicated? Do you feel comfortable with it? Can you explain to yourself what is it you like about the solution you chose? Did you find yourself spending more time on workarounds for making it work than on adding real value? All these questions should lead you to the right conclusion.

Do this several times a day. Otherwise, you might get too attached to your idea. You don’t necessarily have to use any formal evaluation metric. In most cases, you can trust your intuition, but you have to be honest with yourself. If something feels wrong or "smells bad", don’t convince yourself that you can "make it work". Try to fix your idea (but not force it on reality). If you can’t fix it, try a completely different approach. Sometimes you will have to go back to analyzing the problem you have to solve. If you do this constantly, the cost of backtracking and trying a different approach is not high. If you work in an ongoing self-evaluation mindset, you don’t become biased on your ideas, so you can constantly improve them. You will also be more willing to accept input from your colleagues.

Share this post:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • BlinkList
  • Reddit
  • digg
  • NewsVine
  • blogmarks
  • Furl
  • Netvouz
  • Spurl
  • YahooMyWeb

Optimize Your Software Development

See how I can help you develop software more effectively

Leave a Reply