Oct 21

nikePlusAppliance.jpgI’ve been meaning to buy an iPod nano for awhile so I could use the Nike + running appliance to track my runs. We received Nano’s for attending the Office 2.0 conference last week in SF so I finally picked up the Nike device this week and just tried it for the first time today. All I can say is that this is what Web 2.0 is truly about. It has nothing to do with AJAX and rounded corners- it’s simple, invisible technology that bridges your real life with online and quietly improves your quality of life, gives you useful information to enhance your health, connects you with health-conscious strangers, motivates you to stay in shape and allows you to talk smack with friends on the other side of the globe all in the pursuit of better fitness.

This little gadget is about the size and thickness of three stacked quarters and sells for $30 at the Apple store. They try to sell you the special Nike running shoes that have a divot in the sole where the appliance clips in but realistically, it works anywhere in the shoe. I just took my old running shoes, removed a few stitches from the rubber logo and sewed it into the tongue. This thing is amazing- once you calibrate it, it tracks your runs (both time and distance), can calculate calories burned and talks to you during your workout to tell you where you’re at. You can designate your power song (think your own personal Rocky theme song) and if you start slacking it automatically kicks in to motivate you to exert yourself more.

Calibration of it was slightly annoying. I’ve never run on a treadmill before but I figured that would be the best way to gauge a mile and calibrate the device. Realistically the best way to calibrate it is to either find a known street distance or better yet, a racetrack. Once it knows your stride though, it tells you exactly how far you run. The NikePlus.com interface is slick- this is a great example of a rich interface (looks like they used Flex as the technology). The community they’re building with this service has to be extremely valuable to both companies as well- health-conscious people that aren’t just self-proclaimed but demonstrably so.

Possibly the coolest feature is the seamless integration via iTunes with the NikePlus.com site- every time you sync your Nano, it will send the stats from your latest workouts to your account on Nike+ so you have one place where you can login and track your progress. You can also challenge up to fifty friends anywhere in the world and compare their progress with your own (smack-talking is always the best motivator for improvement). The Nike / Apple partnership is genius on so many levels- Apple has a new product, Nike sells more of their shoes and sports apparel that integrates, Apple sells entire workout playlists of celebrity athlete’s’ favorite workout songs complete with voiceovers to inspire the runner, both get access to a valuable community.

NikePlusWebInterface.gif

If you have friends with Nano’s that run, this is an affordable Christmas/Kwanzaa/Hanukkah gift they will never forget.

Tagged with:
Oct 12

office20Conference.gifThe conference here in San Francisco is winding down and I wanted to share a random collection of thoughts in no particular order.

The Good

As always it’s the hallway conversations at these events that are by far the most valuable bits. There were a good number of companies here (~20?) and I was able to meet the principles of just about all of them and talk with them about what challenges they have in delivering their products. There seems to be an energy in the air perhaps due to the YouTube acquisition earlier this week that indicates tech investments are once again where it’s at. So this is an exciting time to be in this field. There were a few demos that caught our interest for apps like SystemOne, Vyew and SmartSheets that look really interesting. And meeting the guys who built WordPress and Tech Dirt was very cool.

The Not-so-good

I hated the term “Web 2.0” but I realize I hate the term “Office 2.0” even more. If I’d have charged the conference sponsors a nickel for each mention of this term throughout the panels, I’d have recouped my entrance fee and have our second round of funding for JumpBox. Far too many of the demos given here showed off these me-too MS-copycat products ported to the web with a bunch of slick AJAX features. While this might have turned me on a couple years ago for the implementation details of how they pulled it off technically, it now feels like “features for features’ sake” and smells “bubblish” in this sort of silly exuberance over things that really aren’t that cool. To me the real productivity gains to be made in an office come from not having to think about software at all, getting rid of the lame problems that plague IT departments and, if done right, getting rid of the IT department itself. Gains will be made as we learn to unearth the underground insight of the organization that locked away in the form of unapplied knowledge. I’m way more excited about apps like InklingMarkets and the proposition of bringing the power of internal prediction markets to the office than I am about authoring a word doc within the browser. I just feel like most of the companies hawking their wares here are missing the boat.

That being said, I don’t discount the value of better tools for collaboration. I just think that if I were running a larger company and had $10k to invest towards the goal of improving our productivity, I would spend zero on software apps and instead train all my employees on how to use David Allens GTD program, give them an incentive bonus for whoever comes up with the most innovative/effective improvement and then turn them all loose with an in-house instance of Trac/SVN to use in collaborating. The apps that did catch my eye here:

  • Vyew – a slick way to do a shared whiteboard synchronously as well as asynchronously
  • Koral – painless knowledge management
  • SystemOne – an intelligent self-building wiki
  • SmartSheets – a better method for excel/email-based project management
  • oDesk – be Big Brother for your outsourced development efforts

