Cadence has helped thousands of leading companies get more projects done over the past 30+ years, with a methodology that is flexible, scalable and adaptable according to the type, size, risk and complexity of the projects at hand. However, the project determines what methodology is used. Some projects are best managed with Cadence, some with Agile—and some with a combination of both, or a hybrid methodology. Below is a guest post, the first of the Cadence Thought Leader Series in which Syncro Medical explains their approach to a hybrid project management approach.
Syncro Medical is in the business of providing medical software engineering services to our clients – mostly manufacturers of medical instruments and systems. We write the software that enables a wide variety of medical instruments — ranging from bedside patient monitors to large blood testing systems used in clinical labs, to mobile apps which monitor ventilator-dependent patients. During our more than 25 years in this business, we have seen a number of approaches to planning and tracking the projects we’ve been involved in. We have engaged in projects that use casual, ad hoc development; formal, phase-gated waterfall plans; iterative development; Agile methodology; and most recently Kanban. And, rather than replacing its predecessor, each new approach has expanded the range of options available.
My experience has taught me a given project should use the method or methods most appropriate to its particular needs, and usually the best approach is a hybrid model.
The Legacy – Traditional Project Management
For many years, those of us in the software development world used a traditional waterfall approach to project management. This involved creating a task list, developing a work breakdown structure, creating estimates, assigning and leveling resources, and establishing baseline schedules and a monitoring system at the very beginning of the project.
While this approach has its merits — letting stakeholders know what needs to be done and where things stand — it does not readily support the flexibility and efficiency required in modern software projects. Often the entire effort takes longer and is more costly. Because requirements are never fully understood at the beginning of a project, and since the end user may not see or work with the results until the project is nearly complete, the inevitable feature changes cost much more to implement later on. Even worse, sometimes there is pressure to stay with the original plan even if it means the outcomes aren’t what’s desired.
Over the last few years, use of the Agile methodology for software development has become very widespread, and for good reasons. This approach doesn’t assume omniscience at the earliest stages, but rather supports continuous revisions and refinements along the way as requirements are better understood. As a result, the end results will be much closer to what’s needed.
Here’s how Agile works: Product features (“user stories”) are identified early in the project. These user stories are then prioritized and assigned to a planned series of “sprints”. During each sprint, which typically lasts three weeks, the development team does detailed design, coding, and unit test for the features assigned to that sprint. At the end of the 3-week sprint, an updated version of the software is then demonstrated to the client. Needed feature changes/corrections are identified, which will be addressed by the development team in subsequent sprints along with features that haven’t yet been started.
A Hybrid Approach Works Best for Us
But for an Agile project to work best, it needs a starting point. “Framing” a project involves defining an architecture and high-level design, and a general set of requirements. Sometimes this takes the form of a proof-of-concept effort or a dedicated requirements analysis phase, which often doesn’t follow the same pattern as Agile sprints. In fact, sometimes it can be more waterfall-like, with a documented set of high-level requirements and design used as a “phase gate” prior to moving into a sequence of sprints.
Once the project moves into its sprints (the Agile phase), more detailed design and requirements definition/ refinement takes place within the sprints themselves. This is the stage during which the stakeholders and potentially end users can evaluate progressively complete versions of the software.
From the “macro” project perspective, a hybrid approach also works best. Much of our work is in the context of a large, multi-discipline development effort — often including hardware and instrument design, industrial design, and in some cases biomedical research or biochemical engineering. Further, our software piece fits within our client’s corporate-wide Quality Management System, which often calls for high-level, phase-based plans and decision points. In terms of the overall project, a hybrid approach meets both sets of needs – Agile development for the bulk of software portion of the project, while fitting within a more traditional high-level phased project plan.
– – – – – – – – – – –
The Agile methodology is used extensively for today’s software development projects. It yields a number of benefits – flexibility, speed, and results that closely match actual end-user requirements. However, a hybrid approach, which leverages the benefits of both Agile and traditional waterfall development, has proven to be most effective for real-world software development for medical instruments and systems.
About Bill Heinemann:
As VP of Engineering at Syncro, I work with a team of 30 talented software engineers to help companies bring their software-enabled products to market faster. We specialize in creating software for medical instruments and systems, conforming to FDA-regulated development processes. I’ve been in the software engineering field for 30 years in a number of positions, including Software Engineer, Engineering Manager, Software Product Manager, Director of Software Engineering, and now VP of Engineering. After nearly ten years at Universal Instruments Corp. (circuit board assembly machines and systems), I spent three years at Kulicke and Soffa Industries, (semiconductor instruments and systems). I’ve been with Syncro since 1996. Having worked in this industry for a number of years, I have first-hand knowledge of the challenges facing fellow software engineering managers. My engineering team at Syncro accomplishes two key goals for our clients: accelerating the development process and delivering top quality results.
For many years, when appropriate, Cadence has used Agile processes within the project lifecycle. Please visit Agile and the Cadence Methodology to hear how Cadence maps to the Agile methodology. Today, Cadence is incorporating even more Agile processes in response to changing demand from clients. To help shine more light on the hybrid Agile approach, we hope you enjoyed a real-world example of how one company uses a hybrid model to create and integrate software into a wide variety of medical instruments.