<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Nimble Code: Are You Happy?</title>
  <subtitle type="html">Jacob Harris' Weblog</subtitle>
  <id>tag:nimblecode.com,2005:Typo</id>
  <generator version="4.0" uri="http://typo.leetsoft.com">Typo</generator>
  <link href="http://nimblecode.com/xml/atom10/article/536/feed.xml" rel="self" type="application/xml+atom"/>
  <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy" rel="alternate" type="text/html"/>
  <updated>2006-06-09T07:12:44-07:00</updated>
  <entry>
    <author>
      <name>Nick Smith</name>
    </author>
    <id>urn:uuid:258f6be0-5476-4d44-99b0-1a6407b2a2bc</id>
    <published>2006-06-09T07:12:44-07:00</published>
    <updated>2006-06-09T07:12:44-07:00</updated>
    <title>Comment on Are You Happy? by Nick Smith</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-649" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I think that those moments when we experience flow/happiness are liitle glimpses into our original and true nature.  Here&amp;#8217;s &lt;a href="http://www.life2point0.com/2006/06/the_little_book.html" rel="nofollow"&gt;an article&lt;/a&gt; that looks at this and how to recapture this in ourselves on a regular/permanent basis if it&amp;#8217;s of interest.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>http://del.icio.us/jnasser/djnasser@gmail.com</name>
    </author>
    <id>urn:uuid:eef15142-5aa6-4131-b6ee-a54dd6f66bb4</id>
    <published>2006-06-08T23:55:27-07:00</published>
    <updated>2006-06-08T23:55:27-07:00</updated>
    <title>Comment on Are You Happy? by http://del.icio.us/jnasser/djnasser@gmail.com</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-640" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I think the developers of &lt;span class="caps"&gt;GTA&lt;/span&gt; have long been capitalizing on the &amp;#8220;flow&amp;#8221; system to attract both pro and would-be gamers..&lt;/p&gt;


	&lt;p&gt;If you compare every bit of your article to a &lt;span class="caps"&gt;GTA&lt;/span&gt; episode, you will find the secret &lt;span class="caps"&gt;FLOW&lt;/span&gt;. My understanding is: &amp;#8220;easy (to use,operate,play you name it) but not so easy for pros, and difficult but not so difficult for beginners&amp;#8221; and that just about sums it up.&lt;/p&gt;


	&lt;p&gt;The same principle is found as one of the reasons of the skyrocketing popularity of flickr, skype, and gmail.&lt;/p&gt;


	&lt;p&gt;Very glad to have come across your article! What &lt;span class="caps"&gt;RSS&lt;/span&gt; readers do you use?&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Ben Reubenstein</name>
    </author>
    <id>urn:uuid:bf25eaf2-f9c2-49a0-b056-a5e146337b8d</id>
    <published>2006-06-07T14:13:32-07:00</published>
    <updated>2006-06-07T14:13:33-07:00</updated>
    <title>Comment on Are You Happy? by Ben Reubenstein</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-628" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Fear-Love axis eh?  Really enjoyed the post.  I myself have moved from the &lt;span class="caps"&gt;ASP&lt;/span&gt;/ASP.NET world to Rails and have found hapiness/productivity there.  When I do have the misfortune of going back to the MS world, I have less of a mental block when it comes to changing my old code, until I break it pretty good ;)&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Miklos</name>
    </author>
    <id>urn:uuid:7e98ba84-be1d-4d37-b857-e4a3676203b4</id>
    <published>2006-06-07T14:07:13-07:00</published>
    <updated>2006-06-07T14:07:13-07:00</updated>
    <title>Comment on Are You Happy? by Miklos</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-627" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Also, I don&amp;#8217;t know what Csikszentmihalyi wrote but just an average between frustrating and stressing is &lt;span class="caps"&gt;NOT&lt;/span&gt; a real flow.&lt;/p&gt;


	&lt;p&gt;A real flow only commences if you get so immersed in a task that you completely forget yourself.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Miklos</name>
    </author>
    <id>urn:uuid:bc64dfa7-877d-4e6d-a1ec-e655abb292d3</id>
    <published>2006-06-07T14:05:25-07:00</published>
    <updated>2006-06-07T14:05:26-07:00</updated>
    <title>Comment on Are You Happy? by Miklos</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-626" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Mihaly Csikszentmihalyi (actually, Csíkszentmihályi Mihály) is pronounced as &amp;#8220;Me high chick sent me high ee&amp;#8221; . This one of the rare Hungarian names that almost make up an English sentence.&lt;/p&gt;


	&lt;p&gt;If you behave bad, I&amp;#8217;ll make you pronouce Imre Trencsényi-Waldapfel :-DDD&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>RyanA</name>
    </author>
    <id>urn:uuid:7abb67fb-1708-4d68-b457-656f7f39e29f</id>
    <published>2006-06-04T01:05:46-07:00</published>
    <updated>2006-06-04T01:05:47-07:00</updated>
    <title>Comment on Are You Happy? by RyanA</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-592" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;The interesting correlation between Getting Things Done and the book Flow, is that very early on in &lt;span class="caps"&gt;GTD&lt;/span&gt;, David Allen asks you &amp;#8216;Can you get into your &amp;#8220;Productive State&amp;#8221; when required?&amp;#8217;. He&amp;#8217;s basically asking you if you can create this flow condition without much hassle. His method is designed to make this condition available to as a matter of course.&lt;/p&gt;


	&lt;p&gt;To most programmers I know, this flow condition is something that just sometimes &amp;#8216;happens&amp;#8217; (and usually after hours when they&amp;#8217;re working back late and not being distracted). These programmers stay back late just to experience this condition (I personally quit that workplace, overtime &amp;#8216;just to get work done&amp;#8217;, peh).&lt;/p&gt;


	&lt;p&gt;Flow is more of an analysis of the condition and what makes it up, whereas &lt;span class="caps"&gt;GTD&lt;/span&gt; seems to be more focused on the framework of giving yourself the room to get into the condition.&lt;/p&gt;


	&lt;p&gt;I agree there is a major correlation between Test Driven Development and the condition. This is the &amp;#8216;Clear Goals and Immediate Feedback&amp;#8217; characteristic they describe in Flow (and by the way, it&amp;#8217;s not just programmers who have this experience; part of their study indicated that people working in factories doing repetitive work in factories could experience flow, and they did, and were very happy and satisfied people).&lt;/p&gt;


	&lt;p&gt;I recommend reading both books at the same time, neither replaces the other.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Jason Watkins</name>
    </author>
    <id>urn:uuid:cf834a8c-dfda-444d-9741-68d41d7202a0</id>
    <published>2006-06-01T12:54:16-07:00</published>
    <updated>2006-06-01T12:54:16-07:00</updated>
    <title>Comment on Are You Happy? by Jason Watkins</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-565" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Flow has been on my amazon list for a while&amp;#8230; it just got bumped up ;)&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>atmos</name>
    </author>
    <id>urn:uuid:067926b0-690d-4b0f-96b2-7fee977d658e</id>
    <published>2006-06-01T10:59:56-07:00</published>
    <updated>2006-06-01T10:59:56-07:00</updated>
    <title>Comment on Are You Happy? by atmos</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-562" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Thank you harrisj, for brightening my day. :)&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Jacob Harris</name>
    </author>
    <id>urn:uuid:e0ba96bd-ab85-451c-bf3d-956109470d4f</id>
    <published>2006-06-01T10:32:52-07:00</published>
    <updated>2006-06-01T10:32:53-07:00</updated>
    <title>Comment on Are You Happy? by Jacob Harris</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-561" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Tom, I just recently turned 31, but I still act like a 26-year old, so that must be the source of the discrepancy ;)&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Tom Lockney</name>
    </author>
    <id>urn:uuid:5e26d84b-6cb2-40be-9903-2b801f3cbb0c</id>
    <published>2006-06-01T10:22:20-07:00</published>
    <updated>2006-06-01T10:22:20-07:00</updated>
    <title>Comment on Are You Happy? by Tom Lockney</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-560" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Nice essay, captures a lot of ideas I&amp;#8217;ve been thinking about. Minor point, though, Flow was actually published 15 years ago, not 10. Sorry to nitpick. ;~)&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Jacob Harris</name>
    </author>
    <id>urn:uuid:2db0e01d-6358-47c3-bca5-d8d302e9cec9</id>
    <published>2006-06-01T09:07:49-07:00</published>
    <updated>2006-06-01T09:07:50-07:00</updated>
    <title>Comment on Are You Happy? by Jacob Harris</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-557" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Ah, I love you guys. Thanks for the feedback. I&amp;#8217;m going to post some further reading that might be helpful today.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>rick</name>
    </author>
    <id>urn:uuid:34f4671d-0577-42a3-a273-63cbc766a404</id>
    <published>2006-06-01T08:06:37-07:00</published>
    <updated>2006-06-01T08:06:37-07:00</updated>
    <title>Comment on Are You Happy? by rick</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-554" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Bookmarked, blogged, pasted over &lt;span class="caps"&gt;IRC&lt;/span&gt;, and kickbanned for flooding.  Thanks, man, geeeez.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Jan Wikholm</name>
    </author>
    <id>urn:uuid:7e8f9f6d-5f61-4ebc-85b3-3721c6498af7</id>
    <published>2006-06-01T06:33:02-07:00</published>
    <updated>2006-06-01T06:33:32-07:00</updated>
    <title>Comment on Are You Happy? by Jan Wikholm</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-552" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Excellent posting!