Beyond those, the other apps I looked at really appeared to be just minor enhancements to existing ideas with little innovation. The new Tech Insight Commnity thing is interesting- essentially a way to disrupt expensive research from analysts like Forresters, Gartner’s and Cahner’s InStat by drawing upon cheap, qualified labor of bloggers around the world.

Eighty percent of the demos were sub-par unfortunately. I’m thinking there really might be a market for pitching yourself as a hired gun who can effectively demo a company’s product and grab the audience, because apparently most CEO’s are inherently bad at it. Most of the speakers were so immersed in the features of their own product, they dove into this highly-technical tutorial of the guts of how their products work rather than establishing that emotional connection with the audience members for why they should even be listening in the first place. That coupled with some connectivity issues due to sharing wireless with the conference attendees and a rare server outage for google mail (which everyone seemed to be using as the example email service) made some of the demos really painful.

To summarize though- some great people in attendance, a bit of a confused message (please please please let’s drop the 2.0 suffix on terms), good energy and vibe in general. Let’s just remember that the best technology are the ones we never notice (the refrigerators, the air conditioners, the airbags, the backup generators). Office 2.0 should be about simplifying not complicating the role of tech in the workplace.

Sep 11

powerNegotiating_cover.jpg“Everything you will ever want is presently owned or controlled by someone else.” Think about it. I just did a second pass through Roger Dawson’s audio series called The Secrets of Power Negotiating and took notes this time in mind map format and made them available for download. This series is an excellent overview of how to improve your negotiation skills. It begins by pointing out that no matter what your job is, you are negotiating for things every day. Roger teaches the twenty tactics, or “gambits” involved in effective negotiations and also how to adapt to the different personality styles and how the different types of power influence us. If techniques like The Fait Accompli and Flinching seem too shady and “used-car-salesman” for you to use yourself, you should at least be aware of their presence. Being familiar with the mechanics of negotiations means you can identify when these tactics are being employed against you and easily disarm them.

I had many take-aways from this series, the first of which was that he copied my header for his cover design. I mean c’mon Roger, I’ve had the purple lightning bolt thing for years now… ;-) But seriously, it was helpful to learn the Bracketing technique, how to disarm a resort to higher authority and how the value of services diminishes rapidly once those services have been rendered and therefore why you should lock down the details up front. Also useful was the trade-off maneuver for getting instant, reciprocal goal concessions to bring negotiations to a close, the Nibbling strategy and the counter maneuvers for the good-guy/bad-guy technique.

For $14, the series is worth the bonus disc alone in which he teaches you how to negotiate your next automobile purchase. For me I disliked the idea that I was at a disadvantage being unaware of these tactics that others could use to manipulate me. Hopefully posting this outline for public consumption is kosher (I’m surprised they don’t have a better synopsis in the Amazon review). In reality, the value of the notes by themselves is marginal since 90% of the effectiveness of using these techniques is in their delivery and you need to hear Roger’s voice to get it right. I highly recommend this series to anyone who needs to negotiate something – okay basically everybody with a pulse… You can download the mindmap below or view the HTML version if you don’t already have Freemind installed. And if you’re not mindmapping, here’s why you should be.

dawson_icon_freemind.gifdawson_icon_HTML.gif

Here’s a screenshot of the main branches, each one representing an audio chapter in the series:

powerNegotiating_mindmap.gif

Happy negotiating!

-sean

Jun 27

innovationGamesBook.jpgSix months ago I was contacted by the publisher Addison-Wesley and invited to review a manuscript for a book called Innovation Games by Luke Hohmann. I just noticed they’re now accepting pre-orders on Amazon. While I’m still bound by the the review agreement and restricted from discussing particulars of the book, I can give a general overview and say that this will be an important work for anyone who strives to elicit the purest feedback and forward-thinking suggestions on the development of a product/service. First let’s look at the problem Luke is addressing.

