How to create Technology Roadmaps

I’ve spent the last few months of my time creating technology roadmaps for my employer. These are quite simple roadmaps, and the process I followed to create them was:

  1. Create or select a reference architecture – this will define the categories used in your roadmap, for instance, we should have an application server category, and of that, we should break that down into Java application servers, and .NET application servers;
  2. Identify technologies for each category – research and discover what technologies are in use;
  3. Define the lifecycle stage for each technology – determine which stage of the lifecycle the technology is in, a proposed technology, a budgeted and agreed technology, an approved technology, an end of life technology, or an out of support technology;

That’s it. Review every three or six months, and make sure the roadmaps are internally consistent. For example, since IIS 7.5 is only available for Windows Server 2008 R2, if you’re saying you’re replacing Windows Server 2003 with Windows Server 2008 R2, then by defacto you’ll be replacing IIS 6 with IIS 7.5.

A surefire way to let business drive IT projects

I’ve been thinking a bit about good methods to help the business (referred to as anyone that’s not IT) drive IT projects.

So far the method I’ve observed goes along the lines of:

1. Define the problem. Sounds like an obvious step, but in IT we’re all too keen to jump to solutions. A problem isn’t that we need an ERP or a CRM system, any more than not having a hamburger is a problem. The real problem is you’re hungry. Or for the first two examples, you want to manage the resources of an organisation efficiently, or you want to track all your interactions with your customers across multiple communication channels and plan marketing campaigns.

With the problem defined we can move on to…

2. Goals. Goals are visionary statements that frame any potential solution. Think of them as solution boundaries, where the solution must sit inside. A solution scope I guess. One could be more concise information for managers. These goals are intangible and immeasurable in the sense that it’s difficult to know if you’ve achieved them, but without them your solution might not fit into the strategic direction of the enterprise. No point coming up with a mobile solution if there’s no need for it.

3. Business objectives. These are finite measurable objectives that sum up how we know the problem has been solved in concrete terms. 100% of senior management reports come from the data warehouse. Customers will be able to purchase items from mobile devices. All absolutely measurable. No ambiguity, not for the business who can say that these objectives if met will meet the current needs of the business, nor for IT and the vendors who have no wriggle room in terms of what they’re delivering at the other side. As you can see, scope at this point if already defined, and while things could change within the boundary, if work doesn’t directly support the solving of the objective then it shouldn’t be in the project.

4. Functional use cases. The creation of these further tighten your scope and clarify exactly how people, process, and technology will change to meet the business objectives. Simple use case diagrams are great for communicating with the business the functions and processes within the solution, and we haven’t even talked any technology yet. After all, the solution could be solved by just a process change. Once all the functional use cases required to meet the business objective have been agreed to by the business, the scope is effectively defined. Then these use cases in the diagram can each be turned into fully dressed use cases with the standard process, exceptions, inputs and outputs, and all information a good use case should have. An example could be Load Information or Create Campaign.

5. Business requirements. With our functionality defined and processes sorted, we can think about what technological requirements are required to achieve the use cases. Creating a campaign will require software that has the ability to create a campaign. But we’re not focusing on a specific technology, and so the business requirements must be technology agnostic, and not just written as a laundry list of features of a particular software suite you have in mind. Because that would still be jumping to a solution ahead of time.

6. Solutions architecture. This really defines the non functional requirements of the solution, and is likely to start formulating a solution to meet the objectives. This would include aspects of solution analysis and design, and takes in the input of business requirements and comes up with a solution design. Sure some of the implementation gaps may not be filed, but by this point in time a solution had now been defined and can be traced all the way back to the problem.

From here there’s the normal software implementation life cycle, including change and release management procedures. By following this process we can ensure that we’re solving business problems in a clearly defined traceable manner that the business can understand and accept.

The Launch of Kenning Innovative

I’ve been pretty busy at work doing data migrations here, and test plans there, and so the business can seem a little neglected…

But I’ve been inspired by a few different events:

  • Watching the New Zealand version of The ApprenticeĀ  with 21 year olds battling others;
  • Seeing a friend of mine go from some CDs to launching a profit-making dance party;
  • Wondering what’s happening with my company, and will I be a millionaire before 30?

And so after a bit of inspiring, I decided to launch a new research brand where my new ideas can go under. Here it is:

I hope you like it. I’ve been thinking about a research brand for quite some time, and kicked around some ideas:

  • Kenning Internet Labs
  • Kenning Innovation Labs
  • Kenning Research
  • Herald Internet Labs
  • Herald Innovation Lab

All floating around the ideas of research and innovation. I even looked at companies like Aperture Science and Computer Associates. In the end, I came up with Kenning Innovative. I thought about Kenning Innovation, but then decided on Innovative because Kenning is innovative, not just the results of the company.

Anyways, the first product to be branded is the Resourcer prototype at http://goresourcer.kenning.co.nz. I’ll keep you in the loop as more products are added.

A fond farewell and a new beginning

I have been working for the Ministry of Education over the past year now working in the area of Identity Management.

