Saturday, 7 February 2009
Vertical and Horizontal Streams
I use the term vertical to mean a business-driven set of requirements, such as Sales, Customer Services, Marketing. Horizontal means a supporting capability such as Data Warehouse, Reporting, Website, Monitoring. The reason that the terms vertical and horizontal is descriptive is that the vertical streams are trying to achieve something in business terms, and they depend on many of the horizontals to deliver this.
For example, if the business requirement from Sales is to sell a product over the web channel, and report on the conversion rates, the there will be requirements on the Website, Monitoring, Data Warehouse and Reporting. My approach would be to drive the requirements from the vertical streams, but don't try and work out the supporting infrastructure in these streams, but just put requirements against the horizontal streams/capabilities that you need to deliver something for you. You can go through all the vertical streams just solving the business problems, and carefully tracking all the requirements and dependencies you have against the horizontals. At the end of this process, each horizontal stream/capability should have a good description of what they need to deliver to support the business. Once these streams have a solution in place, they can communicate any constraints, opportunities etc back to the vertical streams so they can be tweaked to make best use of the available infrastructure.
In addition, you have autonomous capabilities and composite capabilities. If you do a business capability map, once you get to a certain level, you will see that there are many common capabilities that are required as part of many different high level business requirements. eg "Make Payment" or "Authenticate Customer". In SOA terms, these can be your autonomous services, and many different business requirements are built as orchestrations across these. A good BPM product helps here, such as TIBCO.
Saturday, 27 September 2008
Getting Things Done
What is GTD?
Getting Things Done (GTD) is a way to get organised so that you can cope with more stuff, efficiently and without too much stress. It doesn't specify an implementation, but provides a framework and principles for you to apply in the way that suits you.
And you're writing this blog...why?
There are loads of resources on the web around GTD, so I'm not trying to duplicate this. However, I just want to capture the way i'm approaching GTD, and the logic behind it. I also want to reference the best resources I've found.
The Approach
OK, so I've read the book Getting Things Done by David Allen - a good start. But what tools should I use for my implementation? The initial temptation is to go all high tech and start evaluating PDAs and smart phones, GTD applications and strategies for synchronizing and communicating between them. I quickly caught myself though, as I recognised the fact I was getting embroiled in all of this complexity almost as an end in its own right. I decided on the following principle:
Start with the simplest and lowest-tech tools possible, and only get more advanced if the advantages of doing so have been illustrated clearly through practice....so I got some cards, some clips, a notebook and some pencils.
Inboxes
I think I need several inboxes to be available at different times.
- Work - away from computer
- Work - at computer
- Home
- Out
Work - away from computer
My notebook is my inbox for meetings, workshops etc - where it seems far easier to jot everything down rather than battling to enter info into a PDA, iPhone, laptop etc. I think a big issue that still remains with all these tools is ease and speed of data entry. I find it the simplest, cheapest and quickest solution to write things down by hand.
Work - at computer
At my computer, my natural inbox is my email inbox. This leads to the first exception to my low-tech rule because, at work, my calendar and inbox are already in Outlook and everything works quite efficiently and simply there. Therefore things in Outlook stay in Outlook unless there's a good reason to jot them down in my notebook. I've created @Waiting For, @Actions, @Read, @Someday/Maybe and Reference folders to move emails to as I process my Inbox. My aim is to move every email into one of these folders, the calendar or trash so that my Inbox is reguarly emptied. Also, I've added a simple rule in Outlook to put any email that I've cc'd to myself into the @Waiting For folder.
Home
Google Calendar and Gmail (with Tasks. Integration between Gmail and Google Calendar is useful, as are labels in Gmail.
Out
Mobile Phones - simple todo list for actions and "notes" capture to collect stuff coming in.
Whenever I'm back at my desk, I process the inboxes (Outlook inbox and notebook), removing and progressing the entries rather than leaving them in 'in'.
Calendars
My work calendar is Outlook, which works well apart from access when I'm not at my desk (no Blackberry...) . I think I need a personal calendar seperate from my work one mainly because its not particuarly quick or easy to access my work calendar at Home or Out. I'm undecided about my personal calendar. The two options I'm considering are Google Calendar and a paper-based diary. (update: decided on Google Calendar)
Monday, 10 December 2007
Vision, People, Tools, Processes
Vision
Before you can achieve a goal, you have to be really clear on what that goal is. You have to know your priorities, and where you are going to focus your effort. You need a clear vision of where you are now, and where you want to get to and what is required to make that journey. This vision needs to be clear throughout the organisation.
People
To achieve anything, you need the right people, with the right skills, attitude and approach. In my experience, it is far more effective to have a few really good people rather than lots of average people. On the other side of the coin, if someone is really intelligent, but doesn't have the right attitude, its usually better without them.
Tools
Its a terrible waste to have good people, but then not give them the tools to do their jobs effectively. You need to make them as efficient as possible by making sure you have the key tools in place. These don't have to be expensive - many are free - but they do have to be best-of-breed, performant and reliable. One key example is that you should give your developers high spec PCs, else they can be working at a fraction of their capacity, be frustrated and have low morale.
Processes
Installing appropriate processes is so important. You can have the vision, people and the tools, but without the right processes, it can descend into chaos. There is generally resistence to putting in processes, but if done right, they make things work so much more effectively, people grow to depend on them.