Anyone who has conducted a focus group or a psych experiment knows that as soon as you ask someone for a justification of a decision, the mere act of asking them to explain things can cause them to change their response to fit the justification they think you want. Malcolm Gladwell covered this phenomenon in depth in his book Blink and perhaps the most memorable he cites is the experiment where a bunch of college students were offered a selection of posters for their dorm at the beginning of the year. The only condition of the experiment is that they had to keep the poster on their wall for the rest of the semester. Most of the students ended up choosing abstract art pieces (almost none chose the cutesy “kitten with a ball of yarn”-type posters you see in doctor’s offices). The experiment was repeated with a new group only the next time around the students had to justify their decision for the poster they chose. A great majority of the students ended up picking one of those rainbow, kitten, motivational posters and attributing their choice to the “cuteness” of the poster. The funny thing is a satisfaction survey conducted at the end of the semester showed that nearly all the students from the second group that had chosen the kitten posters HATED their poster and most had taken it down while the students that had never been required to justify their choice were still content with their selection. So how does this relate to Innovation Games?

Focus groups experience this same inherent flaw: the act of soliciting feedback from participants on a product often causes them to return skewed results laced with things they think the researcher wants to hear even when there is no tangible reward for doing so. It’s almost as the “wave particle duality of light” dilemma of Schrodinger’s Kittens occurs in human subjects in that the very act of measuring changes the thing being measured. So how does one get accurate feedback when the process of collecting data spoils the data itself? Luke proposes a simple yet clever device for eliciting the untainted feedback: couch the “experiments” in the form of games. I won’t steal his thunder and list all the games here but he proposes twelve different games which can be played in small groups over the course of an afternoon and are designed to extract innovative ideas and unadulterated feedback on how to improve a product or service. Playing these Innovation Games achieves a couple things:

  1. It makes the solicitation of the feedback implicit rather than explicit therefore nullifying the Hawthorne Effect (*note the Hawthorne Effect has been contested and yet continues to manifest primarily in educational experiments).
  2. It removes the experimenter bias because instead of potentially leading questions from an interviewer, you have pre-defined rules of a game that is played amongst participants
  3. It makes the experiment itself a more pleasurable activity and therefore improves the likelihood that participants will actively contribute as much as possible.
  4. It encourages creative thinking and produces interesting artifacts that can be analyzed and quantified later rather than bottle-necking the available responses up front to multiple-choice questions on a survey.
  5. The games -specifically Buy a Feature, Prune the Product Tree and Speed Boat- draw upon the power of decision markets (more on this in a forthcoming review of The Wisdom of Crowds)

I recommend this book to anyone that has the task of conducting a focus group for his or her company and for anyone with access to potential customers who would benefit by innovating around an existing product or service. My only criticism of this book is that after reading about how to conduct all twelve games, it was difficult to remember individual games later and when it was appropriate to use each. I lobbied for Luke to produce a supplementary DVD that showed concrete examples of past games conducted at his seminars with the thought that doing so would help cement the abstract ideas with real imagery and therefore facilitate better recall of each. I do not know whether they plan to release such a DVD but hopefully they will at some point. It’s not critical that you remember the specifics of the games from memory (you can always reference the book) – it’s more important that you understand the relevance of each game and be able to identify situations when it would make sense to employ a game to extract meaningful insight. You can read more from Luke on his blog or via his company’s website.

It should be noted have no affiliation with Luke or his company. I received a small, one-time honorarium from Addison-Wesley for reviewing the manuscript but I realize no future financial gain from the success of his book.

UPDATE 5/8/07: Full disclosure: I do now have an affiliation with Enthiosys, Inc in that I am now a certified Innovation Games facilitator and qualified to deliver the games.

UPDATE 8/30/07: Big thanks to Bridgitte Kaltenbacher for pointing out that the reference doesn’t actually appear in Blink. I mistakenly attributed it to his book but it actually appears in his talk at Poptech a few years back. That MP3 can be found here and the reference starts around 23:10.

Mar 29

I just finished the 37signals book “Getting Real” yesterday and wanted to share some thoughts. We bought a 10-user license the day it launched to give each one of the members of the G7 pilot program. Having followed the 37s blog for well over a year, I like their philosophy and we knew this would be a good distillation of their principles and a good way of indoctrinating this philosophy in our own peeps. First if you are in the web application development industry and do not know who 37signals is, you are some kind of ostrich – these guys are the success story of a small business. They were a tiny usability-focused design firm a few years ago that stuck to their guns, kept lean and focused on simplicity. They now arguably have the most influence of any sub-10-person company in web development. They “scratched their own itch” by productizing Basecamp, a tool they had created for internal use of managing the development of their own projects and have turned it into a massively-popular solution for collaborating on projects. They have a no bullsh*t approach to everything they do that is so refreshing and have near-religious following on their blog Signal vs. Noise in terms of the loyalty of their readers. They have created a few other products like Backpack, Tada List and Campfire all of which are interesting for their interface design but none as popular as Basecamp (we’re using Basecamp in G7 in conjunction w/ Trac & Subversion to manage our projects). So enough of the ego stroking, overall impression of the book:

