Client – Vendor Relationship & Program Mangement: Part 1

I’ve been reflecting quite a bit lately on how to help improve the inner workings between client and vendor in the IT arena.  I will add my thoughts and discovery as it comes in, but for now I have enough for a good start.

Since recently stepping in as a consultant / sr. program manager resource for a large client with a vendor, I noticed an amazing amount of “noise” causing large quantities of chaos when teeing up and executing projects.  There are multiple resources on both sides that are responsible for seeing through specific projects.  Email traffic, phone calls, issue logging and action item tracking has been all over the board and it had gotten to a point where it was a daily challenge to circle the wagons to make sure everyone was up to speed on the statuses of each initiative.

The one very alarming concern with this is that many of these projects are dependent on each other in one way or another…be it a code dependency, an operational impact, business priority, etc, etc.

We’ve decided that the best way to solve this problem is to have a static resource at both the client and vendor ends responsible for keeping a pulse on the broader picture, knowing enough details to make sound decisions and ultimately dictate priority….or at least recommend the best path to follow and let the business dictate priority based on the information known.

Doing this will hopefully lead to greater efficiency and success for all initiatives, leading to more revenue at a lower cost.  It will also give back to those being pulled in to all directions the time to stay focused on the tasks they need to, to bring their respective projects to closure.

I will continue to post updates on the success of this – but I feel very confident that this one step alone will solve many problems that have come up in recent years between this client and vendor.

Test Cycle Execution Strategy – For Major Software Upgrades by Vendor

I recently visited a client to discuss many topics surrounding their software testing and deployment project process.  Though there were many outputs from these meetings, there was a very obvious bottleneck in their QA area of the processes.  Due to this we spent a good deal of time on this and I felt it would be worth sharing.

This client is a client of a particular software vendor, so they aren’t the developing party.  Please keep this in mind.  What this essentially means, is that much of the “unit” type testing surrounding Alpha or Beta releases (or even final releases) should be unnecessary, however this particular client is finding itself peforming much of the unit testing that it should have the confidence with being completed by the vendor.

Here is some info passed onto them:

When testing major software upgrades, the test approach should focus on business flow and not on application unit testing (except for client custom-developed code).  The basic approach (in this order of execution) to testing is as follows:

  1. End to End Testing: Approx: 5% total testing effort
  2. New Feature Testing: Approx 30% – 40% total testing effort
  3. Regressions/Baseline Testing: Approx 60 – 70% total testing effort

The testing effort kicks off with end-to-end testing, which puts items completely through the standard business workflow.  It is designed to identify basic problems quickly and without requiring several iterations to get a first pass through the entire workflow.  It is not intended to test specific test conditions such as exception processing, etc.

Once the end-to-end test is complete, the QA team will drill down on specific new functional areas for detailed testing.  There may be one or more test cycles associated with a given functional area, and the QA team may test new functionality testing in parallel with regression tesing, if it makes most sense.  The regression test, however, cannot be considered complete (or in some cases started) until the new functionality testing is complete.  The QA team will identify each of the functional areas to be tested and the associated testing at the outset of the test in the form of a test plan – they will strive to bring closure to each functionality area as soon as possible and provide regular progress reports to the appropriate team members.

 

  End-to-End New Functionality Regression
Test Cycles These are simple scripts that validate the flow of data through the system but do not test detailed conditions New test scripts are initially drafted by the PM but are rounded out by QA team The client will keep a bank of test cycles – the test manager will pick & choose which cycles are appropriate for each test
Duration of Test < 1 week Depends on scope of new functionality 8-10 wks to conduct base regression (more if new functionality testing is extensive)

Each new release brings additional functionality, and new test cycles will need to be developed to validate that new functionality, particularly as it is applied to the clients operating environment.

Standardize your businesses Project Milestones.

One thing I’ve seen often is a lack of clear milestone standardization and understanding.  It’s crucial to all those involved who are part of any project within an organization or who receive updates regarding these projects to know what each milestone may mean. There are many “basic” statuses or milestones for every project within an organization and/or between its vendors.

Examples are:  Request, Discovery, Requirement, Design, Development, Testing, Staging, Production, Support and Closure.

The naming of these milestones is far less important than having a consistent milestone process that allows for clear understanding of where a project may stand.  This helps in all aspects of a project’s success. Project Management Offices or the equivalent should define and document these milestones to be used as a guide for project status, health and monitoring and distribute to all that need to know them.

 These pre-defined milestones should be used as a guideline for all projects and any deviation from these should be encouraged only when it makes most sense for the success of a particular project.  Consistency in this process will allow for more clear communication to all affected parties.

Setting Roles and Expectations @ Project Kickoff

One cannot place enough emphasis on the value of setting proper roles and expectations for ANY project and the importance becomes even more glarring when there are multiple business units, vendors and mini-projects all trying to get to the same goal.

