Serio Blog

Wednesday, 20 Dec 2006

This post is for a customer fresh from an ITIL foundation course, looking for guidance or help with getting started with a Configuration Management Database (CMDB).

I’ll start with a reminder of what the CMDB is. It is a documentation for your IT infrastructure, describing how various parts (called Configuration Items, CIs) fit together to deliver services to customers. It typically shows dependencies between CIs, and carries a lot of business-related information in addition to the technical data you would expect.

It is an important underpinning resource, used in Change Management for example for performing important tasks such as impact assessment.

There is another discipline sometimes confused with this – Asset Management. This is where you keep lists of computers for reasons such as accounting purposes. In Asset Management you have lists of equipment, but these are typically not linked together – so you can’t use this data to understand how services are delivered to users.

Having given that definition, let’s come back to the subject of this which is getting started with a CMDB.

I’ll write in the form of Do’s and Don’t.

Do: Create your CMDB as part of a wider IT service management programme. In other words, what is your level of IT service management process maturity? Do you have an effective Incident Management process for example?

Do: Think very carefully how you will keep the data up-to-date. This may be your biggest challenge. The answer is to use Change Management to ensure that the data you are spending so much time to create is as accurate now as in six months.

Don’t: Necessarily start with desktop data. One thing we’ve noticed is a tendency for desktop equipment to be the first data entered into the CMDB, but you should ask yourself, particularly at the start ‘is this right?’. I’m not saying this is wrong, but just to stop and ask the question ‘what do I want to be in the CMDB and what is the best place to start’. I’ve blogged about this before in ‘What should be in the CMDB’ but you may want to start with your server infrastructure, particularly if the most important services you deliver to customers are server-based.

Do: Create your data in phases. If you are creating data for a complex infrastructure, one technique I’ve used is to isolate different systems and infrastructure (I’ll call these sub-domains), and to then concentrate on creating a representative model in the CMDB for each sub-domain. Doing this gives you a series of deliverable milestones, and allows you to perform checks and validation on each sub-domain as it completes. You can create sub-domains based in services offered to users, or physical location – whatever makes sense to you.

Don’t: Start before agreeing with interested parties what data will be held. For example, are you going to store warranty information (usually yes)?

Do: Be clear about who owns the data. Usually this will be your Configuration Manager, but it is important that the data has an ‘owner’ who will be responsible for it’s integrity and quality.

Don’t: Leave the ownership of the data to a group or to ‘the team’.

Don't: Limit what is in the CMDB to hardware Items. Instead, remember that CIs can be virtual, representing important entities such as database server instances, software firewalls and web servers.

Monday, 18 Dec 2006

This post is about a really useful feature of Serio – Reminders.

As you might expect, Reminders are there to remind you to do things. You might set them on an Incident to remind you to call a supplier about an Incident they are handling for you, or to remind you about a customer meeting. You can set as many Reminders as you want on any given Incident, Problem or Change (and cancel them independently also).

When Reminders become due, you can be notified in the following ways:

  • An entry in the Serio Journal
  • A Serio Message
  • A Text Message
  • An EMail

Reminders have a number of nice little touches. One of these is that by default, if an Incident on which outstanding Reminders is resolved, the reminders are cleared (there is a setting to change this however).

You can also place Reminders independently of Incidents. All you need to do is click the ‘Reminders’ chapter – this also shows you all the Reminders you have pending.

You set and cancel Reminders by taking Actions. To set a Reminder, your Serio Administrator needs to have done a little set-up beforehand. He or she should have created some standard Reminder Types, and then created two Actions for you – one to add a Reminder, the other to allow you to cancel it later, if you change your mind.

Friday, 15 Dec 2006

Integrating Serio with other systems is almost always not a technology issue (though there are always challenges in this area to overcome). The real issue is the end-to-end process – how the two systems interact, who is responsible where, what status information we need and what management reporting is required. As always, the devil is in the detail and so any integration exercise needs to be handled with careful preparation and managerial planning.

Having said that, this post is about some of the techniques which we’ve used in the past to solve a variety of integration problems. They are in this order: simplest to implement first.


So simple it can be overlooked. Serio can send emails, and you can control precisely the content of those emails through the eDoc editor. Therefore, email is quite a powerful tool for sending information externally.