Get it. It’s cheap ($20) and it’s available instantly in pdf. It’s a quick read and while you may find no single piece of mind-blowing info that revolutionizes the way you do things, it’s a great way to assess and tune your own philosophy towards software development. They have a minimalistic style and are very much consistent with the AGILE philosophy of rapid iterations and getting a barebones working application developed quickly and in the hands of real people so you can get empirical feedback to guide the development of the product. The book covers the full cycle of research, development, testing and deployment and addresses aspects of application development and design. About 20% of the entire text is peppered with words of wisdom from heavy hitters like Joel Spolsky (Fog Creek), Seth Godin (Purple Cow) and Derek Sivers (CD Baby). It’s a quick read (maybe half a day if you do nothing else). The particular points I found interesting:

On having an enemy – this may sound counter-intuitive – we should avoid having enemies right? But when you’re developing a product, it’s helpful to identify the ones in your space that you hate – it helps you crystallize the essence of what your product will NOT be, how you differentiate it from the existing options and helps galvanize your staff with a mission. You obviously can’t focus exclusively on trying to beat competition, but having an “enemy” to reference makes the game more fun. Their thoughts on “tell a different story” are very much in line with the ideas espoused in the Innovator’s Solution on not picking a fight you can’t win. If your competitors tout feature robustness, go after simplicity. If they flaunt their impeccable support for every browser since Netscape 1.0 – go after responsiveness, a snappy clean interface and only support firefox and safari…

On emergence – Their thoughts on API’s facilitating emergent behavior echo our own at Grid7 – the more you can expose the functionality of your applications outside of the visual interfaces which you conceive, the more you open up the door for others to remix your app, build on top of it and take it a direction you hadn’t imagined when making it. Even though it’s not listed on our G7 homepage, we’re spending the majority of our time right now developing an extremely forward-thinking approach towards how data like job postings, book reviews, events and anything structured will be shared in the future. It involves structured blogging and microcontent and it’s the brainchild of my partner Kimbro Staken. You can read more about this whole initiative from the “tag” page of Grid7 here.

On where the real gains are – This an extremely insightful paragraph from p. 50 and it’s something I’ve known but haven’t seen it expressed anywhere as eloquently:

The best designers and the best programmers aren’t the ones
with the best skills, or the nimblest fingers, or the ones who can
rock and roll with Photoshop or their environment of choice,
they are the ones that can determine what just doesn’t matter.
That’s where the real gains are made.

This is so true- think about all the time you spend learning new facets of a language or the latest ajax widget to make a form work 1% better than how it does now. All this effort to add more flare would be better spent pruning what’s already there and delivering a more stripped-down, intuitive version that lets the user achieve their goal more simply.

On team size and distributed decision-making – this is another great paragraph and is literally at the heart of Grid7 (the 7 originally meant no team above seven people):

As projects grow, adding people has a diminishing return. One of the most
interesting reasons is the increased number of communications channels. Two
people can only talk to each other; there’s only a single comm path. Three
workers have three communications paths; 4 have 6. In fact, the growth of links
is exponential…Pretty soon memos and meetings eat up the entire work day.
The solution is clear: break teams into smaller, autonomous and independent units to reduce these communications links.

On the value of enthusiasm over skill – I can’t stress this enough – I would way rather have someone who is stoked about learning and has an idea they’re passionate about vs. having an elitist recluse who may be the best programmer in the world but has a condescending attitude towards the others on the team. What you know at any given time in our industry is not nearly as important as your ability to adapt, how well you can learn to learn and your passion for what it is you do. I said it in my talk for Refresh the other day, “of the six questions involved in any project- the what / where / when / how / why / who, if you can get one and only one right- fix the WHY solidly in your gut and the others will find a way to resolve themselves.”

On creating prototypes before code – Amen. Before you write a line of application code you should have already sketched out the screens from the app and the flow of the site so you know how it will work. Next step is to translate these into a clickable prototype so the people using it can see what’s involved and provide feedback that will invariably alter the design of the application and hence the code that you would have already written. I did this when first starting the ABC extranet project and it proved to be wildly helpful. I mocked up a wireframe initially using paper and then converted it to a digital version using Adalon, from that I was able to generate this HTML wireframe which I went over with the client and refined until we had all the screens accounted for. Next I threw together a clickable HTML prototype of that wireframe (no logic, hardcoded, CSS from another site since it would be changed eventually anyways) so the client could see exactly how it would work. This is apparently the exact process 37s uses which is encouraging and validates how we are approaching development.

