Tuesday, June 12, 2012

The ancient art of corner-cutting

Remember we discussed working under pressure? There was one point that went in both the negative and the positive lists. When we are in a hurry, we cut corners. I'd like to ponder more on why that can be, and would love to hear what you think about this.

That's how you do it!
(photo by York Minster
) 
Why is it bad? (do I need to state the obvious?) Because you could miss something important.

For example, leave an issue unsolved. It seems insignificant at the time, but then it comes back to bite you in the rear (like that Sports Almanac in “Back to the Future” — didn't that hurt for Marty?).

In programming this could happen in deployment, in maintenance, testing and bug-fixing, or during a subsequent logic change. Anytime, basically. It could also result in you leaving a gap that is insignificant to you, but will seem significant to the customer, or the product users, which will ultimately hurt your relationship and reputation. Not good.

What can be good, then? You could avoid spending tons of your time and energy on something that doesn't matter.

Hold for one second here, though. I think it is important to note that perfectionism in general can be a great trait. Think of the masters of the past, how they could work on their masterpieces for years, ironing out every tiniest detail, rejecting ideas and solutions that don't work.

And it is wonderful if you can afford to do it. I'd say — do it for a select project, if only to train yourself in patience and attention to detail. Take it from idea to perfection!

Yet it isn't always possible, when you have a requirement, you have someone who really needs it done, you have a date, a budget, and whatever other circumstances. We call those “real life”. In this case, it can be vital to be able to just ignore some smaller issues to get the task done.

Da Vinci — still an inspiration for many. I hope.
photo by Aburt
And the key? The key is to know the difference, cut those corners when needed, otherwise never-ever cut them. This is actually applicable to almost (all?) areas of our life.

A good phrase a friend shared with me, one that his father taught him, is this:
“Don't cut the corners when you see it. There are many more that you don't see which you'll cut anyway, by accident.”
Wise, don't you think? But also a tough call. Don't worry. Experience comes with mistakes. Just make sure to learn from them.

2 comments:

  1. To cut a corner, or not to cut a corner, that is the question! :) In my opinion, the question itself is flawed. The structure of the question provides you with a given reality with objects and possible actions. Corner. To cut. Not to cut. Choose one, along with possible conditions and corner cases.

    Wrong. There is no such thing as not cutting a corner. There is not such a thing as perfectness. Even if at one moment you think something you've done is perfect, the next moment you'll loose that feeling and will find an imperfectness. Especially in application-level software development. So all you ever do is cut a corner. But question is not even how much you cut each corner - some more, some less.

    Question is what you perceive as more important or less important. Not the corners themselves - say test coverage percentage in software development. But the goals of your work - say is it more important to protect customer from accidental security hole, or to provide him with configurability of security settings. When you decide which goal is more important, you write mostly those tests which move you to the chosen goal.

    My software development example is probably not very good. So I'll reiterate this in more general terms. Forget about Corners and Cutting. Think in terms of Goals and Actions leading to achieving them. In a sense this is a change from negative thinking of cutting to positive thinking of achieving.

    I like your friend's father's telling. And for me it means - never even think about cutting a corner, turn your head the way where there is no cutting to be done and go ahead keeping your head this way. :)

    ReplyDelete
    Replies
    1. You're back, great! :)

      Yes, I think more of known issues, and thought like “yeah, that probably should be fixed, but I am so busy / tired / indifferent right now that I'll just leave it”. That's why I also like that saying — if you see a problem it is best to do something about it, since there are still many others that you don't see.

      And I do like your thought of directing the “seeing” towards the select priority goal, consciously or sub-.

      Thanks for sharing!

      Delete