The kind of information you can include is up to you, but typically there are around 200 information types – such as service level requirements, detailed customer information, CI (Configuration Item) information, Incident data and so on. If you wish, you can use the eDoc editor to encode this in a machine-biased format such as XML for use in situations where structured data is required.

Serio can also read information from emails in structured form, which is useful for automated ticket logging.


You can read (please note, not write) data directly from the Serio database. We’ve blogged about this previously, in the Custom reports blog entries available here, here and here. This is a reasonably straight-forwards task for any SQL programmer, and if you use the Views we provide the job not only gets easier, but there should be little or no problems between releases, as we always try to maintain the Views as stable as possible.


Didn’t know Serio had a scripting language? Well it does, and it’s called SerioScript. SerioScript is amazingly versatile and it can be used to log Incidents and take Actions on Incidents, and can interact with remote technologies in a variety of ways, namely:

  • By using SNMP technology
  • By using custom-written DLL libraries (it can load and use DLLs)
  • By interacting with web systems (it can read web pages, for instance it can log-onto a site, access pages and log-off again)
  • By reading files
  • By running programs with specific arguments (it has a shell-out function)

SerioScript is part of the Command Center tool.

SS COM Libraries

SerioServer is a DCOM server. There are a number of COM objects (called SS [SerioService]) available on this server that can be used to integrate Serio. For example, you can log Incidents, or read Incident data. You can take Actions (such as resolving an Incident) or access customer details. This is probably the most complex because only a programmer could tackle this job, but it is also the most powerful. Our SerioWeb application was implemented using these COM objects.

The SS libraries are licensed, which means they may not be used without an appropriate Serio license.

Have a great weekend, and if it's your christmas party night have a good one!


Wednesday, 13 Dec 2006

This is a follow-up to this post about Incident backlogs.

Firstly, I omitted something very important: contract/agency staff as a possible option (thank you to commentator Robert for pointing that out). Out of all the things I suggested, this is probably the one that has the greatest potential for reducing the backlog – provided you have, or can get, the additional budget you need.

In this post, I’m going to discuss some of the problems that might arise if, like Linda, you are actively attempting to reduce a large Incident backlog.

I’ll start with contract staff, great if you can get the right people – but if you recruit the wrong person it will make the job of the Helpdesk/Service Desk Manager harder. My advice to Linda would be: make sure the spread of technical skills is right (naturally), but look for someone with a positive attitude who can manage themselves without close supervision. Always check references and qualifications carefully (I have experienced a number of fake CVs in my time) and don’t be afraid to set a small technical test. It will be an opportunity to see how the person copes, but if doing this make sure your candidate knows before the interview what you plan to do.

Referring back to my original post, and Linda’s new role, there is potential problem with my suggestions in terms of quality. If we make the focus one of closing Incidents, then we run the risk of overdoing this, and Incidents that are not resolved (even though we think they are) are closed. Although this makes are statistics look better for a short while, it does the business we are trying to serve no good whatsoever.

Therefore we need to take steps to prevent this. Firstly, make sure you communicate to your staff the need for quality and explain the potential problem to them, and remind them from time to time about this as the backlog is reduced.

Secondly, consider introducing a two-stage completion process for Incidents if you don’t already have one. This is where an Incident that an engineer believes to be resolved is set to a Pending Complete stage, and then someone else contacts the customer to ensure that the Incident is actually resolved – and then and only then sets the Incident to Complete. This will increase your workload of course, but has the advantage of stopping premature closure issues much sooner.

Thirdly, monitor the number of Incidents re-opened after closure on a weekly basis.

Tuesday, 12 Dec 2006

Ever been assigned an Incident to resolve, only to find that you have to return to the customer to ask for details that should have been collected when the fault was logged?

Or have you ever looked through the history of an Incident and been baffled by monosyllabic comments describing what was done and how it was resolved.

Low quality descriptions are a bugbear of Helpdesks/Service Desks, wasting time and preventing lessons being learned.

Serio Description Templates can help you improve the quality of Incident and Action descriptions. A Description Template is just what it says, template text for Incident/Action descriptions that you can add to, and that can act as a checklist or script of prompts, so that relevant information isn't missed.

Description Templates in Incident/Change Logging

For example, suppose that you are logging a fault about an application called "Action Reports". To help resolve such faults, several standard pieces of information are important, and you would like to provide a template for the description of any such Incident.

