CSS3 Rocks! Please use latest browser version.
Welcome to Walter Moore Canada's Blog. These comments are strictly opinion. You can disagree!
Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Thursday, January 21, 2010

Escalation



Published 2003-03-31

Just ranting about escalation….
The objective of escalation is to bring something into higher priority and focus resources. In small business escalation is not usually an issue, there are usually only a few people to inform and everyone knows everybody. In enterprise class systems escalation becomes much more complex. Escalation is usually associated with problems but not necessarily(you can escalate good news). There are 2 sides… the escalator(person escalating a problem) and escalatee(person problem is being escalated to for investigation). 
When talking about problem escalation I find many enterprises lacking. Some have done wonderful jobs but most need work. Many shops have binders with contact lists, memos and hand written notes. Half the time is spent contacting the wrong people and often required contacts are never made. Other shops have rigid rules for escalation that often create excessive escalation. One shop I worked for used memos that would say something like…
If you have problems…
    Call 416-999-2222 Sun-Thu between 11pm-7am. No more than 4 rings!
    Call 705-555-1212 on the weekend
    Call 416-555-2244 at all other times.
I am unavailable Mon-Fri from 6-7pm, I will call you back after 7pm if paged.    

That was just the first level support contact, then you had to contact business and suppliers that each had their own escalation… And people were wondering why escalation took 90+ minutes at times.
Escalation needs clear guidelines – Rules are inherently inflexible and escalation requires extreme flexibility. Even if your internal escalation is rigid you have no control over external escalation.
Escalation Intervals – How long do you wait for support to call back? How long do you give first level support before escalating to second level? You need an escalation matrix that considers priority and impact. Example: Critical problems need faster escalation than others.
Does the problem need escalation? Some businesses escalate everything immediately. Although this may sound good it easily creates problems. An impact assessment should be completed before escalation is implemented. Perhaps the problem can wait to avoid costs like over-time. Others only escalate when everything crashes around them.
Once it is determined a problem should be escalated the escalation process should have structure to provide 1st, 2nd,3rd… level contacts for customer, internal support and suppliers but allow flexibility to “skip levels” as needed. Often internal support escalation is handled correctly but the ball is dropped when contacting customers and suppliers. How many times have you missed informing the right people? The escalation process must ensure ALL related contacts are informed.
Don’t call Jim “because he knows the solution”. Call the appropriate support and inform them that Jim has the solution. This ensures that bugs are worked out quickly… no one wants to be called at 3am. Another common problem for effective escalation. If you call Jim and bypass the escalation process the real issue of having the wrong contact never gets addressed. Next week(or day) Jim will get called again. Jim is probably not going to be very happy. Escalators must follow escalation as defined to ensure bugs in the process are addressed.
Escalation process should allow a flexible contact solution. Requiring specific contact types(like pager) are limiting and should be avoided. The contact person should have the ability to maintain how they are to be contacted(home,pager,cell…) but the process should not attempt to support memos like noted above.  Since contacts have the ability to maintain their contact details they assume the responsibility for the information.
Escalation requires constant reviewing to ensure the appropriate contacts are defined. Some companies think that once their escalation is defined they are done. Wrong! Escalation constantly needs fine tuning. I have seen many great systems fail because the data became outdated. A distributed ownership model is critical to a successful implementation. Contacts own their personal information, management owns the resources. Each is responsible to ensure their data is accurate.
Escalation requires ownership/responsibility. One of the most frequent problems I have seen is the lack of ownership when problems arise. A clear path to ownership must be maintained. Owners are responsible for the resource, they didn’t buy it! Ownership ensures at least someone is prioritizing the issue… they may not be the ones to do the work.
Escalation process must be accessible from various platforms(mainframe, PC, server, PDA…). No use having a great system that escalators can’t access. In addition it needs an API to integrate with standard business management tools like problem management.
I can go on and on about this subject… I think you get the idea so I will stop now.

Which Coding Language to Use?



