Effectiveness or Efficiency?

On one of the discussion groups that I’m a member of had a thread that started a discussion on what software development is really after, effectiveness or efficiency.  I’ve thought about this over the past couple of days and just decided to dump some thoughts on the matter.

Borrowing Peter Drucker’s definitions for the two words, effectiveness means “doing the right things” and efficiency means “doing things right”.  Note that both things are inherently mutually exclusive.  If I am driving to work in the wrong direction, I’m being efficient (by driving since by walking I would never get there) but not effective because I’ll never get to work. However, if I take the scenic route to work adding another hour to my commute, then I’m being effective (I will arrive at work) but probably not that efficient. Generally speaking, one always wants to be effective, but being efficient could be considered optional.  So if this is the case, which is more important in software development?

I grew up in Nigeria and spent a good portion of my childhood cutting grass and thick foliage with either a cutlass or machete. 
It was a highly effective way of cutting the grass as it got the job done. It also left me very hungry afterwards!   But I remember having to spend days cutting grass given the size of portions I had.  Interestingly enough, on the university campus that I grew up on, the landscaping team also used cutlasses to the cut the grass of all the fields on campus.  It would take days for them to complete, and areas like our football (soccer for my American friends) fields would be last on the list causing us to go weeks without playing at times.  For those who know me well, you definitely realize how tragic this must have been for me.

Then the university made an investment in riding movers and all of a sudden, it no longer took weeks to cut the grass, it was all done in a matter days.  The university leadership realized that even though the right thing was being done (effectiveness), it wasn’t being done in the right way (efficient) given the size of the campus. Introducing riding mowers allowed the grass to be cut quickly and consistently, improving the overall aesthetics and beauty of the campus.  It also opened up the doors for the landscaping team to do other things besides just cut grass! Most importantly, it allowed yours truly to play football whenever I wanted to because the fields were always in tip-top shape. The landscaping team was now both effective and efficient.

It’s easy to understand why being effective is important – we all want to do the right thing and I would suggest that a lot of our energies go towards effectiveness (especially when agile practices are employed).  It’s much easier to see ineffectiveness.  Your “customer” will tell you. Efficiency on the other hand can be a little more subtle – it’s harder to see, harder to challenge and harder to understand.  If things are working (effective), in my experience, efficiency takes a back seat.  The classic “if it ain’t broke why fix it ?” approach to things. Yet, efficiency allows us to scale our operations providing us with the opportunity to do other things including living more fulfilling lives!  We are inherently making our company more profitable because we are possibly getting more done in the same amount of time as before. Remember, time is money.  For example, manually  executing a hundreds of test cases may be very effective but is probably inefficient and so to improve efficiency, we decide to automate tests allowing testes to focus on exploratory scenarios or help with requirements gathering.  We don’t need cross-functional teams to be effective.  We introduce cross-functional teams because makes all the roles/functions needed to deliver solutions readily available to us.  It reduces communications challenges and allows us to respond to each other in minutes instead of days.  It improves the overall efficiency of the team.  The same is true for co-located teams.  That being said, it’s important to note that improving efficiency can also be an expensive undertaking. It’s important to a have “sense” or “feel” for what the gain in efficiency is really going to provide and what the objectives are.

Is it okay to be inefficient in order to be effective?  Sure.  I’m familiar with at least two cases (I imagine there are others) such as having multiple people on a team researching a critical production issue or not having members on the team with siloed responsibilities such as “application developer”, “database developer” or “UI developer”.    We’ve given up some efficiency in order to be effective by allowing everyone to do some UI development for example.  

We should understand that in figuring out the “unknown” as we often do in software development, we will not be as efficient as we could be if we knew exactly what we were doing.  (Think about all the hallway discussions that occur or the back and forth that we end up realizing was not necessary after the fact).  We are conducting a bunch of experiments, coming up with new recipes.  That being said, it’s not an excuse to accept inefficiency as the status quo.  Practices such as TDD, using user stories to gather requirements and just-in-time planning, using dynamic languages to name a few, provide efficient approaches to working with uncertainty and vagueness.