Here's an example Description Template for such an Incident. Notice how it provides prompts, spaces where you can provide extra detail, and options from which you can delete those non-applicable.

"Version of Action Reports: [4.5/5]

Name of affected report:

Operating system: [Windows 2000 WS/Windows XP/Vista]

OS patch level:

Error message (if any):

Application Hung?: [Y/N]

What action was the user taking prior to error occurring:

Any other comments:"

You can set up a number of Description Templates for different types of Incidents. In fact, Description Templates are also very useful for Change Requests, where you often need descriptions to follow a standard pattern.

You can create new Description Templates using SerioAdmin – choose 'New Serio Explorer' from the 'File menu, expand 'Issue' and select 'Description Templates'.

When logging Incidents or Changes, you can select the Description Template that you want to use by clicking the Lookup (…) field to the right of the Description field on the Logging form.

Description Templates for Action Comments

You can also use Description Templates to provide a standard structure for Action Comments. This means that for each type of Action, such as 'Resolve' of 'Phone User', you can prompt your Helpdesk Agents to enter specific standard information. For example, a Description Template for 'Phone User' might look like this:

"Spoke to customer: [y/n]

Message Left: [y/n]

Name of person spoken to:

Details of discussion: "

When combined with Actions, Description Templates are a powerful way of providing standard text for emails. If you find you are writing the same email over and over again, then putting all that standard blurb in a Description Template may be the solution.

Of course, you could set up an eDoc for your standard eMail, but Description Templates have one major advantage – you can modify any of the text within a Description Template when you are sending the eMail. You can even combine Description Templates and eDocs to create eMails containing some standard and some standard-but-modifiable content.

To create a Description Template for a Action Comments, first create the Description Template in SerioAdmin, as described above for Incidents. Then to link the Description Template to the Action Type as follows:

  1. Select 'Issue Actions' > 'Actions' in SerioAdmin.
  2. Open the Action record you are interested, and switch to the 'Action Comments' tab page.
  3. Select the Description Template you created, and save (Ctrl + S).
  4. Try out the Action in SerioClient!

Friday, 08 Dec 2006

I blogged previously for someone taking up a Change Manager role in a small company, and this post is a continuation of that.

The Change Board

Change Managers interact with the Change Board – but don’t be put-off by the civil service sounding title. The Change Board is simply a forum that meets to discuss IT Change on a regular basis. If you are the Change Manager, you may chair these meetings, making sure that each Change presented is fit to be considered (as in having an impact assessment and so on) and then handling the outcome of the meeting afterwards.

Generally, you’ll present Changes for consideration, asking for approval, rejection, clarification or deferment.

The composition of the Change Board varies a lot in my experience. However there is usually someone from the actual user community present. As an example, if you provide a sales order processing system, your Change Board might have the person responsible for the sales function within your company as a member. Involvement like this helps bring a perspective on the value of certain Changes over others, or a user view on timing and implementation, that may otherwise be missing.

The actual running of the meeting varies between organisations. Some hold the meetings monthly, others weekly. Some publish the Changes in advance of the meeting, others simply introduce them when the meeting starts.

Advice for Change Manager: make sure you get the composition of the Change Board right. Make sure you are properly briefed before each meeting – you are sure to have a lot of questions to field. Make sure you record the outcome of the discussions accurately, and confirm your understanding afterwards.


In a smaller company, the Change Manager will become involved in the scheduling of Changes, and will be responsible for liasing with users of IT services that are subject to Change, particularly when downtime is involved. You may find that the Change Board provides you with a ‘window’ into which you can perform implementation tasks, but the actual timing is for you to sort out.

Advice for Change Manager: try to avoid an optimistic estimation of downtime. Be sure to communicate clearly with maintenance is taking place, even if it has been discussed at the Change Board.


You want to make sure that Changes are performed correctly, so one of the functions a new Change Manager performs will be one of review. In a nutshell, what can you learn from the Change just undertaken? Could we have performed it quicker, and with less risk? Did it deliver the benefits we had hoped for?

Advice for Change Manager: Review the completed Change against what you started with, making recommendations for improvement as required.

Owning the Change Process and the Changes

As a Change Manager, you’ll ‘own’ the Changes. You will look for Changes that are late, badly presented or thought out, intervening as and when required.

