Tuesday, 28 July 2009

Process maturity and value

Process maturity models must be supported by a simple view of how value is delivered.

The Capability Maturity Model (CMM) is the best-known process maturity model. It was initially developed to evaluate software providers for US government contracts.

The CMM defines five levels of maturity:
  • Level 1 - initial - no defined processes
  • Level 2 - repeatable - the organisation generally produces repeatable results
  • Level 3 - defined - the organisation has defined standard processes
  • Level 4 - managed - the organisation uses metrics to manage processes
  • Level 5 - optimized - the organisation optimises and improves processes
In theory, organisations working at higher maturity levels are more efficient and have fewer risks.

CMM was initially targeted at software development. Now there are maturity models for nearly every specialism in IT, such as project management, people management, service delivery, information security, enterprise architecture, and so forth.

Process maturity models are useful for activities that have clear objectives and which are repeatable, such as programming to specification, or day-to-day service delivery. However, process maturity models have many limitations:
  • Process maturity models focus on how things should be done, not what should be done. The focus on how, not what, is less useful when objectives are not clear.
  • Process maturity models use institutionalised knowledge. Many situations need innovation and personal experience, not just institutionalised knowledge.
  • Defined processes can lead to inappropriate solutions. For example, organisations with defined processes for software development tend to see software development and the solution to every problem.
  • Defined processes underplay the softer side of management. Success depends more on getting close to the business customer than it does on efficiently churning out code.
Processes try to deal with these limitations. There are processes for gathering requirements, designing solutions, and communicating with stakeholders. But the very fact that these are presented within a process framework makes them subservient to the framework, as if they were just part of the bureaucracy involved in getting on with the real work of programming, or whatever.

I am not against process maturity models, but they are just a tool for delivering value. If you can not see the connection between your processes and value delivery, you can not deliver value.

One way of making the connection is to start with a simple, generic view of how value is delivered. Something like:
  • Describe simply what are you trying to achieve.
  • Understanding what you really must do to achieve this. This is not "list all the tasks that you can think of putting on a project plan", but is about the mechanisms that must engage to deliver value.
  • Break down the required work into manageable chunks.
  • Execute the work as proficiently and efficiently as possible.
If you can see how your processes achieve this, albeit in a better defined and more formal way, then there is a good chance your processes will deliver value.

But if your processes are obsessed with formalities and obscure the underlying value mechanism, then the processes, however well-defined and mature they may be, can not deliver value.

© Copyright 2009 Minimal IT Ltd. See the Minimal IT website for the original newsletter and copyright information.

Tuesday, 21 July 2009

The rise of the netbook - power to the people

Netbook computers are fast becoming mainstream. Their success shows the power consumers have over the major technology providers.

Netbook computers are small, portable, cheap computers which are optimised for simple internet-based tasks such as surfing the web and email.

The rise of the netbook has been meteoric. A year ago, in mid-2008, they were a rarity. Now there is a huge selection in all the major retailers.

The prehistory of the netbook can be traced back to the One Laptop Per Child (OLPC) project and early small computers by Psion and others. But the first widely sold netbook was the Asus EEE PC, which launched in 2007.

Because they were not powerful, early netbooks from Asus and others ran variants of Linux. Microsoft had announced the end of Windows XP, and netbooks were simply incapable of meeting the demands of Windows Vista.

The Asus EEE PC was so successful that all the major technology suppliers had to take notice. Microsoft, seeing the rise of Linux netbooks as a threat, resurrected Windows XP and licenses it at low cost for netbooks. All the major PC suppliers have brought out netbook models. There are now a huge variety of netbooks on sale, nearly all of them running Windows XP.

Netbook hardware has improved. Early netbooks had 7" to 9" screens and tiny keyboards. Most models now have a 10" screen, and a keyboard which is almost as big as a typical laptop, or in some cases bigger. By my measurements, the width of the main keys on the 10" Toshiba NB200 netbook is greater than on the 15" Toshiba A100 laptop.

Battery life has also improved. Many models now have 6-9 hours battery life, long enough to use all day without a charge.

Netbooks have become mainstream very rapidly. When I bought my first netbook at the end of last year (an Asus EEE PC 901 running Linux), they were still more of a geeky toy than a serious computer. Only half a year later, I am in the process of buying one for my son's school work (likely to be a Toshiba NB200 running Windows XP), and the shops are full of them. Netbooks are still less powerful than "proper" laptops, but many people do not need that power and are looking at netbooks as a convenient alternative to a laptop.

This trend will continue. Netbooks have shown that people demand low cost and portability, and competition will force the major suppliers to meet that demand. In the not too distant future, the distinction between netbooks and "proper" laptops will disappear. There will be cheap, portable computers of all sizes, with enough power for most tasks.

For years, Microsoft and PC manufacturers have been telling consumers that what they need is more advanced operating systems and faster processors. But netbooks have shown that the consumer can, and will, push back with they really want - low cost and convenience. If there is a moral to this tale, it is that the consumer is king.