Let me suggest that both effectiveness and efficiency are equally important in software development (except when what is being developed and delivered is of little consequence – why are you working there?) and software teams should focus on continuous improvement in both areas.

Photo of my very own cutlass

Riding Mower photo from Jeff Harbert

Advertisements

About Ebenezer

culture hack. contrarian. change artiste. speaker. writer. silo-connector. entrepreneur. totally human. ff at your own risk. :-)
This entry was posted in Software Development and tagged , , , , , , . Bookmark the permalink.

10 Responses to Effectiveness or Efficiency?

  1. Hi Eb,

    Nice post. I would argue that the cutlass gang on compass weren’t that effective. If happy boys, able to play football when ever they wanted to was the success criteria, then for some of the time they were clearly ineffective 🙂

    I agree with your statement that effectiveness is compulsory whilst efficiency is optional. You then move away from this statement by quoting examples where being more effective requires an increase in efficiency.

    Is this two valued thinking raising its head again? Effectiveness is never absolute, it is always relative. For example if the goal is to make someone happy, the chances are that you can could make them even happier if you really thought about it 🙂

    So continuous improvement applies to effectiveness as much as it does to efficiency, and yes, we are lazy and we will often settle on mediocrity. People don’t tend to think of effectiveness as a continuum, because often your effectiveness is difficult to measure, so people tend to think of it in binary terms.

    Thinking about football and strikers. Who is the most effective? A striker that scores the most goals in the season, or the striker that scores perhaps not as many, but makes more assists?

    There is no right or wrong answer here. Different managers will take a different view, and football aficionados can while away hours discussing the relative merits of different strikers.

    I would argue that all that matters is continuously trying to become more effective, and improvements in efficiency is merely a by product in some circumstances.

    Which only leaves one question. How do you become more effective? For me the answer lies in deliberate practice:

    http://www.infoq.com/presentations/Deliberate-Practice

    Cheers,

    Paul.

    Like

  2. Ebenezer says:

    Hey Paul –

    No it’s not two valued thinking. I chose to focus on efficiency to show that pulling that lever can also impact effectiveness and that we should take into consideration also. We should care about HOW we are getting things. It was not to give one more credence over the other. This is why I started by saying that effectiveness is required and summarized by suggesting continuous improvement in both areas i.e. its a continuum for both things and we both know that.

    The striker who scores more goals is more effective. That’s what he’s paid to do, score goals. Now, he may not be the most efficient striker relative to the number of chances he gets but if he does happen to both efficient and effective, well he’s worth 50M! There is no way to be efficient as a striker and not effective when it comes down to simply scoring goals. We could probably debate this for days!

    I concur, getting better at anything requires intentionality. I’m sure not suprised with the amount of people who are not deliberate once things look ok.

    Thanks for your comments.

    Eb

    Like

  3. Hi Eb,

    I think I agree with you. Thanks for this. My original stance was borrowed from others. The CAS crowd see themselves as somewhat of a backlashed against the efficiency movement:

    http://en.wikipedia.org/wiki/Efficiency_Movement

    If you read the wikipedia article you can see there is a lot to backlash against 🙂

    But is this the true meaning of efficiency? Soley economy and the stopwatch? There is an aspect of efficiency that talks to skilfulness. The striker that converts more chances is indeed more skilful and more efficient!

    You’ve left me with a dilema. The Effectiveness, efficiency dichotomy does seem to be a false one, which robs me of one of my most favoured quotes 🙂

    Strange, it is still meaningful to me, perhaps because I have internalised the baises present in the CAS movement. To an audience without that baggage I can see how it would be meaningless.

    Qudos for understanding what I was getting at anyway. If you can think of a better way for me to express the same point I would appreciate it 🙂

    I asked for a learning opportunity and you delivered!

    Thanks,

    Paul.

    Like

  4. I posted this in response to your comment on my blog (http://jeffwhelpley.com/2011/07/27/highly-effective-developers/):

    I guess I have always considered efficiency as an integral part of effectiveness, but I do see your point about how when you make a developer do everything, they may be more effective overall, but they are somewhat inefficient because they are no longer an expert in one particular area. I guess the way to think about your concern is to take a step back and think about the overall productivity of the group as a whole. At the end of the day, whatever increases the overall productivity is the goal. At the end of the day, using that as a guideline, the specific way in which you build your team is going to be highly dependent on the skills and abilities of the individuals as well as the overall company culture. You bring up some good examples in your blog, but I think for what both of us are writing about, it comes down to a balance between effectiveness and efficiency that must be customized to the target environment.

    Like

    • Ebenezer says:

      Hi Jeff –

      Thanks for your response. I guess the point I was trying to make is that effectiveness and efficiency are be mutually exclusive and should be examined in that light. I think a lot of us assume inherent efficiency in effectiveness and that can be dangerous because we possibly fall short of empowering teams. To be clear, I think that teams with generalists are “generally” more efficient and effective but I will concur that in certain cases with generalists, efficiency may be sacrificed. As always, context is king.

      I do concur that that we are working within continuum’s here and want to improve in both areas as much as is possible.

      Like

  5. he98nw says:

    Hi, Everyone.
    I like Eb’s response to Jeff. It is the matter of context.
    I think that Paul is informative as always.
    Efficiency-movement seems to me about measuring two concepts: efficiency and effectiveness.
    That’s why it says: The quest for efficiency promised effective, dynamic management rewarded by growth.[3] (get from wiki link provided by Paul.)

    Here is my analogy to show the difference between the two terms.
    Let us suppose that one’s goal is from A to B. There are three alternatives.
    1. One can go straight since it is the shortest.
    2. One can zigzag to get there. It’s not as efficient as option 1.
    3. One can also get there by circling around (spiral), with a few time getting B closer and closer. It was the worst among the tree if you are measuring its efficiency.
    All three ways to get from A to B are effective. That is, an approach may not efficient can be effective. The reason that two are linked because if one can carry out a goal efficiently, one is capable to achieve goals, that is, to be effective. If one did not get to B, one is not effective. One’s efficiency is no longer relevant.

    If one wants to analyze the reasons of not being able to go straight but zigzag, or spiraling, that is a context sensitive discussion. It could be environmental or aptitude problems.

    Please feel free to criticize my use of the analogy.

    Thanks,
    Helen

    Like

    • Ebenezer says:

      Hi Helen –

      Thanks for your comments. I would differ a little bit and say that in product development it’s possible (maybe even desirable) to be efficient at the expense of being effective. Think about Lean Startups. They know they may not be delivering the right thing because they are trying to create a market, but they thrive on efficiency so as to respond to feedback as quickly as they can.

      Ultimately however, these are contextual conversations. I just wanted to point out that we need to be careful not to swing to the extremes. I find both effectiveness and efficiency to be distinct items that need to be improved on.

      Eb

      Like

      • he98nw says:

        Note that in my use of the analogy, I avoid the vagueness in the goal, from A to B with a line. If B is an area, instead of a point, there will be many lines. Each line can be corresponding to each approach for achieving the goal (A to B). One can only judge lines in terms of its efficiency, there are no conflicts between effectiveness and efficiency IMO. Again, a person is capable to be efficient largely because of his aptitude (being talented.) Back to our real subject, software product, it requires team work, complexity comes in. A discussion with contextual information is necessary.

        Like

      • he98nw says:

        My simple analogy concealed a truth in reality: if one cannot differentiate effectiveness among approaches to achieve a goal, one is likely misuse the power to squeeze efficiency out of oneself or others.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s