
When to insert that upgrade dependency
I think one of the greatest challenges in IT is to get an IT centric effort off the ground and executed to completion. I’ve been faced with this challenge over the years and have adapted different strategies based on the circumstances to varying degrees of success. In this article, I’ll outline one which involves linking a sponsored project in flight requiring some technical solution from your team to an upgrade or enhancement your team wants but is struggling to implement on your own.
As mentioned in the prior article, if you are providing some IT services back to the rest of the organization, you must have some formal mechanism to aide in prioritizing the work requests. If a project is of a high enough priority that it needs to be accomplished and your team has a role to play, consider creating a plausible dependency on meeting the project requirements via the upgrade/enhancement you want to implement.
I’ll take a stab at a typical requirements gather conversation to explain:
Project Manager: “Boss, it is my understanding that your team provides widgets that interface between the FlimFlam system and the billing system?”
Boss: “Yes and my understanding is that this project requires a widget to take the ABC format that comes out of the FlimFlam system and convert it to the XYZ format so it can be fed to the billing system, right?”
Business Analyst: “Yes, that is correct.”
Boss: “Well, I checked with my team and we have two options. One, is we can directly develop the conversion widget in the current product version we have and that will take 20 days and there will be extensive testing and the possibility for a high number of defects due to the custom coding. The second is we can upgrade our product to the latest version which contains native support for converting ABC to XYZ. Thus, the 20 days becomes 1 day to configure the new product. The new product has been out for six months and used by a number of other customers thus it shouldn’t have any serious defects. The catch is we have to regression test the five other widgets currently in production. Our recommendation is the second option.”
And just like that, you’ve articulated a business case that strongly suggests an upgrade you have been wanting to implement but couldn’t get all five interfaces tested and signed off. This sixth interface project effectively completes both objectives: yours and the projects.
Hopefully you have done your homework and are seriously confident that the upgrade indeed will meet the project needs even if the “native support” is stretching the truth just a bit. The real key is that you can realistically meet the project needs within the alternative estimated timeframe. Once the project gains momentum and is marching down your road of upgrading and testing versus custom coding, it is next to impossible to switch the decision as long as you are trending towards meeting if not exceeding the other estimate. One of the more difficult IT centric challenges is getting another group to test their technology that interacts with your technology when they have no reason to do so except for your need. This approach uses the priority and urgency of this new project to drive that testing. “Guys, we wouldn’t need you to test but this other project is forcing us to change thus we need you to validate …”
What happens if they build momentum and go against your recommendation?
The subtle power of “recommending” one particular course is one of risk ownership. If the project accepts your recommendation, then you own the risk of not meeting the projects needs. If the project rejects your recommendation for an alternative, then the project now owns the risk of the success and/or failure of your work to a significant degree. How so? Well, whenever the project comes back to complain about missed deadlines or quality issues, you have the immediate response poised: “Well, you remember we recommended option A but you asked us to do B. Had we done A, I believe we would be meeting your expectations.” You have various permutations of that response as your get out of jail free card to the immediate complaint. Clearly, if you enjoy your paycheck, you need to continue to make the project a success. But, if the project as a whole starts trending negative, you are pretty much in the clear of taking a significant portion of the blame.
What happens if your recommendation turns out to be more complicated/time consuming than you originally thought?
This is where doing your homework comes in. Before even recommending the upgrade/enhancement dependency option, you need to be extremely confident in your ability to meet expectations. Going off new features and functions in release notes is a bad idea. Working from some semi-formal product/solution testing and real engineering evaluation is a much better idea. If your role in the organization is exceedingly intolerant of the risk failure, then I would venture to say go so far as the only open variable is the need for the formal testing signoff from the external groups. The closed variables would be up to and including having already technically tested and confirmed the external group owned systems will work in formal testing scenarios (via the systems themselves and/or a stub of their systems touch points with yours).
The ability to link an upgrade or enhancement to an in flight project gives you the ability to help the project succeed as well as accomplish a goal on your list at the same time. The keys are to be able to plausibly justify the upgrade approach is better than an existing solution coupled with being extremely confident based on actual testing that the upgrade will actually work.
Has anyone used this or a similar approach and had success?


