Archive for July, 2009

h1

Simple, complex and difficult

July 29, 2009

As a discipline IT systems lifecycle can be characterised as simple, complex and difficult.

  • Simple to explain.
  • Complex to commission and maintain because the systems it monitors and controls are increasingly complex and dynamic.
  • Difficult to do because IT system lifecycle management is much more than a set of process and tools. It involves many people, each with their own motivation and agenda, cooperating to maintain many components that interact in a complex web to provide IT services to users.

Read the rest of this entry ?

h1

Analysis Paralysis

July 27, 2009

This is something to which I have been a victim in the past (and, if I am honest, occasionally I still fall prey to now); analysis paralysis, the inability to do because we feel uncertain about which of several alternative courses of action to take. Read the rest of this entry ?

h1

Apollo 11 mission’s 40th Anniversary: One large step for open source code…

July 22, 2009

Want to look at code management ‘old school’? Look no further.

To commemorate this event the Command Module code (Comanche054) and Lunar Module code (Luminary099) have been transcribed from scanned images to run on yaAGC (an open source AGC emulator) by the Virtual AGC and AGS project.

via Google Code Blog: Apollo 11 mission’s 40th Anniversary: One large step for open source code….

h1

Tool selection: beware the ideal case

July 16, 2009

When selecting tools, for any purpose, beware the ideal case.

When a product is demonstrated, online or directly, the presentation has, generally, been carefully worked out in advance to present to tool in the most favourable light possible. The tool will perform optimally and the use case will appear flawless. Sadly, real life is never an idealised case like this.

It is very easy to be beguiled by these idealised demonstrations, they look so smooth, so simple, and they seem to address some serious development issues. It is difficult to remain objective, especially when the tool seems to offer an easy solution.

Real life is not a demonstration though. It takes time to migrate to a new tool. Tools all have limitations, and you need to know what these are and how likely they are to cause you difficulties.

You need to know how difficult it will be to migrate your existing system over to the new system.  Many tools will demand that you work in a particular way in order to get the best from them, so remember to account for the cost of changing your process too. Are you going to need to sacrifice integration with other tools because the new tool does not integrate properly? Then there are training costs in order to get the whole project trained on the new tool.

Another irritant with many modern tools is the lack of a command line, or an impoverished command line that does not provide access to all of the tools functionality. The move to more and more GUI based interaction presents difficulties for real life scenarios where it is often necessary to integrate tools using scripts. Be careful of the lure of a powerful API. APIs are wonderful to have, but they are seldom as accessible as a command line interface, making quick integrations more difficult to implement.

Do not accept a demo as a reason to change tool. Demand that the tool vendor show your system using their tool. Demand that the vendor show how your system would migrate to their tool. Demand that they show the migration process, how the tool will integrate into your existing process or what you will need to change, evaluate the total cost of migrating to the tool, and so on. Any vendor that refuses, or cannot show the cost benefit of this migration should be dropped immediately from you evaluation. No matter how good the tool looks, no matter how well it performs with an idealised demonstration system, if it cannot perform for your system it is useless.

All of this may seem like I am arguing against looking at new tools, or that I have some downer on new tools in general. I do not. I love new toystools and I think tools should be constantly reviewed in order to make sure we have the best tool for the job. Just remember, the best tool for the job does not necessarily mean the newest tool and the newest tool may come at too high a cost in terms of impact on your environment and process.

h1

Be careful what you wish for…

July 12, 2009

Selecting metrics is difficult. It is difficult because you can end up influencing that which you measure.

People tend, not unreasonably, to do whatever presents them in the best light. Measure someone’s performance as the number of widgets they produce, and they produce more widgets, but without a governing quality measure you could reasonably expect quality to suffer. Add in a quality governed and the number if units produced will drop to that which people can produce and just maintain quality. Pay them more for exceeding the quality criterion and they will eventually reach an optimum point where they produce as many units as they can at a quality they believe optimizes their income. Read the rest of this entry ?

h1

Writing documents that people will read

July 11, 2009

One common complaint, and one to which I have fallen prey in the past, is that “no one reads the documentation”. This seems to be a particular problem for documents recording process and procedure. In this series we will look at how you can write documents that people will actually read.

We will look at every aspect of documentation, including each of the following.

  • Audience — Who are you writing for? And, how to make sure your document appeals to them.
  • Content — What are you writing about?
  • Structure — Creating documents that make finding information easy.
  • Presentation — Creating documents that are appealing.
  • Delivery — The different methods of delivering information.

Many documents focus only on content, neglecting all other aspects. This is in part because many documents are written to the same formula by domain experts. They are not written to be read, they are written to comply with a requirement that they exist.

This series is not interested in producing documents for compliance, it is interested in producing documents that are useful and used. Read the rest of this entry ?

h1

Allowing users to change their own password using svnserve and passwd

July 7, 2009

One recurring issue users bring up when using Subversion’s own svnserve server and its own internal authentication system (password-db) is that users cannot easily change their own passwords.

The problem is that, when using svnserve and the internal password-db, usernames and passwords are held in a plain text file, usually within the conf directory of the repository to which they apply. This file cannot be made read/writeable to all users because this would allow all users to both see and change one other’s passwords (which would be very silly).

The usual solution to this is for the administrator to issue passwords to users and whenever a user wishes to change their password they ask the administrator to do it for them.

Here is a method for allowing users to change their own passwords. In summary, this is a hook script that intercepts requests to delete a special file. When an attempt is made to delete this special file the script assumes that the log message is the new password to be set for the user who requests the deletion. It then changes the entry in the local Subversion password database and rejects the request to delete the file.

Full details are available on the Principia Subversion FAQ.

h1

Selling Configuration Management

July 3, 2009

A common question from people wanting to introduce configuration management into their organisation is, “How do I sell configuration management?” By this they mean, how do I convince the decision maker in my organisation to invest in configuration management?

The short answer should be, “configuration management should sell itself.” After all, if configuration management offers real benefits to an organisation then it should be a simple case of presenting those benefits to the decision makers and they should immediately instigate a programme of work to implement configuration managements. Ah, if only it were that easy.

The fundamental problem faced when selling configuration management is that very few people really understand what it is,  even fewer understand how it works and fewer still understand how to make it work in their organisation. Compounding this problem, there is no agreed definition of configuration management among practitioners. So, from this rather poor position we need to educate the audience before we can begin to sell the product. Read the rest of this entry ?