© Copyright 2009 Minimal IT Ltd. See the Minimal IT website for the original newsletter and copyright information.

Tuesday, 14 July 2009

Power*Architect

Power*Architect is a free, open-source data modelling and database design tool that is easy to use and packed with features.

I am working on a data warehousing project, and need to produce data models and database designs. It is a small project, and we can not justify enterprise-class tools, such as IBM Rational System Architect or CA Erwin.

We thought we would use a drawing tool such as Microsoft Visio, but then we came across Power*Architect from SQL Power, which is free and open-source.

Power*Architect is a data modelling and database design tool. Like all such tools, you create a graphical model of your data and define tables, columns and relationships.

Power*Architect does much more than just draw pictures. It generates databases from your design, and supports all the popular databases such as Oracle, SQL Server, DB2 and MySQL. It captures existing database structures so that you can view and change them. It compares databases and models, and generates the scripts required to modify one database to match another, which is very useful during maintenance.

We have been using Power*Architect for a few days. It is very easy to use, and very reliable. It is good at layout, and has easy-to-use print features and reporting tools. We have used it for both logical data modelling, and for capturing existing database structures. We have tested the database creation and modification tools.

Power*Architect does not require complicated installation procedures. It is written in Java, and can be run on any platform. There is a good help system. The model is held in a simple file, in XML format, so you can get at the underlying data if you need to.

There are some drawbacks. Power*Architect does not distinguish between logical and physical models. It does not support sub typing or exclusive links. It only uses physical data types. There is no way of suppressing the posting of foreign keys, which makes models less readable. But we can work around all of these.

Power*Architect has many features that we have not yet tried. It supports Online Analytical Processing (OLAP) designs often used in data warehousing. It maps between source and target databases and generates definitions for Extract Transform and Load (ETL) tools. It profiles data in existing databases, to collect statistics about table sizes and key values.

Overall, Power*Architect is an excellent tool. Although we started by looking for a simple drawing tool, Power*Architect has many other features that will help us in this project.

SQL Power provide a number of other tools, both paid-for and free. The other free tools are Wabit, a reporting tool, and DQguru, a data cleansing tool. SQL Power is also planning a server-based version of Power*Architect, which will make group collaboration easier.

I am hugely impressed by Power*Architect. If you are looking for an easy-to-use, feature-rich data modelling and database design tool, have a look at Power*Architect. It competes well against other tools, and has the great advantage of being free. And it's certainly much better for data modelling than Visio.

© Copyright 2009 Minimal IT Ltd. See the Minimal IT website for the original newsletter and copyright information.

Tuesday, 7 July 2009

How does your garden grow?

Like gardening, effective IT depends more on constant attention than it does on grand designs.

I am a very keen gardener, and I am fortunate enough to have a fair-sized garden.

My love of gardening is a big influence on my ideas about IT. Many see IT as an engineering discipline, but I see large-scale IT more like tending a garden.

Although I appear to potter aimlessly in my garden, I am actually very objective. I know what I want from my garden: a pleasant space for the family, somewhere for the children to play, to grow interesting plants, and to produce fruit and vegetables.

I have attended garden design courses, but I am not much of a garden designer. I just don't understand the aesthetics. I focus on the big things, like trees and hedges, and making sure the structure of the garden meets my needs. My garden would not win any fashion prizes.

I am realistic about how much change I can carry out at once. Garden make-overs are entertaining on television, but you can not change all of a large garden in one go.

Instead, I have a vision of how I want the garden to evolve. I carry out small pieces of work that bring me incrementally closer to my vision. I only do big projects, like levelling or creating new borders, when I really need to.

I have a simple rule when I work in the garden. At the end of every day, the garden must be neat and usable and all tools put away. This sometimes slows me down, but it lets me fit the gardening around other priorities without the garden looking like a building site.

Gardens are dynamic, continuously changing. Gardening involves fighting nature and entropy, continuously re-imposing my will. The garden demands continuous attention to remove the weeds, clear our dead and overgrown plants, and keep the soil workable. If I let it go for too long, I know it will be more work later.

Other people approach their gardens differently. Some are more design-lead. Some outsource their gardens to a maintenance service. Everybody has different objectives and priorities. Some people just do not care. But for me, for my objectives, my approach to gardening works. It lets me develop and maintain a large garden that meets my requirements with minimum effort, cost, disruption and stress.

The parallels with IT are obvious. Be clear about objectives. Focus architecture and design on meeting the main objectives simply, without getting carried away with the latest fashions. Set a clear direction, and run small projects to move towards it incrementally, while sustaining business as usual. Maintain systems continuously, and decommission systems completely when they come to the end of their useful life.

Other people have different ideas about IT. Some are more keen on trends in IT architecture. Some outsource everything. Some rely on huge transformation programmes. Some are less convinced of the value of preventative maintenance. Some appear not to care. But as I potter around my garden, I muse that they have got it wrong, and that there are easier, cheaper and more effective ways to run IT.

© Copyright 2009 Minimal IT Ltd. See the Minimal IT website for the original newsletter and copyright information.