Neal Ford's complete blog can be found at: http://memeagora.blogspot.com
Wednesday, June 9, 2010
Disclaimer:
I'm a hard-core lover of Apple products; between my wife & I, we own 4 Macs. However, I also hate Apple's stance as a company on lots of topics. In fact, I would probably never use their products if they weren't so damn good. I'm just disclaiming that I may not be objective (although I try to be).
I was not one of the early enthusiasts for the iPad when it was first announced. I did not pre-order one and really had no interest in one until I had a chance to touch one. It didn't seem to make a lot of sense for me: I split my time between my laptop and the iPhone (which I truly love). The iPad didn't seem to offer much that I didn't already have.
But I realized in the first 10 minutes of playing with one that I was looking at the first incarnation of the next platform, and I quickly ordered one (actually, 2 — one for my wife & one for me — like the iPhone, I knew she would never wait for a hand-me-down). This blog is a culmination of my thoughts and impressions.
General Thoughts
It doesn't take long using an iPad (especially if you've been to the Apple iPhone school of user experience) for it to feel natural. The main difference is how much the platform manages to disappear, more quickly than any device I've ever used. That's one of the things I love so much about OS X: it tries to get and stay out of your way.Using a well designed iPad app (and there are already some pretty stunning ones), you quickly forget all about the hardware/software combination that is the life support for the app. The application just seems to work.
Canon Cat
In The Humane Interface, Jef Raskin (one of the early Macintosh developers and a well respected researcher in human-computer interaction) wrote about human computer interaction at a pretty abstract level. He designed and sold a computer called the Canon Cat which implemented some of his user interface ideas. One of the most shocking things that Raskin pointed out is that computer users don't want file systems, they just want to work on stuff. The Canon Cat had no recognizable file system: you typed documents and then searched to find previous ones. The iPhone/iPad also have no visible file system: every application "owns" their own data. This causes a few headaches for applications that need to sync their data or share files, but applications (like DropBox) fill that void nicely. I'd rather a few applications figure this out for themselves rather than punish every user with having to understand the nuances & headaches from dealing with what really should be low-level abstractions. How many family members have you had to walk through downloading a family photo and then helping them figure out where it ended up on their computer?For those who doubt what a paradigm shift this is (and how far away even close seeming competitors are), consider that at the time I wrote this, 2 of the top selling applications on the Android store don't make sense on the iPad: a task killer & a file system browser. Despite the cosmetic similarities between the iPad and competitors, the differences go much deeper.
Death of the Mouse
The iPad represents the death of the mouse. You don't need one, don't miss one, and it would be a huge leap backwards to try to use one. Your finger does what needs to be done, and it's scary easy. The only real exception to this is stylus-type usage. The iPad is a lackluster real-time note taking device for handwritten notes. However, the built-in keyboard works better than I expected.The Good
As you can probably guess, I like a lot of stuff about the iPad.Mechanics
My general computing time (time spent on notebook, iPad, & iPhone (minus calls)) has gone slightly up since getting the iPad. Most of the displaced time has come from the iPhone. If you look at 100% of my ipad usage, I estimate that it comes from 80% less time on the phone and 20% less time on my computer. When I first got it, I had the normal hedonic glow I get from new cool toys, and I looked for excuses to use it. That quickly went away, and now i find myself using it for very specific tasks. Case in point: I realized I wanted to add this section while standing in line to get on a plane; I'm typing this in my seat waiting for the rest of the passengers to board. Not enough time to get the entire laptop out, but way more than I would want to type on my phone. Once you've been using the iPad, some of the applications on the iPhone feel really claustrophobic. Some applications (and games) still work best on the phone, but there is certainly the case that some (most?) work better on the more capable hardware and form factor.Killer Uses
Watching movies rocks on the iPad. It has 1024x768 resolution (which was the standard resolution for my laptop for years) which is beautiful. Watching content at the gym is absolutely transformative. The Google map application quickly shows that this is the perfect form factor and, more importantly, interaction model. The way you pinch and zoom to navigate around the map feels right, along with the gradual exposition of details as you do so.Listening to music with the lyrics available is another killer feature for me (I listen to a fair amount of music — progressive rock & opera — where the lyrics really matter). If you associate the lyrics to a song as part of the meta-data in iTunes, the iPad has a mode that shows you the lyrics to the song that's playing. You've been able to do this on iPods & the iPhone for a while, but this form factor makes all the difference.
The iPad is definitely a "lean back" device, rather than a "lean forward" device. The interaction model for a laptop is well established and doesn't have a lot of options because of the form factor. Whether at a desk or an airplane, you pretty much use it the same way. The iPad, on the other hand, has lots of different interaction modes. I've seen a lot written about "habit spaces" and interaction models — the iPad makes you realize how true that is, and provides a blank slate for creating some new habit spaces & interaction models.
Using a mind mapping tool on the iPad makes me never want to go back to using a notebook for this activity. The mind mapping tools aren't as powerful yet, but the interaction is exactly right. I find I use my iPad a lot for brainstorming away from my computer, which is where I would like for it to happen because of habit spaces. And OmniGraffle for the iPad makes you rethink how drawing tools should work.
One must-have accessory is the Apple case for the iPad. It is a marvel of engineering in its own right, and it makes it easy to find the right interaction mode for what you're doing. Having a case that allows you to put it into various physical permutations makes it easier to get immersed.
The iPad is the ultimate airplane accessory: movies, books, games, and interacting with the outside world on planes with wi-fi. I have now partitioned my travel life into 2 eras: pre-iPad & post-iPad, and you can guess which is better.
As you've probably guessed, this entire entry was researched, organized, and written on the iPad, and it was a pretty good experience, much better than I thought it would be. I can anticipate doing more of this type of writing on the iPad.
The Bad
I have very little to dislike so far. It really does need rudimentary background processing just to allow stuff like Skype +The Ugly
Nothing about the device is ugly. The only ugly thing in the neighborhood are Apple's sometimes overly controlling ways. But you have to realize that the future of applications on these devices fall into 2 categories: curated native applications from the AppStore and wide open, standards-based web applications, delivered through the browser. By maintaining control on the native applications, they remove the need for things like anti-virus software. They want to closely guard those applications all the way down to the look and a feel. I agree that if they allow cross- compiled applications, it dilutes their control. But that control makes a difference.Before the iPhone, I was a die hard Palm (and Treo) user, which both offered an application development platform. Because there was no curator, 98% of Palm applications were abysmal, to the point that I stopped adding new applications. The Apple AppStore largely fixes that.
Android is going to suffer the same fate if they aren't careful. The interesting difference between the Palm & Android eras is the strength of social networks, especially user ratings. The largely unanswered question: will social networks be enough to all the cream of the Android crop to rise to the top, overcoming the Palm problem.
I won't get in a huff at Apple for controlling and curating native applications as long as they don't try to cripple the browser. As long as I can write whatever application I want using open standards and have it work correctly, I'm OK with the advantages and disadvantages of curated applications.
"I want to live there!"
I have a friend that every time he sees something new and futuristic, he says "I want to live there". Using the iPad feels like tiptoeing in to the future. I definitely want to live there.I'm convinced that the iPad is the first iteration of the next major computing platform. PC's will become work & power user tools, but everyone will use iPad-like things for many tasks. This is the first incarnation - can you imagine what these things will look like in 5 years?
The iPad does for video what the Sony Walkman did for music. I can easily envision a near future where the family TV is only used on special occasions; the whole family sits around with their fifth generation iPad watching highly personalized content.
I don't think you can really appreciate the impact of the iPad until you've used one a bit. Thomas Watson famously said in 1943 that the world-wide market for computers was about 5 computers. He didn't understand the transformative effect that pervasive personal computing could effect. We're at the threshold of a new era of computing, and it's pretty cool. Ignore it at your peril!
Friday, May 21, 2010
I have a love/hate affair with Firefox. I love the keyboard affordances it provides, especially the slash ("/") and apostrophe ("'") shortcuts. When looking at a web page, the slash starts an incremental find for text within the page. The apostrophe does something similar, but it restricts the matches to URLs only. How many times do you go to a web site and you know the name of the link you want already? For example, if I need to go to the ThoughtWorks web site to get the address of the London location (this happened earlier today), I know (or can guess) that there is a "Contact" link on the home page, which takes me to a list of offices. In my new mouseless browsing mode, I go to the home page thoughtworks.com, hit the apostrophe and start typing "contact", hit enter and now I'm on the contact page. From there, I can hit the slash key and start typing "London". I've found my address and never taken my fingers off the home row. This added to the spacebar to scroll down and shift-spacebar to scroll up and you can get a lot done in a browser without a mouse.
I maintain a love/hate relationship because one of the cool things about Firefox is all the plug-ins available. Conversely, one of the things I hate about Firefox are all the plug-ins! I tend to find useful plug-ins and add them, which adds to the weight (and start up time) for the whole browser. Recently, I stumbled across Camino, which uses the same rendering engine as Firefox, which means that my 2 favorite keyboard shortcuts work. Camino is very lightweight (if "feels" lighter than Safari) and it supports my browsing habits. This is going to sound odd, but one of the critical things that it supports is the ability to type a partial URL in the address bar (which it will auto-complete) and hit CTRL-N to move the cursor down to the first (or subsequent) matches. This is a big deal for me because the Emacs key bindings are deeply ingrained in my fingers (and most of OS X, as it turns out), but Firefox doesn't allow this. Firefox has apparently overwritten the CTRL-N key to do nothing (overriding the operating system). While this sounds minor, it bites me every time. Fortunately, Camino adheres to the Apple standard, allowing me to have my cake (having CTRL-N move down one line, as it was Meant To Be) and keyboard-driven browsing.
If you really want to go far down this path, there is the Conkeror browser. It's "About:"
Conkeror is a keyboard-oriented, highly-customizable, highly-extensible web browser based on Mozilla XULRunner, written mainly in JavaScript, and inspired by exceptional software such as Emacs and vi. Conkeror features a sophisticated keyboard system, allowing users to run commands and interact with content in powerful and novel ways. It is self-documenting, featuring a powerful interactive help system.
I have played with Conkeror and it has strong promise, but it's not quite mature enough for me to switch to daily use.
And if you are a Vim junkie, you can use the Firefox plugin called vimperator, which converts Firefix to a purely vi interface. Not for the faint of heart: if you don't know how to quit Vim, you're going to have a tough time with vimperator. Hard-core Vim-mers swear by this, but I'm too far gone down the Emacs route now to re-map the genes in my fingertips.
Mouseless browsing takes acclimatization, but once you become accustomed to it, you'll start finding it annoying to reach for a mouse (or even for the arrow keys -- not the home row!). This is why I have no interest in Chrome for now because it doesn't support my normal mode of browsing.
Wednesday, April 14, 2010
Tiffany has been with ThoughtWorks since late 2004 as a project manager and agile coach. She embodies what makes ThoughtWorks project managers so good: enthusiasm, experience, expertise on how to build software, and infectious enthusiasm. She's one of the project managers that I would work with on any project, no matter how bad it looks at the outset because I know that she'll find ways to make it better, usually profoundly better.
I've been leaning on Tiffany for a couple of years now to come speak on the No Fluff, Just Stuff tour to share some of her agile expertise, and she finally knuckled under and decided to join the No Fluff, Just Stuff speaker's "boy's club". I don't think it's a coincidence that 2 of the rare female speakers on the No Fluff, Just Stuff in recent times have been ThoughtWorkers: Tiffany and our CTO, Rebecca Parsons. ThoughtWorks can be a bit of a fraternal atmosphere as well (especially amongst developers which, despite concerted efforts, still remain largely male), which means that Tiffany and other ThoughtWorks females learn to tolerate too many male geeks being around, like the speakers at No Fluff, Just Stuff.
Tiffany is going to be talking about Agile practices this weekend in Tampa. Her talks include The Agile Mindset: Applying Agile in Non-Technical Areas of an Organization, Iteration Management: What's in Your Toolkit, and Agile Project and Management Metrics: Measuring Success Downward and Upward. If you're in Tampa this weekend (or at a future tour stop), do yourself a favor and go see Tiffany speak.
Tuesday, December 22, 2009
First, some definitions from Bokononism:
- karass: a group of people who, often unknowingly, are working together to do God's will. The people can be thought of as fingers in a Cat's Cradle.
- duprass: a karass of only two people. The typical example is a loving couple who work together for a great purpose.
- sinookas: The intertwining "tendrils" of people's lives.
- wampeter: the central point of a karass
OK, so what does this have to do with anything useful? I travel a lot, even for a ThoughtWorker (a little over 200K miles this year). Of course, my wife hates the amount that I travel, but it's an occupational hazard. One of the things that makes us miss each other are the little unimportant side conversations we have when we are together: little meaningless observations, inside jokes, just the kind of things that people in a duprass do all the time. So I built a sinookas using Twitter.
I created a new GMail account for myself and one for my wife. Using each of those GMail accounts, I created a new Twitter account with protected updates for each of us, and we only subscribe to each other's Twitter stream. All the good Twitter clients make it easy to change accounts, so I have used this to create a private back channel for ongoing duprass style conversations (in other words, a sinookas). This isn't the wampeter of our duprass, but it does make the sinookas stronger. It's been great, and it's something that I recommend all traveling road warriors set up.
Now, my wife & I can have an ongoing private conversation about stuff that wouldn't make sense (or would be too politically incorrect) on a public feed. That allows us to miss each other less. Who says that you can't have a perfectly useful social network with just 2 people?
Wednesday, November 4, 2009
Calendar
This piece to me is the easiest slot to fill. Maybe I'm just not discriminating, but almost any calendar application works fine for me. As long as I can add appointments with all the standard stuff (reminders, time zones, etc.), I'm pretty happy. The biggest headache with calendars is keeping them in sync. Back in the bad old days of Lotus Notes at ThoughtWorks, I basically ignored the corporate calendar, keeping all my stuff in Google Calendar instead and giving people who cared an HTML view into my work calendar. Google calendar is quite nice, including good synchronization / replication with iCal. Most of my interaction with Google calendar was through the web interface, so much that I created a fluid application that had only my calendar. One of the slick tricks you can do with fluid applications is make all the chrome disappear, giving me a full-screen calendar bound to one of my desktops that looked like the wallpaper for that desktop, which was nice because you get the biggest possible calendar. I also liked the 4 views afforded by Google calendar: 1 day, 1 week, 1 month, and next 4 days.
Since ThoughtWorks moved our infrastructure to Google applications, I just exported my old work calendar and sucked it into the new ThoughtWorks Google calendar. My itineraries, my wife's schedule, etc. I subscribe to (and share subscriptions to interesting events with her). We each "own" our own calendar and cross-subscribe to get shared events. Using sites like TripIt makes keeping travel under control and subscribable. Going forward, I want all calendar stuff delivered as iCal feeds.
For synchronization, I'm using iCal as the integration point. I still have a fluid application that now points to my ThoughtWorks calendar, but I'm using iCal as the main calendar. Of course, iCal synchronizes nicely with the iPhone. Before moving back to iCal, I was using CalenGoo on my iPhone, which is a slick iPhone interface directly to Google calendar. It doesn't really provide off-line access but does cache the previous results so you can see your calendar even if you can't get to it online. The native iPhone calendar application handles that for me now.
ToDo / Task List
If the calendar is the easiest, this is by far the hardest slot to fill. Virtually all of the To Do / Task List applications I've used are seriously deficient in one way or another. Ascend replaced the Palm ToDo application (which was laughably bad) with one it called Task List, which was quite good. One of the killer features I need is a start date in additional to a due date (they all do due dates, but most don't handle start date properly). I have a fair number of tasks that I don't need to see right now, but I don't need to find out about them the day they're due either. I need a system that allows me to express "this thing is due on 11/5, but start pestering me about it on 10/30". I also want a tag-based system using contexts, one of the really nice refinements to come from the Getting Things Done cult, rather than a hierarchy of folders.
My research in this area eventually led me to OmniFocus. I say "eventually" because I recently went through this category of application again. I started with OmniFocus but found it too complex for my day to day usage, which led me to Things. I like Things because it is so radically simple, but that became a bottleneck for me because of the way I like to attack projects. That in turn led me back around to OmniFocus and some concentrated learning about how it wants to work. It's heritage is OmniOutliner, and you can still see that lineage, which adds some complexity to some parts. Because OmniFocus has lots of ways to get information into it, I kept misplacing stuff. The thing that took OmniFocus from "nice but tolerable" to "can't live without it" is the custom perspectives. OmniFocus allows you to save customized views, including filters, columns, etc. I created a bunch of custom perspectives that show me exactly what I need ("what things are coming due within the next week", "what needs to be done next on this project", "I have 10 minutes at home -- is there anything that can be done here and now?") and assigned those perspectives to hot-keys using the standard Mac feature of assigning keys to menu items (each perspective shows up as a menu item, making this possible). Now, I never use the built-in views, I always use my custom perspective depending on the information I need right now. Since doing that, OmniFocus has worked fantastically. It allows me to organize my days and weeks, just shows me what I need right now, and I'm confident when I add something to it that it'll appear at the right place and time. Learning to use OmniFocus right was the key, and now that I have I think I have the best task list stuff that I've ever had (beating out Ascend for this title is no small feat).
Of course, OmniFocus syncs with the iPhone (and has a terrific iPhone application) so that I can keep all my To Do stuff with me at all times.
Recurrence
OmniFocus is great for tasks that have firm due dates and works for recurring tasks as well (including some nice flexibility around "schedule the next one of these 5 weeks after the completion of this occurrence", which is great for things like haircuts). However, I have a few but important categories of things where I want to define rules like "I want to post to my blog every 9 days or so", which could be rewritten as "remind me after 7 days that I need to post a blog entry, and start yelling after 11 days if it isn't done". I use a highly specialized tool for this called Sciral Consistency. That's all this tool does: allows you to set up ranges for things that need to be done and remind you.
I could almost replicate this using OmniFocus features, but I already had Sciral and I like the minimal display & single-mindedness of the tool. This doesn't synchronize anywhere, but I always consume this information at my computer anyway.
Random Notes
The combination of calendar and OmniFocus handles all the structured stuff -- what about unstructured notes? I have two mechanisms for that: Evernote and Moleskine.
Evernote
Evernote is a desktop, web, and iPhone application that allows you to capture notes (organized into notebooks) for whatever information you want to keep and search. A few killer features for me:
- Automatic synchronization always everywhere. Every time you capture something with Evernote, it automatically synchronizes across all views.
- OCR for white board text. I tend to draw on white boards a lot, and if you capture the drawing with Evernote's picture note, it will allow you to do text searches in the web and desktop client for words in the white board drawing. It's not perfect but surprisingly good at this.
- Automatic forwarding address. Evernote sets up an email address for you; anything you forward to that address becomes a notebook entry. This is nice because it allows you to get stuff out of your email client. Evernote has much better searching capabilities than most email clients, and having the forwarding address means you can get searchable emails into Evernote very easily. This is particularly nice for those who use their email inbox as the world's worst filing cabinet; get that stuff out of your email client and into something where it can be useful.
Moleskine
The only bad thing about an entirely electronic PIM: there are still times when you cannot use it (like when the plane it taxiing). This may not seem like a big deal, but I find that I have lots of capturable ideas at exactly the times when I can't capture them. Thus, my other permanent GTD accessory is a soft-sided Moleskine book along with a Fisher space pen. I capture interesting ideas as soon as I have them (because ideas, especially those from the right brain, are fleeting). Once I get back to my computer, I transcribe the Moleskine notes into the rest of my system. At any given time, I usually have a page or so of new stuff in the Moleskine. I could get by with a few index cards but I've been carrying the Moleskine for a while and I'm used to it.
Tying It Together
My PIM lives between 4 different applications and a notebook with no real built-in integration between them. I always use them as a unit. For example, I have all 4 applications bound to the same desktop in Mac OS X, and those are the only things bound to that desktop. That allows me to always leave them in the same window state and position. Anytime I switch to one of the PIM applications, it goes to the appropriate desktop. I've also used Automator to create a PIM application that performs "Launch Application" for each of the 4 that make up my PIM. I no longer think about these applications as separate things.
PIM as Life Support for Focus
Obviously, this system is highly customized to me and won't work without changes for anyone else. I think that it is every knowledge worker's responsibility to find a system that allows them to get to and stay in flow as much as possible. Any tools that you use should make it easier to get to flow, not harder. I find that I tend to work best in 2 hour chunks (which I'm calling work blocks), which is similar to the very popular Pomodoro technique. One of the custom views in OmniFocus allows me to review projects that have pending work blocks so that I can find out what I need to work on, then immerse myself in that problem for a contiguous chunk of time. Whatever system you find, make sure that it supports how you want to work. Don't change your effective work habits to conform to some tool's vision of what your day should look like.


