The technology challenge of GTD

The concepts of GTD are relatively simple; it’s in the implementation where the complexity lies. GTD relies on having a trusted system were you capture information, thoughts, and next actions etc. The system needs to be trusted, because if you are getting all of your commitments and to-dos out of your head, your head really needs to trust that it can stop thinking or worrying about them.

Without a trusted system, it doesn’t work. I would say that for the majority of geeks the road to finding a trusted system is full of obstacles. I would be prepared to go out on a limb and say that most people who have been caught up with the cult of GTD don’t actually practice GTD.

Where is the resistance?

And does there have to be     that much resistance, for a target market of people who most probably have a hefty workload and/or a problem with procrastination?

The problem.

First of all the problem. Let’s take a look at a fictional geek called Geoff, who just happens to be a software developer. His setup is the following:-

  • Home PC
  • Laptop
  • Work PC

He uses Outlook for email, he also has a gmail account, and he is restricted to what websites he can use at work.

Geoff has decided he is getting snowed under and could do with a better way of managing his time (his stuff to do). He has done some research and has decided to give GTD ago. It seems pretty simple and effective, and is completely sold on the idea.

First step – finding the trusted system.

Geoff loves web surfing, he loves finding tools, and his attention span is similar to that of a goldfish. He hops about the internet finding GTD solution after solution, soon learning that finding the perfect GTD solution is like a procrastinator’s wet dream. He continues to put all of his urgent work to one side, and signs up for several of the web applications like Remember the Milk, Backpack and Vitalist and gives them a go. At first they all seems pretty good, they make great use of Ajax and look pretty good too. However not one application is perfect, not one is the right fit for him. Being a geek and a software developer, Geoff knows GTD is pretty simple, he doesn’t want to compromise, and there are still dozens of apps he hasn’t yet tried.

Two weeks later, all of the web GTD accounts are starting to become stale. All the articles on 43folders and lifehacker have been read. Geoff has decided that web GTD apps aren’t for him. He needs the power of a windows application, something that isn’t hidden in the tab of his web browser.

He installs My life Organised and ThinkingRock. Again they both seem pretty good, he decides ThinkingRock is the best fit and decides this time he best give this GTD app a proper try, and to stop procrastinating. He spends the weekend emptying his brain into the application. Monday morning he bungs the application onto a USB stick and goes to work. He gets into the habit of using the app to manage his workload at work, and all is going swimmingly. Until Thursday. Thursday he has left his USB Stick at home. Geoff finds this really frustrating, because his USB stick has his brain on it (and it was only a 1GB stick).

Thursday becomes a bit messy due to not having his brain, and Friday and the weekend are consumed by looking for a more reliable option.

By Monday Geoff realises he has wasted days and days, just surfing for a perfect GTD solution. His boss isn’t happy because he has missed a deadline, and Geoff decides he best knuckle down and stop wasting any more time chasing rainbows.

The End.

The moral of the story? We live in a complicated world, with masses of information thrown at us from all angles. We rely on many devices, from PCs, laptops to PDAs and mobile phones. Not all of them speak the same language.  In the end, there is no perfect GTD solution out there, and there never will be. There are however, plenty of ‘good enough’ solutions that are right for you. It’s more important to find a solution, commit to it and make it work. Once you have a reliable system and are on top of your workload, then there is nothing stopping you from making some time available for looking for smarter solutions, but at least it wont be at the cost of ‘Getting things done’.

ASP.NET Registration with multiple profile providers

When do you decide it is time to give up on using some of the more feature rich ASP.NET controls? When is it easier and/or quicker to code something yourself?

I spent yesterday trying to plug the CreateUserWizard into an e-commerce website. It was very simple to get working and very little code was required. However once I got it working, I then had the interesting task of getting it to produce the required HTML. I edited the templates; getting rid of the entire messy table based HTML, and thought everything was going good. It wasn’t.

When I loaded the registration page up in Firefox, and viewed source, I could see the nice template HTML was surrounded by more hideous HTML that the CreateUserWizard had generated. The hideous HTML was not part of a template so could no be changed.

After googling around I found a very exciting discovery – the ASP.NET CSS Friendly Control Adapters. A set of adapters that can be dropped into an application and will help adapt� the HTML that the ASP.NET controls render, making them CSS friendly.

I wired up the adapters and loaded up my site in Firefox, and then viewed source. Woo hoo, the HTML was fixed, with not a table to be seen.

But then another pothole….

I tried to create a user and hit all sorts of problems. After a bit of debugging, I found out that when the adapters are plugged in, the CreateUserWizard doesn’t quite work the same. My event handlers were not working because the properties such as UserName on the CreateUserWizard were empty! I ended up having to use FindControl to get the values that I needed instead of accessing the properties. I have since found Steven Harman’s excellent blog post – CSS Friendly Control Adapters, CreateUserWizard, and ViewState… Oh My! – that covers this in more detail.

Okay, so I tweaked my code and everything seems to be working again, but from reading more about Steven’s experiences it seems like there may still be some outstanding issues with the CreateUserWizard and the CSS Friendly Control Adapters.
Which brings me to the question at the beginning of the post – When do you decide it is time to give up on using some of the more feature rich ASP.NET controls?

With the CreateUserWizard as an example, there are ways of making it behave properly in terms of the HTML it renders but when do you draw the line? The CSS Friendly Control adapters are a very useful development, but when they affect the behaviour of a component and introduce quite a lot more complexity is it worth the cost?

What have I gained? In this case with the Membership/Profile providers, it would be quite easy to develop a bespoke control.

Any thoughts?