Skip to content

“Thinking in Systems” by Donella H. Meadows

I recently finished “Thinking in Systems” by Donella H. Meadows.  A primer on systems theory, this book is a very accessible introduction to these structures that influence so much of our ecology, economy and lives.

The book is only seven chapters and around 200 pages long, but covers a lot of ground.  First, she covers the basics of systems, including stocks (the thing that changes over time, like water in a bathtub or money in a bank account), flows (the movement of stocks, like a drain in a bathtub or wages deposited into a bank account) and various kinds of feedback loops (the things that act on a stock, like a thermostat monitoring bathtub temperature–a balancing loop, or interest in a bank account–a reinforcing loop).  Then she spends some time examining the some members of the systems ‘zoo’, by varying the type and number of stocks and feedback loops, and observing behaviors that arise.

She then dives a bit deeper into this behavior, and examines why systems are stable, and at the same time what kind of surprises arise from them.  She also looks at some of the archetypes of problematic systems, like the tragedy of the commons, escalation and addiction, and proposes some ways to avoid these archetypes or how to withdraw from them.  She starts off each archetype with an example drawn from the newspaper headlines when she was writing (in the 1990s).

The next chapter enumerates change points–where can you or I intervene to most effectively use our time to modify systesm we find abhorrent or unfair or wrong.  The author discusses twelve different areas to apply energy, ranging in effectiveness from changing numbers or parameters in the system, like the tax rates and the level of the minimum wage (minimal effectiveness), to transcending paradigms (maximal effectiveness).  She calls the list order “slithery” and acknowledges that this is a first draft and that points of leverage can increase or decrease in effectiveness depending on many factors.  But even having such a list is extremely useful as a starting point to think about change.

The last chapter is all about lessons from systems, of which my favorite is “Stay Humble–Stay a Learner” where she quotes a psychologist taking about the difficulty of becoming an error-embracer; we don’t just have to accept that we make mistakes, we have to admit them.

After a slow start, I really enjoyed this book.  The examples were accessible and grounded in the real world.  And she explained complicated ideas in ways that made me wonder why I hadn’t thought of it like that before–always the hallmark of a challenging and worthwhile book.  The author wrote “Limits To Growth” in the 1970s, so there are definitely progressive undertones throughout the book, but nothing over the top.

This book is a great way to get a gentle introduction into systems thinking, which is a fundamental way of understanding the world.  It’s not going to give you any easy answers, but will give you one more tool in your mental toolbox to understand the problems of the world.  I wish she had had a small section of exercises at the end, because they would have offered a deeper understanding of systems with some hands on work, but other than that, I have no quibbles.

How to get the GWT developer browser plugin

The Google Web Toolkit developer plugin, which integrates with a variety of browsers and lets you debug GWT code from within the Eclipse IDE, is astonishingly easy to get, but I haven’t found any great instructions, so I wrote this brief post.

