All posts by Peter Mangiafico

Organizational Entropy

Entropy is a measure of the energy in a system that is not available to do useful work, and the second law of thermodynamics states that the entropy in a closed system always increases.  Basically, in any system, the cruft builds up over time until it’s all you’ve got left.  This is a physics concept, but it can be easily applied to organizations, governments, companies, and just about any other collection of individuals (i.e. a “closed system”). Some examples:

  • Paying taxes requires accountants, lawyers, software applications, and a large number of government employees to maintain and enforce the rules.
  • Maintaining an existing software project can often take more programmers than building a new one. If you are a coder, how many times have you seen comments like this in a codebase: “// TODO: clean this up!”.
  • Companies have big binders filled with regulations and entire departments to manage and interpret them, while they work they do becomes less innovative over time.
  • Installing a game on your iPhone requires you to “read” 30 pages of terms and conditions first.

And so on.

So how does one battle the symptoms of organizational entropy?  The same way you battle any type of entropy: by increasing the amount of useful energy in a system through the removal of the junk .  You make a habit of regularly examining what you do and why you do it.  Don’t take anything for granted: “because that’s the way it’s done” is never a valid answer.  Question the motives and you may discover that the original reason for a rule, a regulation, or a piece of code no longer exists, and you need to change it, or even better, remove it.

Re-examine the tax code and clean it up every few years.  Take away the software and accountants and make members of Congress do their own taxes by hand.  Spend 20% of your coding time going back over modules and cleaning them up a piece at a time.  Put the HR managers or lawyers into a room, and have them read the handbook and defend each section’s existence.  Clean your garage and throw out stuff you haven’t used in the last year.  Not only does that reduce entropy, it even gives you extra space for that new bike.

My experience at the Google Summer of Code Mentor Summit

I attended the Google Summer of Code 2010 Mentor Summit this last weekend in Mountain View, and it was really fascinating and inspiring.  It was my first mentor summit, representing the Biodiversity Informatics Group of the Marine Biological Lab in Woods Hole, MA with my colleague Dima Mozzherin, and it was also my first ‘unconference’.  For those that haven’t been to an unconference, it is basically a meeting where the talks are not scheduled in advanced, but are instead determined by the attendees themselves.  The entire conference schedule is determined in one frenzied hour during the opening session, and it works remarkably well (at least for a meeting that had less than 300 people… a multi-thousand person conference might not work as well).  The mechanism for setting the schedule was decidedly low-tech: sharpies, sticky notes and dot stickers to vote for a session, along with a big board showing available rooms, so sessions can be load balanced.  To me this demonstrates the great thing about engineers: use the best tech for the job, even if it is paper and pen.  Anyway, the end result is a list of sessions that by definition attendees are interested in, all nicely balanced between rooms.

The quality of the meeting was really outstanding – it was like attending a top-notch IT conference, with a variety of expertise represented, ranging from software engineers, to software managers, and experts on IP and licensing.  The variety of sessions was equally wide and allowed us to explore a series of topics, including open-source social networking software, IPR issues, advanced trolling (!), and sessions on the Google Summer of Code program itself.  Some talks were obviously prepared in advanced, and some were more discussion like.  In each case, folks used the excellent Etherpad software to take real-time collaborative notes (often using a site called TypeWith.me that runs the open source code), which are all available on the conference wiki.

I held a session called “Liberate Your Data!” where we talked about ideas and strategies for bringing together data collected in diverse projects and formats into a single location (basically the goal of the Encyclopedia of Life).  We discussed strategies including creating plug-ins for Excel, using semantic markup technologies and the challenges of creating tools that work across domains, when the data ontologies and formats often vary widely between disciplines.

The meeting was held on the Google campus, which was quite nice.  I really like the idea of thinking of a workplace as a ‘campus’ instead of an office complex, since this promotes the notion of learning as well as doing.  Google fed us the whole weekend, and the food was pretty damn tasty.

One of the things I noted was that, like many IT and software get togethers, it was fairly male dominated.  I am not sure how to improve this situation.  The same imbalance also exists in various science fields, such as physics, while is quite equally balanced in others, such as biology.  It would be interesting to study what the root causes are.

Another thing I noted is the fact that engineers sometimes tend to be focused on elegant engineering or technical solutions to problems, while end-users are almost always focused on their experience with a system.  Most users don’t care if the code running their cell phone or computer is open source or closed source, they just want it to work all of the time and be easy to use.  For me, the iPhone is the prime example.  Not only is the OS not open-source, you can’t even (easily) install any application you want without it being approved by a single company.  It’s a very closed platform, and yet it is extremely popular (even many folks at the conference had one).  And the reason of course is that it is a great user experience.  I think it is important for any software developer to think about their end user and the user experience in general if the goal is to have a project that is widely used.