Advice for Change Manager: even if someone else is handling the Change, you still have some responsibility both for it and the overall smooth running of the Change process.

We've added a much improved search feature to this blog and to the site as a whole, as the old Wordpress search facility didn't cope with the amount of content we have now. You can access this new feature by clicking the 'Search this blog' link on the right.

Thursday, 07 Dec 2006

A customer has recently asked for ‘advice to give to a brand-new Change Manager, and what they are supposed to do’, and that is the subject of this post (possibly inspired by this post?). The organisation in question is quite small, with less than 10 IT staff, but does have a significant IT infrastructure to support. They are part-way through an ITSM programme at their company.

First of all, it is important to ask the question ‘why are we implementing Change Management?’ and if you can, prioritise the answers you give. Don’t recite the ITIL books as a holy text, if your company is experiencing problems or issues around IT change then use these problems as guides and checks for yourselves. For example, you might answer:

‘We implement changes and sometimes they work OK, other times they cause more problems than they solve’

‘We don’t estimate costs and time very well’

‘We seem to choose the worst possible time from the business’s point of view’

….and so on – I’m sure you get the idea. Keep these problems/issues and use them to validate any Change process you implement. After all, it should solve them.

Before giving an advice to our new Change Manager, let’s have a look at some aspects we would expect Change processes to include. I think the bear minimum would be:

  • Impact assessment
  • Reason for implementing the Change
  • Cost of Change, and it’s expected duration
  • Back out plan

This list is not exhaustive. You could also have test plan, acceptance criteria, risk assessment and others – but as a minimum, for a smaller company, this would be my list.

Impact Assessment

This is where the Change Manager writes down the potential impact of the Change. The sort of thing you are interested in is which services to users could be affected, and how long they might be affected for. You might include some assessment of risk into that impact assessment.

If you look at this more closely, you’ll find I’m saying ‘take a change that might be proposed on a particular computer system and assess the impact on the services we offer to users’ – and you need to complete this task with a degree of certainty.

The Change Manager needs to think: how do I do this? The best answer is to use the Configuration Management Data Base (CMDB) – an essential underpinning technology for Change Management. This post is not about the CMDB so if you want to find out more about this use the blog search facility on the right: there are many articles in this blog.

If you don’t have a CMDB then it’s going to be tough work – maybe you’ll be forced to ask some very clever person ‘who knows’ but I’d say that you cannot expect to have reliable Change if this is how you work because people make mistakes. In my experience before I joined Serio this is a very common state of affairs.

Advice for Change Manager: Don’t take on the role without a CMDB unless a CMDB is just around the corner, or you have some other reliable means of assessing impact.

Back-Out Plan

This is your escape route if things go wrong – ‘how to we restore the system if the unexpected happens’. Sometimes your technical staff may say ‘no back out plan is needed’ or ‘no back out plan is possible’.

Advice for Change Manager: Don’t be fobbed-off. Always ask for a realistic and costed back-out plan.

I’ll continue this post later and look at some of the tasks Change Managers typically do.

Suggested white paper: Introduction to ITIL


Monday, 04 Dec 2006

This post has been suggested by someone who I’ve known for a long time as a specialist engineer in IT Service Management (let’s call her Linda), who has recently taken a new role as a Service Delivery Manager in a new company (in other words, she has a new role and a new organisation to cope with). The first thing she noticed on day 1 was that although her company (I’ll call them WidgetCo) has just 600 users and 8 IT staff, there were over 600 outstanding Incidents currently open, some of which had been open since April.

WidgetCo don’t use ITIL or have any concept of IT service management, though no doubt that will change. My friend’s comments to me where: ‘what kind of things can I do to get the outstanding Incident count down to a more manageable level?’

