Tuesday, December 01, 2009

The last decade in the enterprise IT

This month marks not only the end of a challenging year but also the end of a decade that started with the dot.com boom followed by bust and is ending in a global economic recession with some signs of recovery.

Looking in the past, I would like to review some of the most significant trends and technologies in the IT, that in my view, marked the last decade and will likely impact developments on the years to come.

Here is my top 10 list:

  1. J2EE was announced in 1999 and by the middle of the decade was pervasive in the enterprise as the most used object oriented language environment supported by all major vendors and integrators - IBM, Oracle, BEA, HP, to name just a few - with a single notable exception ...

  2. .NET was Microsoft's answer to J2EE, started with lots of buzz and hype around 2000 but evolved to a complex framework running on Windows OS: 2000, NT, XP, Vista, 7 etc.
  3. Web services and all their confusing syntax and protocols

  4. SOA - service oriented architecture style came with a big promise to finally bring business and IT together. Some claim it is already dead (http://apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.html), but others have more realistic view: http://www.infoq.com/articles/soa-governance-revitalized
  5. EDA - event driven architecture, aka SOA 2.0 is a great concept not well understood and under-utilized

  6. Agile development with all the variations - XP, Scrum, etc. - a grass root protest and rebellion against project management by the book (any PMP around?) and endless documentation

  7. Model Driven Architecture (MDA) made finally possible for modelling tools to deliver to the promise
  8. Web 2.0 - blogs, social networks, Facebook, Twitter, etc, we are just at the beginning of a revolution in the enterprise, how business will use internet and mobile devices in the future to connect with customers and define their market niche
  9. Cloud Computing will mark the end of the enterprise IT data centers
  10. Global IT outsourcing - I left it at the end however it is such a defining trend in the IT departments of small and large business today that it can make easy top of the list. Most of the technologies listed here concurred to the success of outsourcing on global scale

Wednesday, September 02, 2009

Transition time

The summer is now well gone in this part of world and with the fall coming I am taking a new challenge: I am starting a new project to modernize one of the oldest and most complex system in the Government of Ontario. The system was built over time starting more than 30 years ago and handles the provincial drivers, vehicles and carriers registration and myriad of legislation packages governing them. My role is to lay the groundwork for a solid architecture foundation so new components and applications can be built to support business and system requirements. I expect to be a long and sometime difficult process but I am exciting to apply my experience and analytical skills in a structured environment that recognizes the need for architecture more than other places in the private sector.

For me this is a transition back to public service from private sector, where I spent more than 3 years in various projects, of several degrees of complexity. It was a great opportunity to play with exciting technologies and business domains - Rich Internet Architecture and Ajax, SOA, ESB, CRM, etc. just to name a few - but also meeting great people with very diverse background. I got the feeling of being connected in a truly global economy, I had the taste of outsourcing - the good and the bad - and I managed to get a better understanding of where the future directions are in the IT consulting business.

I think we are facing interesting and challenging times ahead in the IT industry but I feel better prepared now to look for opportunities where before I saw annoyance or roadblocks.

Monday, May 25, 2009

The outsourcing question: how well does it work?

I am in the middle of a project that will get outsourced, most likely to a company with resources in India. To be more precise, the development tasks will be outsourced. My current role as functional and design specifications lead will most likely continue, at least during initial phase of engagement.

Few questions that went through my mind, when I found out about this, were:
  • how well will this process work?
  • what are the chances for such a project to succeed?
There are several ways to define success. From management perspective it may be the financial aspect: the reduced cost of development overseas. I don't have all the facts and am not in the best position to judge this aspect.

I am however more interested to find out what does it take to make this process successful from the point of end product quality and delivery on time. What kind of elements - open communication, good technical specifications, flexible working hours, etc. - are critical in engaging the outsourcing party to deliver the best possible results?

If you like, please share your honest opinions from past experience here...

Wednesday, May 13, 2009

Finally Spring









I have to admit, I enjoy the warm weather better than long cold winter. But who doesn't?








Here are some pictures I took in during the weekend in my lovely neighbourhood. Enjoy!








Friday, January 23, 2009

Customer Identity Resolution

For the past two years I was involved in solving a challenging problem faced by many customer facing businesses in service industry: customer identity resolution.

Problem definition: implementing a solution for online customer matching for a large telecommunications company servicing more than 10 million customers.

Customer Relationship Management applications face a major challenge in implementing accurate and timely customer identification for several reasons:
  • customer reps misspelling customer name and addresses
  • large number of records (ranging anywhere from few millions to hundreds of millions) drives search response times higher
  • potential for fraud in case of identity misrepresentation
The solution to this problem is usually a complex mix of business intelligence tools and custom developed application code. In our case it uses SAS Dataflux product to generate match codes for customer name and address. Match codes are stored in Oracle database together with the original customer information. Several search or look up algorithms are implemented in a mix of Java web services and database store procedures to perform fast customer matching for thousands of customer reps serving customer calls in real time.

There are few lessons learned from this:
  • don't trust legacy data, use a data cleansing tool to validate and normalize
  • no matter how sophisticated, no out of box tool offers a comprehensive solution
  • performance tuning is critical and will drive a lot the design and implementation, as I found in performance testing with real live data volumes, only few weeks before going live ...