Anyway, the summit was not only a great way to meet new people, but was also a great way to learn about other open source projects, and Google should be commended for investing in programs such as this.  I’m looking forward to future years already.

The Internet and Your Brain – Part 2

Last time I talked about how the Internet may be changing our brains and affecting our ability to focus on a single thought process.  The constant pace of email, RSS, Twitter, Facebook and the ubiquitous link beckon us to keep moving along.  Bored with what you are reading or doing for even just a second?   There are always many more places you can visit with just the click of a mouse.

A related topic is how poor the brain actually is at multi-tasking.  Trying to watch TV while you read or write?  Turns out your brain does both worse.  All the “context switching” from one task to another requires a constant reloading of information from your long term memory into your limited short term memory.  Each time you change tasks, you essentially require a dump to disk and a reload.  Doing this over and over again many times an hour will quickly make you feel exhausted, tired, and stressed, yet this is just another day at work for the typical knowledge worker.  The result is not only worse performance and results, it also makes you feel worse.

The problem is not the technology.  I love the ability that operating systems have for multi-tasking, and have multiple windows open on my laptop (with a giant external monitor for even more real estate).  The problem is the way we abuse the technology.

Do we really need to check email every minute and be informed of new messages with a visual alert, a chime, and a badge in our taskbar? Does that increase our ability to get our job done?  Or does the constant interruption destroy our ability to think?  Is that new email a message from friend?  A dreaded response from a supervisor or colleague?  A new thing to add to your overloaded to-do list?  An excuse to procrastinate?  I’ll just have a look and see…all it takes is one little click.

There are of course some quick and easy things you can do to help alleviate the temptations, and most are pretty simple:

  • turn off new email notifications
  • set your email application to only check for new messages every 30 minutes or hour
  • shut down your email application (the horror!) and only turn it on when you are at a good stopping point in your writing or coding
  • turn on your email application for only one hour in the morning and one hour in the afternoon – unless your job specifically mandates fast responses (e.g. tech support, air traffic control, brain surgeon), or there is an immediate deadline (product launch, proposal due), the world will probably not end if you only respond to emails every day or so

Or you can enlist the help of some software to coax you along.  I’ve been playing with these tools:

  • Isolator – a nifty little (free) application for the Mac that blanks out or blurs every window on your computer except the front most.  It is a simple concept but is remarkably effective.
  • Full screen mode – writing and word processing software sometimes have full screen modes that hide everything except the text you are writing.  WriteRoom is the prime example, but Apple’s Pages app and many others now have something similar.
  • TidyRead, Safari Reader, Instapaper, etc. – various ways to read a web page without having all of the distracting sidebars, navigation, and so on. Safari 5 has a built in reader function.  All you have to do is click the “READER” button in your address bar.  As a bonus, it even loads multi-page articles into a single page all at once and removes all hyperlinks. Instapaper lets you clip articles for reading later in your browser, iPhone, iPad, etc, and those versions are free of clutter.  TidyRead is a Chrome and Firefox extension similar in concept to Safari 5 reader.  For a truly clutter free web experience it can be set to trigger automatically on each page load.
  • Pomodoro – promotes the concept of working on just one item for a fixed block of time (e.g. 25 minutes) before taking a short break and moving onto a new item (or back to the first one).  You don’t need software for this, but this free Mac app gives you a little clock in your menu bar and some reminders.
  • StayFocusd – a Chrome extension that lets you set a time limit on how long you can spend on distracting websites (I am looking at you Facebook) in any given day.  It is highly configurable (times and URLs).  A similar extension for Firefox is called LeechBlock.
  • Concentrate – a $29 Mac application that lets you specify a set of rules for a given task, such as quitting or launching applications, blocking websites and applications, executing AppleScripts, etc.  I don’t use it, but it looks interesting.
  • SelfControl – for the hardcore addict, this free Mac app blocks access to a designated list of websites for a set period of time, no questions asked.  Works across browsers and cannot be reset, even with a reboot.  You just have to wait for the time to be up.  Bonus: icon is a skull and crossbones.
  • Anti-social and Freedom – similar to SelfControl, but costs money and is available for both Windows and Mac.  Anti-social only blocks certain websites, while Freedom kills your Internet connection entirely.  A reboot will get you back, but the shame of rebooting just to check your email or Facebook will keep you focused.

By the way, I highly recommend the excellent book Refactor Your Wetware, which covers multi-tasking, focus, and cognitive function from the perspective of an engineer trying to optimize the processes.  It’s a great way to learn more about this topic, and find ways to improve your cognitive ability.