Friday, 18 May 2007

ITIL

Well having spent the last three days in a classroom learning about ITIL, I thought it was time to present a sensible review of what ITIL means and what it could do for an organisation, there will I am sure be a less sensible review of ITIL and what it means for my current company, over at my less sensible blog, in a day or two.

The first question is obviously, What is ITIL, well ITIL is simply a set of best practices that any company can use, they don't have to use them all, in fact they could only use one part and ignore the rest, and that would still likely give them some benefits. ITIL covers the varied aspects of IT Service Management, from the poor people on the Service Desk, through the 3rd Line support guys all the way through to the Finance guys, the guys building your Business Continuity Plans etc. Most of the ideas are really simple common sense, but for many organisations, systems were put in place 10-20 years ago, have evolved and in many cases the technology whilst moving on has always been updated with an aim of keeping things the same rather than really making great improvements.
The biggest concept that some on our course struggled with is the view that any request to IT should follow the same path to start with, ie. through the Service Desk, if a user reports a server down, phone the Service Desk, if they have a problem with their pc, phone the Service Desk, if they want a new application, phone the Service Desk, if they want a PC, phone the Service Desk etc etc etc. This single interface to the user community should improve user perception of the IT Dept and also improve the flow of information within the dept as well.
Once you take in the "incidents" from the helpdesk and start looking at the overall ITIL picture, it becomes somewhat easy (as long as you can remember the acronyms, CDB, CMDB, MTBF, MTTR, SLA, SLR, SLM* to name but a few about 0.5% or so it seemed) to see how incidents/problems/changes flow through the departement in a controlled manner, totally different to many companies current systems I am sure.
Anyway I could go on and on and on about this but I think that for those people who want to look into ITIL, then training or consultancy are definately the best options as it is certainly one of those subjects where you need to ask questions to get a better understanding.


CDB - Capacity Management Database
CMDB - Configuration Management Database
MTBF - Mean Time Between Failure
MTTR - Mean Time to Recovery
SLA - Service Level Agreement
SLR - Service Level Requirement
SLM - Service Level Management

8 comments:

Anonymous said...

HI I AM SANJAY AGAIN I HAVE BIG QUEZ U CAN ANSWER QICKLY PLEAZE URGENT URGENT EMAIL THANKS

WHY THIS NO WORKZ?

import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Subject"));
doc = dc.getNextDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document doc = dc.getLastDocument();
while (doc != null) {
System.out.println(doc.getItemValueString
("Subject"));
doc = dc.getPrevDocument(); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
2. This agent gets the next to the last document in a document collection by using the last document as a parameter to getPrevDocument.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
if (dc.getCount() > 1) {
Document doc =
dc.getPrevDocument(dc.getLastDocument());
System.out.println("Doc # n-1: " +
doc.getItemValueString("Subject")); }
} catch(Exception e) {
e.printStackTrace();
}
}
}
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
if (db.isFTIndexed()) db.updateFTIndex(false);
else db.updateFTIndex(true);
DocumentCollection dc = db.getAllDocuments();
dc.FTSearch("red");
if (dc.getCount() > 0) {
System.out.println(dc.getCount() +
" \"red\" documents being stamped ...");
dc.stampAll("Color", "red"); }
} catch(NotesException e) {
System.out.println(e.id + " " + e.text);
e.printStackTrace();
}
}
}
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DbDirectory dir = session.getDbDirectory(null);
boolean found = false;
Database db = dir.getFirstDatabase(DbDirectory.DATABASE);
while (db != null) {
String fn = db.getFileName();
if (fn.equalsIgnoreCase("newdb.nsf")) found = true;
db = dir.getNextDatabase(); }
if (!found) {
System.out.println("Not found, creating newdb.nsf");
dir.createDatabase("newdb.nsf"); }
else
System.out.println("found, not creating newdb.nsf");
} catch(Exception e) {
e.printStackTrace();
}
}
}

Anonymous said...

HI I AM SANJAY WHY YOU NO REPLY ME?

Graham Tucker said...

SANJAY,

Sorry for not replying to you but the code is a little ambiguous. If you can complete the sections marked

// (Your code goes here)

I might be able to give you a better answer.

Anonymous said...

HI I AM SANJAY THATS IS THE BITS I NEEDING HELPS FOR. REALLY BIG THANK IN ADVANSE FOR YOUR HELPS PLEAZE QICKLY URGENT URGENT. EMAIL SANJAY.PERREIRA@MASTERFIX.ES I GIVE YOU V1AGRA IF YOU HELPS QICKLY