Interesting byproducts of this tactic they pointed out that I had never considered were the improved vision/enthusiasm of the developer, the ability to make better estimates on time/cost and the compass function it served in guiding the development effort. Read this paragraph:

Once the html mockups were completed, we approached our developer,
Scott, with the idea for Blinksale. Having most of the ui designed up front
was extremely beneficial on several levels. First, it gave Scott a real vision and
excitement for where we were going. It was much more than just an idea,
it was real. Second, it helped us accurately gauge how much of Scott?s effort
and time it would require to turn the design into a functioning application.
When you?re financially bootstrapping a project, the earlier you can predict
budget requirements, the better. The ui design became our benchmark for
the initial project scope. Finally, the ui design served as a guide to remind us
what the application was about as we progressed further into development.
As we were tempted to add new features, we couldn?t simply say,Sure, let?s
add that!? We had to go back to the design and ask ourselves where that
new feature would go, and if it didn?t have a place, it wouldn?t get added.

On the choice of languages and how it affects the developers you attract – I’m well aware of all the productivity-enhancing elements of RoR for doing web apps but something I had not considered was the point they made about how the choice of language/platform in creating an application to some extent determines the mentality of the people that will be working on the app. Think of the various choices out there (php, asp, cf, jsp, asp.net, ruby, python, perl) – now think of the stereotypical developer for each language and how you imagine them. I won’t label any of them (even though stereotypes contrary to opinion are useful for making decisions) – there is variation within each language but in general, you hire a java programmer and you can expect different java programmers to see the world in similar ways, same goes for php, same goes for Ruby. They point out the valuable insight that choice of language should not solely focus on variables of performance, scalability, learning curve, etc – but should also take into account the “philosophy of the developers that work in this language” variable.

On code debt – Just reiterates the importance of refactoring in building an application iteratively. You make concessions along the way, calculated tradeoffs in the interest of getting working software earlier but if you let the “broken windows” pile up then you can bankrupt your application in code debt by having many tiny shortcuts lead to poor morale and bugs.

On reaching mavens for a successful launch – Malcolm Gladwell calls them Mavens, Seth Godin calls them Sneezers, the guy we rent office space from calls them Igniters – whatever. The point is if you’re launching something new and trying to get it to “tip” and cross that threshold of adoption where it spreads on its own, you need to focus on things that empower the alphageeks to spread the word more easily. This includes educational pro-bono stuff, spiffy features that people talk about but are still consistent w/ simplicity of the app, and mostly by focusing on creating something valuable for a niche of people. A market is by definition “a group of people that will potentially buy your stuff and reference each other.” This trait is key and 37s recognizes perhaps better than anyone else how to drop teasers on their blog and create a loyal following. Companies that are now paying employees full-time to simply write blogs that regurgitate the marketing messages from their websites are _completely_ missing the boat on how to reach mavens.

On their philosophy of karma, teaching and “pay it forward” – couldn’t agree more- this is at the heart of Grid7 and we are committed to bubbling up the lessons we learn in our experiments back to the community that supports us. Whether you consider this type of effort purely altruistic and karmic or as a pure, calculated mechanism for getting exposure for your stuff, it’s effective. Either way it’s something we’re committed to and are already doing to some extent by exposing our internal “tagging” of topics of relevance on the G7 site.

On ideas vs. execution – spot on. We’ve said it before and I’ll say it again here “ideas are a dime-a-dozen, it’s the execution that matters in the end.” When people express skepticism at sharing their ideas on the Grid7 application or companies seeking VC investment try to have their potential investors sign an NDA prior to sharing info- we say “bleh.” You can have the greatest idea in the world with poor or zero execution and it translates to nothing. Conversely, you can have a mediocre idea with enlightened execution and it’s definitely worth something just for the way in which its implemented.

I’ve been reading quite a bit lately and plan to share thoughts on some of these other works when time permits:

  • Guy Kawasaki – Art of the Start
  • Seth Godin – Purple Cow
  • Jim Collins – Good to Great
  • Ewing Marion Kauffman Foundation – Fasttrac TechVenture
  • Rhonda Abrahams – Simple Business Plan
  • Thomas Pender – UML Weekend Crash Course
  • Dave Thomas – Agile Development with Rails