So a big thank you to all those people who made a different in my professional and social life, you will all be missed, as will the fine city of Wellington.

I am now moving to Hamilton to take up a position as a Systems Analyst at the Hamilton City Council, and looking increasingly into how organisations manage their identity data.

85% of IT projects fail. I know why.

We’re all being suckered here, and not just in IT. Why does every house ever built seem to go over budget and over time?

  1. People thinking they can be Project Managers;
  2. People not knowing the true cost of change;
  3. Not having enough money to get the job done.

These problems extend to IT quite easily.

If we think of all the IT projects that fail (or if we want to feel better, think of the 15% that are successful), we must examine what it means to fail:

  1. Over time.
  2. Over budget.
  3. Didn’t deliver what the customer wanted.

The first two can be stamped out with a good Project Manager. But the real problem is number three, not delivering what the customer wanted.

Sometimes this is accidental, and sometimes this is on purpose.

One example is RFQs. Companies make a bid on IT work using an RFQ. There are two methods a company can approach this:

  1. Include as much detail as possible, and create as detailed as possible quotes. This can take a lot of time, make you seem unresponsive to requests, and have quotes that far exceed competitors (more on this in a bit).
  2. Include as little as required to gain the RFC. Externalise costs to things outside the scope of the RFC. This means you can reply quickly in the RFC process, and have quotes that appear better value than competitors.

Now lets examine the outcomes:

  1. By having high quality Project Managers, a robust change control process (that captures the true cost of change), you have a project that can be delivered on time and on budget. Depending on how good the requirements gathering was at the start, and taking into account the shifting target of meeting customer requirements now (and in the future), you might have a successful project.
  2. Or by not exploring the true scope of the project, you can easily get overwhelmed in trying to deliver a solution using nothing by elbow grease and hard work. As costs rack up, these are presented to the customer as unforeseen costs that are not typical of a project, and hence are outside the RFQ and must be paid for separately. In the end morale slips, and you have a project that met some requirements at some point in time, using most of all of the budget and time available (if not more).

So why would anybody pick option two, when it leads to near certain failure?

Greed. When we were examining those RFQs in the beginning, we were seduced by the quotes given to us, without really thinking about the true total cost of ownership. And we couldn’t since we weren’t provided with the true cost of the project by the bidders. And they didn’t do that so they could get more business. And businesses don’t punish vendors as they just see IT projects as being inherently risky.

They’re not. We’re just being taken by a ride by all the people in the system, leading me to believe that this is a systematic flaw, not just a specific component.

To fix:

  1. Businesses need to better understand their requirements. Seriously. Seriously. I’m not kidding. Gather the requirements for now. Gather the requirements for the future. Think of all the possibilities for the process. Is everything covered?
  2. As requirements change throughout the project, scope the change, go through a formal change control process (not just lip service either), cost the change in terms of resources and time, take the value of the benefits to the business and ask, is it worth risking all this (the risk you’ve calculated, and the cost) for the change to meet the requirement?
  3. Push your vendors for accurate quotes. Maybe this needs to be enforced through contracts. Sure, you didn’t foresee that the SCSI drivers were only for Windows not Linux. Sorry, that’s not a valid reason to not include the cost of having an alternative driver solution.

Finally, lets not accept that IT projects should fail. They should never fail. Never fail 85% of the time, never fail 0% of the time. I refuse to accept that projects should fail in this manner, and if they’re always failing, then we’re doing something wrong.

My theory about becoming rich

I’ve been thinking about what money is, and have come to this conclusion…

There is no link between working hard and being rich.

This sounds like a crazy statement to say, but bear with me. I’ve known people that have worked hard all their life, and yet, still aren’t rich. So how do people get rich?

Well you need to look at what money represents. Money represents desire of the community. So if you have something that is highly desired by the community you’re in, then you’ll have a lot of money.

So let’s explore this. If you work for a fast food store hard, you’ll never be rich. Why? Because it doesn’t pay a lot. But why doesn’t it pay a lot? Because the work you’re doing isn’t unique, and doesn’t require highly innovative skills. And because anyone can do it, then you’re easily replaceable, and hence the community’s desire for you isn’t very high, and neither are your wages.

Now look at say an Internet Celebrity that is rich. Often they get rich because they featured in a meme, which is like something of interest in the internet, such as the Star Wars Kid. Memes reflect the desire of the community, which is people on the internet, who watch the video, and click on ads, and hence pay the people in the meme (sometimes). The people in the meme didn’t have to work hard all their life, they just had to have something highly desired to the community, which is their video for instance.

So if we take a peice of land and a house that’s worth $2 million dollars, then that’s something that has obvious value because it’s desired. People want land to live from, and a house to live in. And you can see the work (or effort) that went into that house.

But if the person who earned $2 million from a meme bought that house, you would have to ask, how is that fair? How does a person who made a video of themselves twirling around a stick equal all the hard work and effort that went into building a house, and purchasing the land?

Desire of the community.