Michael Duffy said...

HI I AM SANJAY AGAIN PLEZ HELP ME URGENT URGENT YOU BIG FECKING EEJIT

Anonymous said...

I AM NEW TO NOTES
PLZ HLP I HAV QRY LIKE THIS WHCIH SUM1 ELSE WRITE
SELECT
' '||d.DEPARTMENT_NAME DEPT_NAME,
sum(CASE WHEN (O.COMPLETED IS NULL and od.ARRIVAL_DATE >= sysdate and od.ARRIVAL_DATE <= TO_CHAR(TRUNC(sysdate + 90), 'DD-MON-YYYY')) THEN (ps.PURCHASE_PRICE* od.QUANTITY * APPS.EXCHANGE_RATES.GETAPPSEXCHANGERATE ( cu.currency_code,'EUR',sysdate ))END) 3mon,
sum(CASE WHEN (O.COMPLETED IS NULL and od.ARRIVAL_DATE >= sysdate + 90 and od.ARRIVAL_DATE <= sysdate + 180)
THEN (ps.PURCHASE_PRICE* od.QUANTITY * EXCHANGE_RATES.GETAPPSEXCHANGERATE ( cu.currency_code,'EUR',sysdate ))END) 6mon
FROM OUTFITTER o, ORDER_DETAILS od, STYLE_COLLS sc, styles s,
customer_groups cg,
STYLE_SUBGROUPS sg,
companies c, departments d, DELIVERY_PERIODS dp,
CURRENCIES cu,
COLLECTIONS collec,
PRICE_STYLES ps
WHERE collec.COLLECTIONS_ID (+) = sc.COLLECTIONS_ID and od.LINE_NUMBER is not null
and o.ORDER_TYPES_ID = 1
and sg.STYLE_SUBGROUP_NAME != 'FINANCE'
and od.COMPLETED between TO_CHAR(TRUNC(sysdate - 365), 'DD-MON-YYYY') and TO_CHAR(sysdate, 'DD-MON-YYYY')
and o.OUTFIT_ID = od.OUTFIT_ID and sg.STYLE_SUBGROUPS_ID = s.STYLE_SUBGROUPS_ID and o.STYLE_COLLS_ID = sc.STYLE_COLLS_ID and sc.STYLES_ID = s.STYLES_ID and cg.CUSTOMER_GROUPS_ID = od.CUSTOMER_GROUPS_ID and ps.STYLE_COLLS_ID = sc.STYLE_COLLS_ID and ps.CURRENCIES_ID = cu.CURRENCIES_ID and c.COMPANIES_ID = o.COMPANIES_ID_2 and od.DELIVERY_PERIODS_ID = dp.DELIVERY_PERIODS_ID and d.DEPARTMENTS_ID = o.DEPARTMENTS_ID
and c.companies_id = p_companies_id
AND o.DELETED = 'N'
group by d.DEPARTMENT_NAME
order by d.DEPARTMENT_NAME

ITS NOT WORKING PLZ KINDLY GIV UR HLP. PLZ EMAIL RIGHT AWAY I DO NOT WANT 2 CHECK BACK ALL THE TIME. SANJAYMSH_2033@YAHOO.COM

PLZ KINDLY ANZWER NOW I DO NOT KNOW ANSWER. DO NOT SAY TO READ DOCS I DO NOT WNAT THE BOTHER. ANSER PLZ. I AM SUPPOSE TO KNOW SQL BUT I DONT KNOW WHAT IS THE ANS.

SANJAY


PLZ DO NOT WASTE MY TIME

Graham Tucker said...

SANJAY/Whoever you are,

Stop wasting my time cutting & pasting from random forums. It's not funny and it's not clever!!!

I am Graham Tucker.
Thank you and goodnight.

Stephan H. Wissel said...

Hhm.
If everything flows through the service desk, then the IT department is at the mercy of the service desk. Given that that spot is the domain of temps and interns that could fire back VERY nastily.
The idea to have a central ticketing system on the other hand is brilliant. A more sensible approach: make it possible for anyone, anytime to enter a ticket. If Joe Admin or Paul Developer is called by a user he happened to know, then they don't need to p**s them of by saying "Call the service desk", they just would fire up the browser and enter a ticket on their behalf.
Seems like ITIL has great potential and great risk to be taken over by process freaks.
:-) stw