Over the last few years, I have had the opportunity to deal with Software Vendors. Either product or service providers or both. Here are some thoughts and learnings on how to manage them.
- Procurement and Assessment. Here is the proposed model.
- Business Owner identify need/materiality
- Business owner with help of IT owner develops a Vendor compatibility matrix
- References- at least 3
- Schedule site visits/demo based on your user scenarios to understand:
- Challenges during implementation
- How good is the vendor at:
- Breaking down into smaller modules?
- Pushing back on requirements, given their expertise. There are way too many vendors who will yes you to death and deliver nothing.
- What performance metrics (time, quality) were used to evaluate deliverables?
- Challenges post-implementation/support
- Challenges with upgrades, updates, and patches
- Test Drive in a Pilot environment for a few key User Scenarios.
- Contracting: driven by Business Owner supported by IT owner.
- Contracts should be performance-based, milestones deliverables.
- Penalties for missing in timelines and quality.
- Bonus for coming in sooner and high quality.
- Understand Upgrade, Updates and Patches process.
- Need APIs to get data in and out of the system if we choose to move to a different vendor.
- Need complete transparency of development process.
- Include Source Code handover process as part of the contract.
- Bad code === Bad Product.
- Access to source control
- Frequent code reviews.
- Testing
- Review Test Plans
- Deliver executed test plans with each functionality deliverable.
- Lessons Learned
- When bringing contract resources onsite, need a timed plan with daily updates to adjust course as needed.
- Requirements
- Must include screenshots and flows (diagrammatic representations).
- Any that says “make x work like y” is unacceptable. Need to define both current and future state.
- Break requirements into small deliverable modules. Get out of the business of 6 months or longer projects.
- Contract Management
- The payment schedule should coincide with deliverables. Not guaranteed payments without a check on deliverables.
- Review contracts annually for what we use versus don't.
- Measure yourself by how many unused features you have cut from current contracts.
- Pay attention to overage charges you have paid over last 6 months.
- Are the vendors pointing out to you when you are overpaying? If not, use it as leverage when negotiating.
Some of the points above, like Code Reviews, Test Plan reviews are very hard to pull-off. But in my experience, the smallest attempt at it pays huge dividends.
What learnings do you have when dealing with vendors? Please share in comments below.