© 2005 Lights Out Production – All Rights Reserved Worldwide

Nov 23

First off, his name is pronounced “Coh-burn” so let’s just get that out of the way now ;-) I finished Agile Software Development tonight and wanted to give a book report here while it’s still fresh to edify some of the points that resonated with me. This will probably be a lengthy post but it’s ripe with good concepts for anyone who manages a team of developers.

The term “AGILE” refers to a style of development that was coined by a committee of seventeen software architects in 2001 at a summit in which they drew up a document they named The Agile Manifesto. It proposed a value system that encouraged certain activities over others in the pursuit of creating flexible, well-constructed software. While Cockburn’s book is relevant to anyone involved in the software development process (engineer, QA person, manager), it probably makes more sense to be digested by a team lead and disseminated to the other developers. With so much reading to keep up with on various techniques, methodologies and languages, a programmer in a team would be better served by devoting her “extracurricular cycles” to material with more tangible, immediate rewards and receiving this type of abstract, work-style advice second-hand via a senior developer. If you’re a lone-wolf developer you may not find this book useful at all but if you deal with other developers in any capacity (internal or external to your organization), it contains some valuable lessons. In short, it gives a holistic, high-level overview of the qualities of methodologies and environments that are used by successful teams. And this is the strongest feature of the book: the fact it is entirely rooted in real experiences. It makes ample use of non-fiction anecdotes to make concepts more memorable and it draws heavily upon hundreds of interviews with real teams that deliver real software under real deadlines. The theories conveyed in technical books can sometimes be refined to the point of “PhD purity and correctness” yet be impractical in application. Cockburn instead offers “blunt, field-tested tools” that are actually getting things done everyday on the front lines of software development. Here are the main takeaways I extracted from this book:

  1. Agile Manifesto – as short and simple as this document is (read it – 15secs), it has a profound message- basically, when push comes to shove, delivering good software under deadline is the ultimate goal, good communication amongst a team trumps process and documentation every time, and the only thing consistent across all projects is change and therefore your development style had better be the flexible reed and not the brittle stick when it comes time to deal with change. This manifesto sets the tone for the entire book, the chapters are filled mostly concrete practices that support the Agile manifesto.

    My Takeaway My Takeaway – Prior to buying this book I had heard Alistair
    speak on ITconversations.com . He struck me as being very practical-minded and not high & mighty on theory (which I liked). Having worked informally under both styles of development, I agree with the main values of Agile for being adaptive and goal-focused rather than process-oriented. Agile encompasses a bunch of formal styles like XP, SCRUM, DSDM and others – the tenets are very similar in all though. I especially related to a story about a team that was given strict requirements and micro-managed on the process and documentation required and they ended up ignoring orders and doing it the way they knew it needed to be done in order to get it delivered on time. As so often is the case for developers, you juggle what the client “tells you they want” vs. what you know they truly need and when pressed to favor one over the other, you have to diplomatically choose the latter and make it look like you choose the former.

  2. “Microtouch Intervention”: big results from small changes in each member – This is not rocket science but enacting a very small change in each person of a large team can yield massive results with very little effort. It’s the idea that if the project as a whole is like a giant boulder that each team member is trying to move in a certain direction (towards project completion), the vector of force for each person is always somewhat misaligned from the desired direction such that people end up inadvertently wasting some amount of energy pulling against each other. Any steps that can be taken to conserve this energy by: a) communicating the intended direction more clearly b) revealing to each participant their actual vector of pull or c) producing a more compelling reason for people to pull towards the goal, will ultimately yield major gains.
    My Takeaway My Takeaway – This positive effect of this concept is obviously amplified in larger teams. Conversely, the larger the team, the easier it is to dodge responsibility and the more inertia that a stationary group will have. I’m a big proponent of this idea of “paint the vision clearly and then get out of people’s way.” I’ve always thought that energy expended cultivating the enthusiasm and passion of a group is a good buy (ie. if you can get the “WHY” part firmly planted in people’s hearts and minds, the “WHO WHAT WHERE WHEN HOW” questions will find a way to answer themselves). Cockburn validates this notion with a wonderful story from Dee Hock of Visa (second section from the end) and how this type of laissez faire leadership and simple microtouch intervention established a virtuous circle amongst his team and enabled them to successfully deliver a complex system under an ambitious sixty-day deadline. Just read this sentence- “Leaders spontaneously emerged and reemerged, none in control, but all in order. Ingenuity exploded. Individuality and diversity flourished. People astonished themselves at what they could accomplish and were amazed at the suppressed talents that emerged in others.” That’s the flavor of a team operating at peak performance driven by intrinsic motivations from within and that’s what you want to engender.
  3. “Erg-seconds” – the energy/time required to transfer important info
    The idea of “erg-seconds” is an analogy Cockburn makes between the transmission of critical information in a project environment and fluid mechanics, or the dispersion of gasses and liquids in a container. In a workplace at any given time there are “convection currents” of info that are venting info like geysers amongst the team members. Anything you can do to narrow the distance this information must travel to reach the necessary recipients pays off exponentially in progress, morale, fewer errors, etc. Mole-meters/sec is the metric used in the realm of fluid mechanics, but that unit does not directly translate over since distance traveled is not the key factor whereas “time necessary to achieve clear communication” is. The optimal situation is to have the people that require the most back-and-forth communication sitting in the same room so they can tap each other for help and overhear and interject when they have valuable advice to contribute. Overkill of this setup creates what Cockburn calls “Drafty cubes” or too much interference with irrelevant info bombarding the programmer. Like anything it’s a balance that must be optimized. Moving further down the continuum of proximity, adding cubes, walls, floors, buildings or even separate geographical locations into the mix gradually introduces more and more friction that adds “erg-seconds” to each interaction in a project and (like we determined in #2) gets amplified in larger teams.
    My Takeaway My Takeaway – This is a very valuable way of thinking about the flow of info on a project. Being a solo consultant, I encounter situations where project delays get compounded by unnecessary “erg-seconds” on interactions not within my development team (of one), but when there are multiple entities involved as clients, and especially when there are tiered teams in each entity. I generally mitigate this problem by occasionally working onsite to reap the benefit of some of the “osmosis” and “convection currents” Cockburn mentions. There is admittedly no substitute for face-to-face interaction- body language, tone of voice, gestures, proximity cues and interjective feedback are lost or hindered when communication occurs via any other method. Neglecting the value of being there to absorb the situation from time to time is a mistake. I have explored the idea of off shoring discrete portions of my projects lately but this concept warns that this geographic dispersion of team members might magnify the “erg-seconds” effect on even simple tasks to the point where it defeats the utility of off shoring I will have to re-analyze the tradeoffs with an eye towards how this effect could be nullified.
  4. “Teeing up work” to the bottleneck player
    If we think of software development as an ongoing game of interactive cooperation and communication as Cockburn wishes, then the principle he espouses “#7 Efficiency is expendable in non bottleneck activities” should take care of itself. It’s the concept that if you have say five cooks and one delivery person in your pizza joint, the driver is the bottleneck and your cooks had better “tee up” those pizzas by double-checking that the orders are correct, printing and verifying the directions, perhaps calling when the directions are unclear and making sure the boxes are pristinely stacked in their warming sleeves on the counter for the driver when he/she shows up.
    My Takeaway My Takeaway – Again, I don’t encounter this problem as much since I am solo- every time as the sole developer, I’ll be the bottleneck. The idea that occurs to me though is that I need to utilize the workers in the client’s company better if they can be at my disposal. In even the “best-packaged” project there is probably some added level of prep-work and optimization that can be done to “tee up” the materials for execution. Decentralizing these efforts and pushing as much of this type of activity to the client’s side definitely bides me more time to allocate to activities for which I truly am the bottleneck, plus it has a by-product of #3 and getting some convection currents working to my advantage.
  5. The right amount of documentation: light but sufficient
    So there are two goals in this ongoing game of invention and communication- 1) execute well on the current iteration 2) set yourself up for success on the next “game.” If you’re like most developers, documentation is always an afterthought and it’s something you only do when it’s mandated by a manager. Documentation (in the world of Agile) takes on a completely different meaning – there is no strict format for what constitutes appropriate documentation. It’s simply “whatever is necessary to communicate the essence of the theory or project to those that follow.” That may sound too foofy to some but it’s important because (consistent w/ the Manifesto) it’s not constraining implementation to a particular convention or process but rather focusing on the goal of communicating the important aspects. Cockburn talks about methods like “progress radiators” and videotaped whiteboard sessions as simpler ways of preserving and conveying this understanding. The traditional view of documentation is one of a detailed functional spec that precedes the project and captures every requirement and then some system for documenting the code afterwards to again capture every detail of execution so that it can be understood by programmer’s that follow. According to Cockburn’s advice, a picture is a thousand words and a video is worth a kajillion.
    My Takeaway My Takeaway – I found this to be extremely insightful and especially relevant to what I’m proposing to do with Grid7. Too often developers receive a mandate from management to perform documentation in some nit-picky format that distracts them from valuable time they could spend just making things better. A simple picture of a whiteboard to accompany a paragraph of instructions can go miles towards bridging the knowledge gap and that’s exactly what we used to do at a place I worked called Interactive Sites. I’m all about the idea of videotaped whiteboard sessions though and I have already made it a habit of using my iPod along with my Griffin iTalk to audiotape meetings so that I can refer back to them and bring someone new up to speed by giving them an MP3 of a previous conversation rather than regurgitating it. I plan to hold monthly status meetings via Skype on the Grid7 stuff and you bet we will be videotaping them and archiving them for future developers that enter the project.
  6. A “Shared Metaphor” as a common anchor point for developers
    The idea is that when working with complex systems and many developers, if you can develop a “shared metaphor” or a more tangible scenario that parallels the problem domain, people will be able to draw upon these parallels to make decisions and therefore remain more cohesive in their approach than if they lacked the shared metaphor. This contribution was from Kent Beck, one of the originators of the Extreme Programming methodology. I cannot comment on the efficacy of this tactic amongst a dev team having never used it myself, but it certainly sounds like it has merit. I think anything you can do to align the vision of team members to some landmark will have value, especially when the project involves highly abstract concepts.
    My Takeaway My Takeaway – “Having everyone on the same page” is important and there is absolutely value to using metaphors to assist in scenarios when the concepts are abstract. In fact, just last week in my meeting with Value Options and Arizona Behavioral Health regarding the construction of the extranet they will use to collaborate on housing homeless folks, I was able to frame the abstract idea of our anonymous wait list in terms of the red ticket dispenser you see at the post office that dispenses numbered tickets anonymously. We were able to collectively work from that image much easier than talking in abstractions and it helped not only in communicating but we were actually able to discover additional ways of simplifying how the wait list works by drawing on parallels of how the ticket dispenser functions.
  7. Tradition vs. Transcendence as the foundation of good design
    In other words, “how much do you balance making the interface for your word processing program look like a typewriter in order to make sense for old school folks vs. making it the cleanest-possible, sensible interface for getting the job done at the risk of alienating people who are less savvy?” This is the age-old question of design (and not just in computer apps). There is some optimal balance that exists in a newly-designed apparatus that meshes tradition with transcending innovation to push the state of the art forward and test the boundaries of what’s possible today.
    My Takeaway My Takeaway -With graphical interfaces especially I know big companies like Microsoft spend millions of dollars in research to find that balance. We had Russ Ruggia, a Developer Evangelist for MS come and talk to our CFUG awhile back and he mentioned that MS had spent something like $7bn in psychology research in developing the forthcoming interface for Windows Longhorn/Vista).
  8. Criticality and Team size determine methodology weight
    Any project can be evaluated on a 2D graph that shows team size on the X-axis and system criticality on the Y-axis (system criticality refers to the severity of loss in the event of a bug, lowest being an inconvenience and highest being loss of life). Cockburn breaks down the graph into quadrants and explains why projects that stray further from the origin of this graph require heavier methodologies. Even small projects at NASA demand a heavier-weight methodology than the typical web 2.0 app due to criticality. Likewise, even a large non-critical project with many team members like say, the latest Ubuntu Linux distribution, requires a heaver methodology due to the organization required to manage that many team members.
    My Takeaway My Takeaway – Again, the right tools for the right time. It’s not enough to pick one methodology and stick with it in all situations. The skilled developer will recognize that each tool and methodology has validity in different circumstances and will understand the factors at work and when it makes sense to choose one over the other. I’ve never worked on any of the “L stage” critical projects like medical devices where lives are at stake. I have worked on “Discretionary Monies” and “Essential Monies” projects however while running integration with some of the major credit card processors at Apriva. I can certainly testify to the fact that credit card companies have strict methodologies in place for how things happen, to the point where it can become crushingly burdensome on development. Given the position on the criticality axis of Cockburn’s suggested chart, this decision makes sense however.

Well that was a lot of rambling but I hope this condensed version of Agile Software Development is useful. It was a decent read and not as dense as it may sound. I recommend checking out Cockburn’s talk on ITconversations.com at the link above if you have interest in this stuff. It’s definitely given me some ideas for how to approach things in the forthcoming developer co-op.

sean

© 2005 Lights Out Production – All Rights Reserved Worldwide
© 2005 Lights Out Production – All Rights Reserved Worldwide

preload preload preload