ITIL, SLA’s and Agile
Three years ago I sat down for two days with a chap who used to be the IT Director for the Pru, one of the questions he asked was if we had SLA agreements (or as I prefer I(nternal) S(ervice) L(evel) A(greement) for SLA's for departments within the same business) and I replied 'kind of', in one sentence he taught me a valuable lesson when he then responded 'there's no such thing; either you don't or you do', luckily I'm a quick learner so when the session continued with another question, 'what percentage of delivery against SLA's should you as a business be promising?', I replied 100%.
If you go into a car garage and buy a new car you wouldn't be happy if the salesmen said that the warranty was only valid 70-80% of the time if your engine blew up, so why do so many IT businesses guarantee only 80-99% SLA's, why not aim for 100%.
All to often IT departments say that it isn't possible to achieve 100% SLA's, or they build in silly clauses. Why is it so difficult for IT departments to strive for 100% SLA's, the Japanesse train system is measured on failure by seconds (unlike the UK train companies which are on deemed to be late or early if they arrive or leave 10 minutes either side of the stated time!) and even based on these ultra tight they achieve 99+% against their SLA's to millions of daily commuters.
I have spoken with many Agile experts over the years and it surprises me how many are unaware of ITIL, though my bread and butter (as well as my beliefs) is that Agile is the best way to develop software, I am a great believer in using the right parts from PRINCE2 and ITIL, in the same way we build our Agile model up using the best parts of Scrum, XP, Kanban, etc.... we should be open to using other non-Agile principles and judge them on their own merits, if it works for your business then why not embody it and build it into your Agile model.
N-Tier / Layer Architecture is important
Many newbie developers often 'lump' their code together into one or two layers and find it often hard why we should use n-tier structures when developing. N-tier allows us to have clear separation between our UI, business objects and data objects.
A very recent piece of work I managed involved taking a legacy single layer model written in classic ASP and separating it out into manageable layers using .NET services. By creating a DAL and Services layer this helped the developers to deliver code at a far faster rate than the previous single layer as they did not have to 'untangle' the code they were working on and most importantly allowed quick diagnostic / resolution of problems as it was easy to identify the layer where the issue originated from.
Tiers / layers are important in application architecture.
Determining an ASP.NET Page’s View State Footprint
So many developers pay little to no attention to the size of the ViewState, if you don't need it either @ a page level or a control level, TURN IT OFF, viewstate="false", v.large viewstates can cause issues with your page.
Scott Mitchell has written a small bit of code that displays your viewstate size, not for production purposes, but good when debugging your code;
VB.NET Luhn Check
As promised here is the VB.NET luhn check. As I haven't been able to carry out any work on my formatter yet, this will remain unformatting until complete.
Public Function luhnChk(ByVal ccNo As String) As Boolean Dim i, w, a As Integer Dim x As String a = 0 ccNo = ccNo.Trim() w = 2 * (Len(ccNo) Mod 2) For i = Len(ccNo) - 1 To 1 Step -1 x = Mid(ccNo, i, 1) If IsNumeric(x) Then Select Case (i Mod 2) + w Case 0, 3 a = a + CInt(x) Case 1, 2 x = CInt(x) * 2 If x > 9 Then a = a + (x 10) + (x - 10) Else a = a + x End If End Select End If Next a = 10 - (a Mod 10) If a > 9 Then a = 0 Return (CStr(a) = Right(ccNo, 1)) End Function
I haven't added in checking the first number/s validation, as I have found there to be an inconsistency as to what number/s are used on what card type (an example was that I was told by one bank that a Maestro card couldn't start with 67, only Solo, but I have a Maestro card that does!)
Code formatter
I started this morning looking for a code formater for blogger and I found;
http://formatmysourcecode.blogspot.com/
It was nice but there were no color coding options for the code. I dug further and found the following;
http://www.manoli.net/csharpformat/
Which is great for c#, vb.net and t-sql, but it isn't blogger friendly (didn't generate all the CSS inline).
What I have done for this site is to use the ideal of blogger friendly code formating from http://formatmysourcecode.blogspot.com/ and merge it with http://www.manoli.net/csharpformat/.
Another problem was that whilst I had now worked out how to generate the right look and feel for .NET / SQL, I didn't have a JavaScript formater. I found http://www.felgall.com/jsformat.htm, which is great but again I have had to combine this formater with the idea of the http://www.manoli.net/csharpformat/
So after all the messing around I have downloaded http://www.manoli.net/csharpformat/ source code and will be adding the following functionality;
- Blogger friendly formatting
- JS formatting
- CSS formatting
As soon as its completed I'll post in on my Portfolio site (http://www.carlbruiners.co.uk) for you all to download and use.
I specialise in all things Agile (XP, Kanban, Lean), in particular Scrum. I have a passion for taking on 'problem' projects / teams and turning them into a sucess as well as promoting automated test driven practices.