Updated 2009-11-25
My how things have changed. Java appears to be going the way of OS/2, Microsoft is now .NET instead of ASP, and many unix servers are using PHP(even some Windows servers). XHTML and XML are both extensively used. Netscape is gone and replaced with Firefox. Smart phones have finally replaced WAP. DIV and SPAN tags are the predominate tags now. Many more servers are now Windows based instead of Unix. .NET is dominant in large business sites. Browsers are all over the place and then there are smart phones. I expect everything to change to video/3D over next 10 years so don’t spend too much time on this stuff ;) At this time I prefer the following:
  • .NET for server. Can be C#, VB, PHP, Python or other language but .NET handles various browser issues(mostly).
  • CSS – now the standard. Actually standards are recommending all layout should be in CSS format and not included in HTML tags. 
  • JavaScript – The standard for years.
  • Ajax or similar – dynamic communication as well as saving bandwidth.User gets virtually instant responses.
  • MySQL – for databases. Open source.
  • Flash – for dynamic graphics sections.
  • Look into video and 3D tools – I see most sites going to interactive video/3D instead of text.

Updated 2001-02-15
Well, if you consider that AOL is a version of Internet Explorer(IE) then IE version 4+ now controls 85%+ of the browser market. Microsoft owns 98% of the operating systems. With this combination it should make your decisions easier. Now the potential to use VBScript, ActiveX etc. is feasible on the Internet. Is XHTML or XML going to win? Not sure, probably neither. Each is the “new” language that will allow everyone to communicate together… heard that before??? CSS is here to stay. It will be improved but it is a base for layouts to come. WAP is not going away for awhile… bandwidth may change that so I would not invest too heavily but it is necessary for several sites(like stock brokers, banks…) right now. You can trash all the tables and start using DIV and Span tags. Java is actually gaining ground since more powerful computers and faster bandwidth are available. Microsoft owning everything defeats the one real benefit of Java though. There is always going to be the next language that will solve everything for us… we buy it then figure out it can’t do ???? that the other product could. These of course will be solved in the next version…;-).
A big step is Netscape’s support of standards. Now if we could get Microsoft to do the same and drop that *&*%$# document.all method we could really get grooving. It might surprise many of you to know that Netscape6 is a better standards based browser than Explorer5.5. Explorer is much more forgiving for developers where Netscape is strict.
Published 1997-09-25
For Intranet(because of it’s controlled concept) I would use Microsoft® supported languages exclusively. These would include DHTML, CSS, Jscript with server code mostly in ASP files. Limited use of VBscript, ActiveX and JAVA. This of course won’t work if you are an OS/2 shop but will work for MAC and some Unix operating systems.
For Internet I prefer to recommend more platform independent languages at this time. Unfortunately many languages are needed to truly develop a site. Unless you use at least some of the capabilities specific to the browser you limit your potential gains.
DHTML is now a must.
JavaScript(Jscript) is best for scripting simply because both browsers support it(sort of).
Pure JAVA is best for advanced requirements but is limiting and slow(this is improving very quickly).
CGI is still my choice for server side code but only because most servers are still Unix. If you can, I recommend using other languages(VB,C++,REXX, whatever).
Cascading Style Sheets(CSS) for those with requirements for specific positioning of elements. Or at least extensive use of small tables(large ones are slow to load).
All above can support both Netscape® and Microsoft® browsers if designed correctly.
After all that is said, I have found you need ALL languages above to provide the client with the best solution. More importantly, how(or if) they work on different browsers.

Rapid Application Development(RAD)



Originally Published 1997-09-25

Rapid Application Development(RAD) is tools and methodologies. Here are a few opinions on both.
I have been using RAD tools since 1995 but have used the methods long before there was a name “RAD”. I have seen RAD benefits and abuse. Whether you like it or not it is today’s development platform.
I have created a short list of things to keep in mind when you step into RAD. They include requirements, benefits, disadvantages and a summary. In no way should this be considered a complete list.