Bookmarked and blogged and pasted over irc.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Coleman</name>
    </author>
    <id>urn:uuid:b4f8d8e6-741b-4616-8749-0cdd47988c2f</id>
    <published>2006-06-01T02:13:50-07:00</published>
    <updated>2006-06-01T02:13:50-07:00</updated>
    <title>Comment on Are You Happy? by Coleman</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-549" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I understand a lot of where you come from, but given my situation (&lt;strong&gt;cough&lt;/strong&gt; unix operator &lt;strong&gt;cough&lt;/strong&gt;) i am ecstatic being able to take a job developing using open-source languages on an open platform.&lt;/p&gt;


	&lt;p&gt;For me, being able to use the right tools is more important (at this time, not necessarily in the future) than &lt;strong&gt;what&lt;/strong&gt; i&amp;#8217;m coding.&lt;/p&gt;


	&lt;p&gt;I can only be so productive when you give me a flint rock and some leaves, but if you give me a half-gallon of napalm and a propane torch, i can work wonders :) I&amp;#8217;m also a load happier torching the entire forest than struggling to cook dinner&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Forgive me if some of my analogies don&amp;#8217;t make sense, i have been beering appropriately&amp;#8230; Feel free to demoralize where applicable.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Cote'</name>
    </author>
    <id>urn:uuid:f2f50c5a-8276-4b74-809c-3693aa0be7ff</id>
    <published>2006-05-31T19:35:25-07:00</published>
    <updated>2006-05-31T19:35:26-07:00</updated>
    <title>Comment on Are You Happy? by Cote'</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy#comment-540" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Yuh! You know I&amp;#8217;m all about happy coders being the true path to good software. As you said, &amp;#8220;creating happiness is what creates productivity.&amp;#8221;&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>Jacob Harris</name>
      <email>harrisj@nimblecode.com</email>
    </author>
    <id>urn:uuid:b63a1668-fd65-4133-b422-beeec8f0a510</id>
    <published>2006-05-31T15:25:00-07:00</published>
    <updated>2008-08-28T13:47:54-07:00</updated>
    <title>Are You Happy?</title>
    <link href="http://nimblecode.com/articles/2006/05/31/are-you-happy" rel="alternate" type="text/html"/>
    <category term="project-management" scheme="http://nimblecode.com/articles/category/536" label="Project Management"/>
    <category term="programming" scheme="http://nimblecode.com/articles/category/536" label="Programming"/>
    <category term="career" scheme="http://nimblecode.com/articles/category/536" label="Career"/>
    <category term="flow" scheme="http://nimblecode.com/articles/tag"/>
    <category term="programming" scheme="http://nimblecode.com/articles/tag"/>
    <category term="productivity" scheme="http://nimblecode.com/articles/tag"/>
    <content type="html">&lt;p&gt;I read a lot of feeds. A &lt;em&gt;lot&lt;/em&gt; of feeds. In my hobby trend-spotting (it&amp;#8217;s like a dorkier birdwatching), I read my feeds to monitor the zeitgeist to see what the real &lt;a href="http://www.macdevcenter.com/pub/a/mac/2002/05/14/oreilly_wwdc_keynote.html"&gt;Alpha Geeks&lt;/a&gt; are into. And the last year has had some interesting trends. For instance, dynamic languages like Python and Ruby are now firmly the new wave, although functional languages (Haskell, &lt;span class="caps"&gt;OCAML&lt;/span&gt;) and prototype languages (Io) seem to also be attracting interest. Web2.0 is a term bandied around casually, mocked, and even &lt;a href="http://radar.oreilly.com/archives/2006/05/web_20_service_mark_controvers.html"&gt;litigated over&lt;/a&gt; , but the concept seems to be here to stay. The most novel aspect I&amp;#8217;ve seen about Web2.0 is that the Web has become a source of real tools many developers are using to manage their lives; as a holder of Sun stock much diminished in value, I guess I can at least take comfort in the fact that their adage &amp;#8220;The network is the computer&amp;#8221; seems to finally be coming true. Sure, it&amp;#8217;s about 6 years later than predicted, but it&amp;#8217;s happening.&lt;/p&gt;


	&lt;p&gt;But most interesting to me is when the alpha geeks flock to ideas not directly related to coding frameworks, business plans or the like. For instance, six months ago it seemed like every serious hacker was devouring &lt;a href="http://www.davidco.com/"&gt;Getting Things Done&lt;/a&gt; and blogging about organizing their lives. And now the new obsession is &lt;a href="http://web.ionsys.com/~remedy/FLOW%20%20.htm"&gt;Flow&lt;/a&gt;. A conceptualiztion first coined in a book fifteen years ago, Flow is a term Mihaly Csiksczentmihalyi (&lt;em&gt;don&amp;#8217;t ask me to pronounce that&lt;/em&gt;) coined for that mental state where work is  stimulating but not frustrating, intention translates effortlessly into action, and happiness and productivity are intertwined. Csiksczentmihalyi teased out a description of Flow by looking at the mental states of people practicing Zen mindfulness or risking bodily harm in extreme sports like rock-climbing or surfing. But he could just as easily described the euphoric states of serious computer programming. Small wonder this  book has now been &amp;#8220;discovered&amp;#8221; by the alpha geeks, this fleeting feeling is what we find so addictive about programming in the first place.&lt;/p&gt;


	&lt;p&gt;&lt;span style="float: right; display: block; padding: 5px;;"&gt;&lt;img src="http://www.nimblecode.com/files/flow_channel.jpg" alt="" /&gt;&lt;/span&gt; The basic concept of Flow is that certain tasks make us happy to do them because they exist within a narrow channel between fear and boredom, because they encourage us to improve our skills but do not overwhelm us with too many challenges at once (&lt;em&gt;for Donnie Darko fans, the goal of flow is to find the middle of the fear-love axis&lt;/em&gt;). We developers are well-acquainted with that fear. It&amp;#8217;s the fear that keeps you from refactoring that legacy system because you&amp;#8217;re not sure what would break, the fear that keeps us using a clunky library because we can&amp;#8217;t test changes, the fear that makes deploying the new version to the server nail-biting because it&amp;#8217;s crammed full of changes that might take it down. In short, fear and specifically &lt;em&gt;fear of change&lt;/em&gt; is a constant state of mind for too many programmers, but it doesn&amp;#8217;t have to be. A state of happiness is possible if you can conquer the fear.&lt;/p&gt;


	&lt;p&gt;Flow is the reason why some frameworks like Ruby on Rails are so appealing to programmers; it straddles that line between utter boredom (coding a web site in &lt;span class="caps"&gt;PHP&lt;/span&gt; like always) and high anxiety (having to master a complicated system like Cocoon just to print out &amp;#8220;Hello World&amp;#8221;). The key is allowing people to add capabilities (like authentication, tagging) as their skills grow, but not require everything to be planned up front. It conquers the fear of change, but hacking change into smaller steps. What makes a framework &lt;em&gt;good&lt;/em&gt; (the same is true for languages, methodologies, testing, architectures) is how it destroys this anxiety.&lt;/p&gt;


	&lt;p&gt;For most of my career, the basic question asked of developers was &lt;strong&gt;are you productive?&lt;/strong&gt; Computer programmers are naturally obsessed with productivity. This is after all a field where good programmers can outperform bad coders by several orders of magnitude. and for years the industry has marketed to this by selling tools that promise leaps in productivity. The key to productivity was seen only through uses of higher-level toolsets/IDEs or APIs. This is a philosophy Cote has memorably termed &lt;a href="http://www.redmonk.com/cote/archives/2006/05/oracle_develope.html"&gt;Right-Click Coding&lt;/a&gt; because of all the right clicking and fiddling you have to do to get anywhere. This was seen as a development accelerator, because it enabled poor developers to do complicated things like enterprise integration and &lt;span class="caps"&gt;GUI&lt;/span&gt; development without needing to actually write code or learn details of how things work. But, I think that overall such tools have actually decreased developer productivity in several ways. Like a teacher teaching only to her worst students in class, the wizards and libraries stifle and frustrate more able programmers. And since they remove developers from using the underlying code, wizards only accelerate bloat and complexity in their underlying code bases.&lt;/p&gt;


	&lt;p&gt;Worse of all, the fear was still out there. Indeed, like air conditioner output makes city streets hotter, they&amp;#8217;ve made the situation worse. By piling away programming within massive APIs and single-purpose wizards, this approach has created a nightmare of complexity waiting to ambush more able developers. Now the question becomes &lt;strong&gt;are you compliant?&lt;/strong&gt; Being savvy to the latest standards, libraries, or buzzwords is touted as the key. But the difficulties people have had using &lt;span class="caps"&gt;SOAP&lt;/span&gt; is but one example of how compliance doesn&amp;#8217;t really help either.
Just mention &amp;#8220;interop&amp;#8221; to any &lt;span class="caps"&gt;CTO&lt;/span&gt; or high-level architect and you&amp;#8217;ll see what I mean. The complexity (and the fear) are still there, standards compliance just blames the programmer when things go wrong.&lt;/p&gt;


	&lt;p&gt;Instead, it&amp;#8217;s time for a new question: &lt;strong&gt;are you happy?&lt;/strong&gt; I think the growing interest in Flow and &lt;span class="caps"&gt;GTD&lt;/span&gt; and higher-level languages and test-driven development and agile project management reflects a sea change in attitude by the alpha geeks. Trying to find happiness through artificially increasing productivity is like putting the cart before the horse. The key point of Flow is not that productivity fights fear and creates happiness, but recognizing that creating happiness is what creates productivity. I think it&amp;#8217;s about time, if we want to avoid the descent into compromises and disillusionment common in computer science. So, get in touch with your feelings when deciding about that design, language, system, api, etc. and ask yourself &amp;#8220;am I happy doing this?&amp;#8221; I think your instincts are a better guide than you know. Trust them. And don&amp;#8217;t be afraid to be happy.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I added some links to the original book as well as discussion in a &lt;a href="http://www.nimblecode.com/articles/2006/06/01/short-takes-pdas-planet-argon-and-happiness"&gt;short take posting&lt;/a&gt;. Happy reading!&lt;/p&gt;</content>
  </entry>
</feed>