Here are some of the things I’d do, in no particular order.

  1. Warn senior managers, directors and project sponsors about what you’ve found. Give them a quick summary of the problem, indicate what you are going to do and how long, and promise to report back at the end of this period. If you are running reports that show Service Level performance, warn them this and possibly other statistical measures may take a beating while you clear the backlog.
  2. Consider letting your customers or users know what you are doing, perticularly if in the short term there will be an adverse effect on quality of service.
  3. Give you new staff some quality guidelines (Linda has told me not every Incident is logged). This should include
  • Log every Incident
  • If you resolve an Incident, enter it on the system as resolved within 3 hours.
  • Initiate some basic quality measures, such as specifying a decent Incident description and resolution comment
  1. Find out if some of the Incidents you have are actually Requests for Change. You need to make a distinction between Incidents (where some fault to a user service has occurred) and situations where customers are requesting amendments to services (important though those requests might be).
  2. Assess the older Incidents (maybe from April through to August) one by one – you may need to have someone help you with this. Most ITSM tools such as Serio allow custom ‘status’ values to be attached to Incidents (in Serio, Agent Status A and B are examples of this). Create some status values to attach to your Incidents so that you start to get a grip on what the data means. It will also help you to remember which have been reviewed. The following status values my be useful:
  • Outstanding (means reviewed and is still required)
  • Change raised (means this Incident was actually a Change)
  • No longer required (in my experience, you may find some of the Incidents have either been fixed and the system not updated, or something has changed elsewhere and action is no longer required)
  • On hold (means the status is unclear until further review, naturally you wish to keep this down to a small number)
  1. Check your statistics to see who is actually resolving Incidents, in order to see if some staff members are under-utilised. Use this data with caution – those with lower resolutions shown might be dealing with more complex Incidents. Alternatively, they might be the ones who 3 hours per day on ebay.
  2. Stress to your staff the importance of resolving Incidents, and consider posting a ‘daily outstanding’ on the notice board or some other prominent position.
  3. Consider forming a special team to address the ‘Outstanding’ Incidents you’ve identified above. In Linda’s case, this would be unlikely to be a team of more than 2. I stress the word ‘consider’ here – you may choose to leave Incidents with engineers that are currently handling them.
  4. Incidents will be assigned to Teams and Agents. Check the assignment levels – a bar chart may be useful for this. If you see bottlenecks (for example, 300 Incidents assigned to one individual) take action by re-distributing as required.

Some of the suggestions here many lead to other problems. I’ll write about these in a follow-on post.

Friday, 01 Dec 2006

This is another post on the subject of creating your own reports, your can see the last in the series by clicking Writing Custom Reports Part 2.

The previous posts have looked at SQL, introducing some key clauses in the SELECT statement such as ORDER BY and GROUP by.

Now let us look at a problem that comes up very quickly when you are writing a report. I said in this post that databases such as Microsoft SQL Server and Oracle are made up of tables and views – in order words, the database is really a number of tables whose rows and columns contain the data we see on screen and on page.

The important phrase there is ‘number of tables’ meaning there is more than one. Suppose that you want data from one table and another table on the same report? Not one set of data after the other, but mixed together like you only had one table. Here’s what you do.

This is time for the Join. I will not capitalise the Join word, because it is not an actual SQL keyword, instead it really an expression. It also happens to be one of the most important things you have to grasp in SQL, and you will not accomplish much without understanding the Join concept.

The Task

Produce a status report that lists all Active Incidents, shows the reference number, date of logging, and the Team and Agent to whom they are assigned.

Looking at the documentation that comes with the Serio SDK, I can see that Active Incidents, and their date of logging, can be obtained from sv_issue_basics using this query.

select issue_no, issue_logging_date_time

from sv_issue_basics

where issue_status = 'a'

order by issue_no

However there is no assignment data! Again referring to the documentation I see that assignment information is stored in a helpful View called sv_issue_assignment. By Joining this as follows, we get what we need:

select sv_issue_basics.issue_no,




from sv_issue_basics, sv_issue_assignment

where sv_issue_basics.issue_status = 'a'

and sv_issue_basics.issue_id = sv_issue_assignment.issue_id

order by sv_issue_basics.issue_no

Notice that the statement has changed as follows

  • In the FROM clause, where there was one View named, there is now two. This is because we are taking data from two different Views.
  • The naming of things has changed, and we have to say what View a given column is in – for instance, sv_issue_basics.issue_no means the issue_no column in the sv_issue_basics View. It is good practice to do this if you are using two or more Views.
  • A new clause has been added: and sv_issue_basics.issue_id = sv_issue_assignment.issue_id. This is where we tell the database what data is common between the two tables, so that the database can make a ‘join’ – a new row. In this case both tables contain an issue_id, and we can use that for the join.

This statement satisfies the task we have in set ourselves.

I will continue this series of posts next week, hopefully with an open-source report writer at we'll see how we can use what we have learned.