You just need to start your IDE, start up any application in Development mode, and then visit the address the development mode server is running on in your browser (it will look something like this: “http://localhost:8080/host.html&gwt.codesvr=127.0.0.1:9997” if you are running off an external server–not sure what it looks like for folks using embedded jetty). It will send you to the ‘Missing Plugin’ page (or you can go there directly).

Some browsers are not supported (Safari on Windows is one I know of). The best list of supported browsers I was able to find was on the ‘Missing Plugin’ page; click the ‘plugins for other systems’ link.

BTW, this is different than the GWT plugin for Eclipse.

On becoming an employee

I made the choice a few months ago to become an full time employee.  After a number of years of contracting, this was not an easy choice.  However, the company for which I work, 8z Real Estate, was not a black box to me.  I had contracted for them off and on since 2005.  Still, this was a big step for me, and I just wanted to blog about some of my thoughts around it.

Key reasons I became an employee:

  • An opportunity to really focus on the technical side.  No more being worried about the next gig.  Becoming an employee makes it easier for an employer to offer more freedom (for example, to explore a different skill set) to an employee as well.
  • The chance to be part of a kickass team with good teammates and a great manager.
  • It is fun to be part of a growing company.  We have Beer Fridays and other social events.
  • Less stress about work in general, although, as Bob Lewis said, the only difference between an employee and a contractor is that the employee has the illusion of job security.
  • 8z is doing some pretty cool stuff with some pretty interesting data, and offers a valuable service to many many people.  I can’t tell you how many folks have told me they love COhomefinder, the flagship webapp that I work on.

What I miss about being a contractor:

  • Business development–it was fun and challenging to think about how I could help everyone I met, or how they could help me
  • Extreme flexibility of hours, including when and how much I worked.
  • Greenfield development is always nice.  I am constantly learning and so sometimes cringe when I see code I wrote years ago.
  • Being able to say ‘no’/fire a client.

What I don’t miss about being a contractor:

  • Waiting for invoices to roll in and/or reminding clients about outstanding invoices.
  • Thinking about the next gig before the current one is done.
  • Regular overcommitment–making hay while the sun shines is what I had to do, but I did over commit at times.  Work life balance is easier to achieve.
  • Paperwork.

I’ll be blogging about my work at 8z from time to time going forward, so I added an 8z category to this blog.

Useful Tools: StatsMix makes it easy to build a dashboard

I haven’t been to a BDNT lately, but still get their email announcements.  In August, all the 2010 TechStars folks presented, and were listed in the email.  I took a look at each company, and signed up when the company seemed to be doing something cool.  I always want to capture my preferred username, mooreds!

One that was very interesting to me was StatsMix; I signed up for their beta.  On Nov 1, I got invited to sign up.  Wahoo!

Statsmix lets users build custom dashboards.  I am developing an interest in web analytics (aside: if you are interested in this topic, I highly recommended Web Analytics 2.0, by Avinahsh Kaushik).  I’ve been playing with Piwik, an open source analytics toolkit, but Statsmix offers a slicker solution.

They have made it dead simple to create a custom dashboard for users.  They offer integration with, at this time, 29 services (twitter, mailchimp, youtube, Google Analytics, etc).  I could not find an up to date list of integration services outside of their webapplication!  The best I could find was this list from September.  While the integration interface is slick, the data integration is rudimentary.  For example, they will let you monitor the number of rows in a Google Spreadsheet, but nothing more (like rows in different columns, or the value in a particular cell–would be nice to see them integrate with Google Apps Scripting); you can track the number of likes on Facebook, but not the number of comments.

The real power of StatsMix comes from the ease of integration with your own custom stats.  They offer an API which is accessible via REST.  This means that you can push information from your database to a beautiful looking dashboard with shell scripts and a cron job.  Very cool!  It would be nice to see a plugin for Magento or other ecommerce vendors; I recently had a client, The Game Frame, that would have been a great fit for this type of dashboard, since it aggregates beyond what the ecommerce software provides.

Other cool features:

  • The whole UI is beautiful and farily intuitive.
  • The dashboard supports custom date ranges.
  • They will send you an email of stats every day, and apparently have some kind of limited version you can pass onto clients.  I didn’t play with the email feature at all, though it is extremely useful.

However, all is not perfect.  Some issues with StatsMix include:

  • As mentioned above, the integration with third party services leaves something to be desired.  What they offer is a nice start, but it’d be great to see them create some kind of marketplace where developers could build solutions.  For example, the twitter widget only tracks the number of followers.  From the TWitter API, it appears to be pretty easy to track the number of mentions, which could be a useful metric.
  • It wasn’t clear how to share a dashboard, though that may be an upcoming feature.
  • The terms of use are, as always, pretty punishing.
  • Once you develop a number of custom metrics, you are tied to their platform.  That wouldn’t be so bad, except…
  • They are planning to charge for the service, but give no insight into what to expect.  There is a tab called ‘Billing’ but all it says is: “During our beta, StatsMix is free to use. After the beta, you’ll be able to manage your billing preferences on this page.”  If I was considering using this as part of my business, I would want much more insight into possible costs before I committed much time to custom metric buildouts.  I’m fine with them making money, just want more insight into this key aspect of their web app.

All in all, it is well worth a try.  If you to, let me know by posting a comment.  I have 5 invites to give out.