So what does this all mean? If you want to be rich, you need to be dealing in things that are highly desired by the community you’re in. Diamonds are highly desired to wealthy people, and so if you have them you’re rich. Memes are highly desired in the Internet, so if you have them you’re rich. Food’s highly desired to people if they don’t have any, so if you have them you’re rich.

And so I’m focusing on creating software that’s highly desired to large enterprises. Software that will save them millions of dollars and man-hours. By focusing on this, I can sell that software for a large amount of money, regardless of the amount of hard work that went into the software.

The software is of course, Resourcer.

My competitor: Yammer

So I’ve found my first near direct, and biggest competitor: Yammer. Yammer is the enterprise version of Twitter so to speak, it allows you to micro-blog to a group of people within the same domain name.

Similarities between Resourcer and Yammer:

  1. Micro-blogging to corporate audiences

Differences between Resourcer and Yammer:

  1. Resourcer is a workforce utilization reporting and modelling tool.
  2. Yammer is a corporate micro-blogging tool.
  3. Resourcer doesn’t limit you to people within a certain domain name, and uses powerful organisation and group functionality that lets you create virtual organisations and groups that cross domains, i.e. projects involving multiple companies.
  4. Yammer reminds me of a chat room, except there are multiple ways of sending and receiving messages.
  5. Resourcer gives managers powerful reporting tools that allow you to view the productivity of your workforce.

As always, if you’re doing something right, then there are going to be multiple companies doing it. When I first heard about Yammer (thank you Jo), I panicked. And then when I saw they won the Techcrunch 50, I panicked some more.

But there are some positives. They launched nine days ago, and have 50,000 users already. As always, first mover advantage is significant, and often turns into the sustainable competitive advantage of a user base. Once a company decides to settle on Yammer or Resourcer, that’s a decision that’ll be made once. Hence now the battle will need to be done company to company.

And so the updated road map:

  1. Finish linking core application functionality with database.
  2. Gather requirements and building secondary application functionality.
  3. Finish information type pages.
  4. Tidy pages, do quality assurance, move project into Beta stage and open logins to other people.
  5. Write business plan.
  6. Contact angel investors.
  7. Move application onto framework, either Seagull or Silverstripe.
  8. Tidy pages, do quality assurance, move project and beta data/logins onto Gold release.
  9. Publish API.
  10. Advertise.

Free Sun Access Manager training

If you’re deploying the Sun Identity Management suite in a complex deployment, then check out Sun’s Free OpenSSO training. This training gives you a workbook and a virtual machine, and walks you through the process of:

  1. Setting up Apache Tomcat 6
  2. Enabling HTTPS support on Tomcat
  3. Setting up Sun Java Web Server 7 as a load balancer
  4. Deploying OpenSSO to Tomcat
  5. Setting up Session failover
  6. Setting up Sun Java Web Server 7 and Glassfish
  7. Installing Sun Access Manager Policy Agents to protect the above web servers

It’s a complex workbook (and there are a few issues, both with the workbook and the technology), but it’s free training, and gives you a glance of what to expect from Sun Access Manager 8.0.

Why it’s better to be a Programmer than a Business Analyst

I’m a Business Analyst so I don’t say this lightly, but I believe it’s better to be a Programmer than to be a Business Analyst.

A Programmer creates code that has direct value to the end user. A Business Analyst gathers requirements, creates process flow diagrams, does testing, but all this is a supporting act.

No matter how great an Architect is in the building world, without Builders, an Architect’s vision would be … just a vision. But a Builder could create a physical presence regardless of whether an Architect was there or not. Sure, it may not be as good, or safe, or well thought out, but it would be something without a plan, rather than a plan that leads to nothing.

One of my great regrets is that I am not a better Programmer. I may be a better Communicator, Entrepreneur, Manager, and Leader than a Programmer, but without code, it all for nought.

JD Edwards vs. Siebel vs. Sun Access Manager vs. Oracle Identity Manager

What to specialise in. Young IT professionals are spoiled for choice. There are a hundred and one different IT applications out there from Identity Management, to Enterprise Resource Planning, to Customer Relationship Management, and a thousand and one other categories in between.

However, I doubt there’s enough time in the day to specialise in *all* these applications, let alone get experience to implement them successfully. And so, what to pick?

I think over-specialising in a particular application makes you like a peak athlete – great at what you do, not so great at anything else. If you’ve spent five years becoming the master in JD Edwards ERP, you’re probably not going to know too much about Siebel CRM, let alone Sun’s Identity Management Suite.

Perhaps it’s better to focus on specialising in a particular area of interest, whether that’s horizontally by knowing all about all the different Customer Relationship Management products, whether from Oracle, or Microsoft, or SugarCRM – or specialising vertically by knowing the chain of software used in a particular industry say a Telecommunications-specific version of Siebel, and Telecommunications-specific versions of Integration software, of Radio Frequency software etc.

One great thing is, most of this software is freely available for you to download and learn from. Sun’s Identity Management Suite is free (as in beer), Oracle’s Identity Management Suite is free (as in development license), and this is an increasing trend which is positive for students. So now there’s no excuse (apart from hardware) to go out, learn these products, and become paid one of these highly paid consultants!