Here are a few quick must dos at project kickoff regarding this topic.  There are many others – but these 5 things should be at the top of your list when kicking off a project – and MAKE SURE you invite all known project participants to the kickoff meeting!!!

  1. Clearly define and document all team member roles.  Don’t just break it down by groups, but be very clear and concise toward each individuals specific role.
  2. Clearly define and document any and all owners of the various aspects of the project.  For instance, if there is a business decision conflict that comes about, who makes this decision?  The more you can dwindle this down toward one person, the better.  Decision by committee is very challenging (though sometimes it cannot be avoided), so t should be avoided if at all possible.
  3. Cleary define and document the communication plan.  Who gets what when in the form of communication has to be agreed upon and the plan should be distributed to all team members by the project manager(s).
  4. Define who will resolve resource conflicts by dictating priority.  Is this the PM?  Is it a business manager?  Does there need to be a meeting if one comes up?  There will be plenty of priority conflicts – they all need to be quickly resolved and having a sound game plan ready to execute when needed.
  5. Clearly define and document the status update process.  Is it via email or meeting?  What is the frequency?  Who participates?   Is there a standard agenda?  These are all things you should think about.

Knowing the answers to these questions and having sound documentation distributed out to the project team will save plenty of heartache down the road.

Happy kickoff!

Matt

Must haves for any IT Software Service Provider

I spent a couple years with a company that made some unbelievable strides in the time I was there.  When I first started, there were so many gaps in their processes that caused unneeded stress, unbelievable work hours, the highest customer dis-satisfaction I have ever witnessed and tension between team members.  I thought it would be interesting to post a paper I wrote, shortly after starting with this company since it has so much relavence to any IT Software Service Provider.  I’m happy to say that through everyone’s dedication, the hiring of an additional leader and a willingness to service their customers – much (if not all) of this is in full scale motion – and working very well. 

Below is really a combination of an initial gap analysis for the company processes, detail on previous process experience and general documentation to help guide change in 5 key areas:  Requirements, Testing, Estimation, Accountability and Project Management.

Requirements:  Any long-term successful software project must have clearly defined, well thought out, group decided upon, pre-work requirements.  This is a long drawn out process that may require long, somewhat boring meetings with the requestor(s), the developer(s), the PM, the testers etc – but it is key to saving time (=money) and reducing (in some cases eliminating) problems after the fact.  The cost to re-do things increases exponentially, hence the 1:10:100 rule or the waterfall effect.  It can be painful to implement full scale requirements documentation processes, but in the long run it will be extremely beneficial for the overall health of the business unit and technical teams alike and also helps more accurately meet the users needs at first crack.  Not to mention anyone that already has certain expectations made up in their mind, will be given a forum to get it out on the table before it’s too late.

Notes about effects and alternatives along the way can help pave the path for when a similar circumstance is met.  This may require some additional tests (business tests) so we know the process is running smoothly.  Lessons learned meetings, water cooler talk, whatever, however it gets to the PM or another appropriate party to document the missteps for future reference is extremely handy.  The key is for requirements, all changes (hopefully through change control) and outcomes to be documented and learned from, good and bad, from both the business and technical units.  As long as there is something being done that never has been done, there are probably going to be problems with the requirements, but they can be minimized greatly using the right steps.

Testing:  Testing should be not only for items that have come through the queue in change, but also complete regression testing for those areas that are effected by the change….for instance, a change in automatic payments somewhere in the workflow could also effect any of the payment logic processes downstream OR it could effect something upstream that will eventually hit that same point in the logic path.  Good communication (going back to requirements) upfront with the development team, testing staff and the business unit can help us determine not only WHAT needs to be tested, but also get a really good feel for the testing effort – which needs to be included in the total project completion estimates.

Essentially, as part of the requirements gathering, or at least as a follow up, we should have documented estimates for not only the development effort (i.e. – 20 hours to do “x”) but also for the testing effort (typically testing effort is estimated at exactly half that of the development effort, for cushion).  This is obviously flexible, but starting here is something close to industry standard.

Estimation:  Again, it all ties back to the requirements piece, but out of gathering those requirements, the PM should be able to have a really good feel for the total effort, on all fronts.  At the very least, it is a good precursor to successful, on time and on budget software project work.  We can start our estimates with “educated-guess” effort and learn from those and adjust accordingly.  This is part of a painful process, because at first, it may take more time to get things done, out the door, etc……but with near imminent certainty in the long run, things will get done more quickly and at a lower cost in both dollars and resources.  Having a good feel for what the total effort is going to be, is a crucial part to the success of any project and really shouldn’t be ignored or skipped over.

Accountability:  Some form of tracking of the efforts, even if manual, would be helpful in gauging how we are doing as a group, how time is actually being spent (for future reference) and, not to mention, show the business’ worth – which is no doubt huge to the holding company…..but how fantastic would it be to have documented proof that we are offering a significant return on investment?  There are many systems out there for time tracking, effort tracking, etc….but they can get very costly.  It would be ideal to find a way to track the total effort, tally the numbers and have this as a reporting tool……this could be something the PM could track, or otherwise designated. 

Project Management:  Ultimately, this piece will take care of itself with simple proactive organization, action and re-action.  Needed are requirements outlined and accurate estimations to be able to set goals.  The project should always be something that is finite.  It needs to have a clear start and a clear finish…….which doesn’t necessarily mean there needs to be tons of extra documentation and extra “busy work” for anyone, but it does mean that everyone should be on board with the expectations as to when something starts and when it ends.  This could be a simple patch or change to the system or something HUGE that takes weeks/months.  There are going to be uncertainties, risks, delays, problems and issues that will all need some action and attention….that’s a given, though we’ll hope they are always very small and non-threatening…..but given that, we need to control the things we can for “best success”.

Dansette