Web services need planning

Project Management Plan

Project Management Plan

Copyright perhapstoopink (Creative Commons)

I get calls all the time at home from “investment planners” and “retirement planners” and all sorts of other people who believe that I need to plan for the future.  Well, their not wrong, but planning needs to occur in other areas of your life as well.

Taking on my mantle of IT Philosopher I’m here to talk to you about planning.  Future planning for your applications.

I understand that being able to write “Developed and implemented web services” looks good on a resume, but if your application does not need a web service don’t give it one.  Sorry for the emphasis, but it’s needed.  Quite often I see application architectures that don’t make a lot of sense, other than the fact that it will look good on a resume.

Let’s take a look at a fictitious travel agency “Jessop Fantasy Tours”  (hey, my story, my travel agency).  One thing that probably makes good sense to spin off into a web service is “RetrieveTravelItinerary”.  Based on the name you would assume that this web service would retrieve the Itinerary based on a key being passed in.  In order to determine if it meets the criteria for a web service see if it satisfies these points:

  1. There is a need for this information in multiple locations in one or more applications.

OK, there was originally going to be a list of five or six points, but, for the most part, it really comes down to the above question.  Even then I could spend another couple of thousand words just talking about the permutations and combinations of items that make up the little phrase “multiple locations”.

For instance, I don’t mean two different places on the same screen.  I don’t mean in two different functions, but in two different application functions.  (“List of Itineraries” and “Itinerary Details”).  If you plan on commercializing the usage of the function then that would qualify as multiple locations.  By commercializing the usage I don’t necessarily mean external to the organization.  You could have a function, used strictly internally, that you need to promote, maintain and elicit usage within the organization.  Let’s say that my travel agency provides clients with a list of restaurants near a location that they pick.  They can do this from within the pages where they book the travel or, because I am a nice guy and I want to drive traffic to my site, I also put this on the main page.  The email system also needs it because it will generate the itinerary and associated restaurants and send that information to an email address.

There are valid reasons for creating web services (same function, different places) and poor reasons for creating web services (resume padding, bored).  Know which one is which and make sure that the reasons are valid.

Subscription or Purchase?


Copyright epSos .de (Creative Commons)

Software vendors want you to subscribe to their software rather than buy it.  It’s purely a money grab on their part, but is it a good deal on your part?

Adobe was the first large company to switch from a purchase orientation to a rental orientation.  (OK, people can argue that Oracle switched before that and IBM has always been that way, but that’s not the point of this rant, so hang on to those thoughts.  Thank you.)

Adobe did some research on the topic before they entered the rental market and what their research told them was that people did not always upgrade their Adobe products in a timely manner.  Indeed, most people skipped at least one version and many skipped two versions before upgrading.  With releases every two years that meant that Adobe would see money from a customer in one year and then not again until four or even six years later.  If you depend on people giving you money then model kind of sucks.

Enter in the Adobe Creative Cloud.  Instead of paying $2500 for a suite of Adobe tools you can pay $30 per month (existing customers) and get the entire Adobe lineup.  $20 a month gets you a single app whereas you would normally pay $700 for Photoshop.  So who benefits?

Well, Adobe gets a more consistent income.  They can come out with versions faster, incrementally improving the product instead of trying the big bang approach.

Users have a much smaller price tag to pay all at once.  While it is cheaper in the short term it works out to be more expensive in the long term.  The more Adobe tools you use, however, the more advantageous it is for you so that if you are an Adobe fan boy … it is most definitely cheaper.

And, let’s not forget, if you start using more tools and become an Adobe evangelist then more people will take a look at Adobe (wow, look at that low price of entry!) and perhaps get a subscription themselves.  I have to admire Adobe as I believe with their current plans they have hit the right price point with the market.

So, who else is doing this?  Darn near everyone wants the rental market.  Software as a service is the rental market, but many of these companies never really sold their software in the first place, so they don’t have the same marketing power and customer base to capitalize on.  Of the big players many have realized that a little bit of money from a lot of people is the key to success.  Microsoft’s Visual Studio online is an example of a change from Microsoft.  For $45 per month you can get Visual Studio Online Professional, essentially the Professional version of the VS toolset with TFS in the backend, or you can pay $667 to buy it outright.  If you only need it for a couple of months, you rent the tools.  Microsoft is willing to bet that you will want to stick with the tools once you try them.

The ability to add/remove subscription licenses makes things much more flexible for an organization that fluctuates in size or fluctuates in technology use.  And, while it makes some things easier, that ease of use does come with a cost.

So, is it better to subscribe or buy?  For me personally, it all depends on how mad my wife would be if I bought it versus rented it.  (By the way, Adobe has an excellent Education program.  Thank goodness my daughter is going to be in school for at least another five years!!!!)

Dying Software

Recently I talked about how many of the technologies that we are current coming to an end of their support lifecycle.  Failure to upgrade the technology can cause us problems and here is an example.

We currently use a technology called “iSCSI” to give servers additional storage.  The physical drives are on an iSCSI server and the client essentially maps the space that they are given to one or more drive letters on the local machine.  We have an instance where the space we have allocated is divided into two drive letters:  D: & E:.  The problem arises in the fact that after a restart the second drive (E:) does not always re-appear.  If any application on the server is expecting a drive E: there will be a significant problem.

Microsoft was actually able to recreate the problem on their test machines, but, due to the fact that Windows Server 2000, the operating system that we are using on the client machine, has gone past its Mainstream Support end date, they will not be investing any time in resolving the problem.  They gave us a number of options, but it was pretty much “Good luck and don’t bother calling again”.

In this case one of the workarounds should fix the problem, but the fact is, if this had been a more serious “production is down everyone come help” type of issue we would have been in serious trouble.

Old technology met new technology and the result was a car wreck.  In order to maintain an operational environment we need to continually update both our hardware and our software.  Being unable to update our software because of dependencies on old versions can cause us some serious trouble.  In this case it was more of an inconvenience than a crisis, but I think we should consider ourselves lucky that our experience was this pleasant. 

If you want to take a look for yourself at what Microsoft products are supported the Lifecycle Information page has a lot of information for you.