Requirements:

  • Excellent leadership. Somebody has to point the technicians in the right direction and let them go.
  • Top skilled technicians. If you don’t have the motivated people to do the work it won’t get done. They also have to understand business requirements and be able to interface with clients.
  • Supportive infrastructure. This is two sided. You have to inform others of change ASAP, others must be co-operative in supporting your goals.
  • Co-operative clients. Some clients want everything yesterday or do not calculate business value.
  • Everyone has to “buy in” to the process. It requires extreme dedication by all involved.
  • Best tools for the environment. Because a tool is great does not mean it is best for your site. On the other hand the environment should be open in structure to allow the best tool.
  • Compensate staff. If you don’t recognize these achievers you will loose your most valuable asset, your staff. Make sure no one steals your investment!

Benefits:

  • You get business benefits very fast($$$$).
  • Time boxing really allows you to focus on deliverable components.
  • Due to factors like iterative development more client satisfaction. Clients are involved from beginning to end.
  • If done right you work out more initial requirement bugs before installation.
  • You reduce the moving target syndrome.
  • Focalizing data into one view instead of many screens.
  • RAD’s usual focus is on high return developments. Usually related to the financial sectors of the business. In my experience 10-1 payback in first year is easily obtainable.
  • Reusable objects make future developments even faster.
  • Did I mention very FAST and very high client satisfaction.

Disadvantages:

  • It is like college development projects. You would produce something that performed the required functions, looked good, but usually was not the best quality. Due to time constraints you submit what you have accomplished and take credit.
  • The client usually gets a shell of what they want with several sections to be added in future projects(if you get to them).
  • Poor leadership can result in projects failing to achieve objectives.
  • If the technicians are low skilled you will never achieve objectives. Regardless of leadership.
  • It burns out good technicians at an alarming rate.
  • Because RAD is usually used on projects that have never been attempted many “work around” coding methods are used.
  • Initial project requirements are usually under estimated.
  • Time boxing makes technicians compromise on solutions.
  • The target still moves, just faster.
  • Client expectations go through the roof. Suddenly they can’t wait six months. Even though before RAD you told them two years or more.

Summary:

Sounds pretty negative doesn’t it? Surprise….
RAD can be great for your business. Although it has some drawbacks the return on investment(ROI) can’t be beat. Time boxing is a mandatory element(unfortunately)! If you use top notch leaders and technicians, keep them happy and make sure no one steals them without a fight you can reduce the disadvantages dramatically.
Using the methodology and tools for Internet development is a logical evolution of the client server model. Recommend you implement Object Oriented(OO) methods regardless of tools. Make it challenging, rewarding and above all, FUN!
Something to think about….
You look at a piece of machinery. It cost $2,000,000 and maintenance will be another $2,000,000 a year. It saved or makes $10,000,000 benefits each year and will last five years before you dispose of it. Would you buy it? Would you be happy? Probably, 500% ROI per year would make most of us happy.
Now, you have employees, some who have produced solutions that either saved or made the company $10,000,000(plus subsequent years). Would you pay them $2,000,000 per year? I doubt it. If they are lucky they get a bonus and/or a raise of $5,000. What is the difference? You made an investment and got back the same return either way.
The opposite is true as well. If the machinery keeps breaking down or not performing it’s function you replace it.
I know it is not feasible to compensate at this level but doesn’t the compensation most companies give seem inadequate. Loosing good investments because you won’t pay an extra $10-20,000 just doesn’t make sense. The costs just trying to find another good employee would be substantially higher(plus training etc.). In my experience good employees produce 5-10 times the average employee(more for below average). They are extremely valuable assets. Treat them that way. If they are good, your payback is worth it.
The key truly is the people.

About Ultra RAD

You heard it here first. That is because I have termed this type of development. It is different than RAD in that it is specifically designed for projects that take less than 5 months. Once you have implemented several RAD solutions using OO methodologies many new projects suddenly can shift from 6-8 months to 3-6 months. Although the tools are the same the methodology changes. The process is streamlined even further. Timelines are tightened. Reusable objects are a must.