Top 5 Suggestions When Working With Software Service Providers
Having been in the software service providing industry for over 20 years, we have seen a wide variety of wonderful clients, small and large, inexperienced, and experienced. At Promenade Software, when projects complete, we like to perform a retrospective to learn from the experience. As part of this, we have seen the patterns of our client’s involvement that result in a highly successful project. In this blog we will share the top 5 things you, the client, can do that will greatly benefit your project.
Have a good product definition. Know what you want before engaging. Unless you have a very loose budget for your project (we’ve never seen that), spending the upfront time and brainpower to define your project before engaging will drastically improve the process. Even the most prepared clients will have changes as the project goes along, but if you only start with a vague idea, there is a good chance a big portion of your project budget will get blown in group discussions and on-the-fly project changes. Nobody ends up happy in that case.
Provide good communications. Make sure you are very involved along the entire development process. Attend regular meetings and have the right people available for answering questions, and/or making prompt decisions that impact current development. With regular involvement, you can see the progress, raise concerns, ask pertinent questions, and request alterations quickly and efficiently. When questions and decisions take a long time, the project development becomes inefficient, and the dev team is less likely to ask you helpful questions along the way.
Do not make problematic assumptions. Don’t make assumptions about easy changes being rolled in for free. 100 one-hour changes results in 100 hours of extra development plus test and documentation - it adds up quickly. Also, do not make assumptions about the difficulty of a change. Sometimes changes can affect more than what meets the eye – and the dev team will evaluate. You wouldn’t tell your doctor or lawyer that something is “easy” for him or her to do – so don’t presume it for your software team. Understand that changes made later in the project are much more expensive than earlier changes. Late in a project, a lot of extra work needs to go into a change; documentation needs to be reviewed and updated, including but not limited to design, test procedures, traceability, risk analysis, security risk management, SBOM (Software Bill of Materials), vulnerability and more. Some changes can’t be avoided, but understanding the schedule and budget impact towards the end of the project might alter your priority of the change.
Maintain continuity. Try to make sure that development can be continuous. If we need to pause to wait for decisions to be made, payment received, or another part of the project to catch up, the engineers are put on something else. They are not sitting around being idle while they wait for the project to resume. Long pauses could result in a whole new team needing to be formed upon reinstatement, and the transfer of knowledge can take time. We understand that sometimes a pause is unavoidable, but understand that there will be impact to the project.
Have a team attitude. Like with any relationship, people like to work where they are respected and treated well. Making our team feel part of your project team encourages open discussion, constructive critique, and overall good engineering practices. Most of our projects have been great in that regard, but we’ve had the occasional attitude problem which can be very annoying and distracting to the team. Projects rely on teamwork - good teamwork always results in a better outcome.
At the end of the day, all parties involved in a project have the same goal – project success. We always want to learn from our experiences, and with posts such as these, we hope others can benefit as well. As always, if your company is in need of any software development, test, or regulatory help, please contact us for a discussion.
Frances Cohen is President of Promenade Software Inc., a leading software services firm specializing in medical device and safety-critical system software. Frances has more than 20 years of experience leading software teams for medical device software. Starting with heart defibrillators for Cardiac Science and following with Source Scientific LLC and BIT Analytical Instruments Inc., Frances has overseen dozens of projects through development and the FDA, including IDEs, 510(k)s, and PMAs.
Frances has a B.S. in computer engineering from the Technion, Israel Institute of Technology.