Clinical Architect and Software Lifecycles and Design Methodologies
NOTE: This post is a follow up from the overall post on what does a clinical architect need to know.
I think understanding some of the common approaches to software engineering is important for a clinical architect. At the least, you’ll need to participate in a process. Likely, you’ll have some influence on that process. As Clinical Architect you may be called upon to help (re)define some or all of the process of development of a Clinical Information System, especially if you have worked on the Enterprise Architecture.
One does not need to be a guru in RUP or a SCRUM master, but it helps to know the differences between waterfall approaches, agile methods, and even some of your vendor’s processes (where there is a dominant vendor in the organization and the system is not locally built).

The waterfall approach to development has a fantastic elegance to it. (See figure on left) You move from top to bottom, completing each step in logical order. You completely define your requirements before moving on to design. That way nothing is missed and effort is not wasted building pieces incorrectly.
Only thing is, it does not work.
Especially in healthcare, where there are complex systems in play with complex systems, it is not possible to “complete” a step. That is, you will never define all your requirements. You cannot get all your requirements “correct” as they are attempting to define ill defined needs that are often in conflict between groups or users (e.g. health planners may need something that providers do not need). Get a requirement wrong early in a pure waterfall approach and you do not realize it until later. Later means more expensive to fix. Often much more. Sometimes more than can be afforded at the end of a project (especially when the planning does not include changes of that magnitude).

Iterative approaches, of various kinds, begin with the admission that you cannot know it all. You have to learn through action. Thus, you iterate through increasingly refined understandings of the problem and solution space. High impact / high risk areas are addressed first, so those have the most time to be refined and improved. Approaches are used that lessen the impact of rework.
How you iterate depends on the approach. Most groups adopt aspects of different methods into their own custom fit agile method. I think that is a good idea. It is hard to justify a truly extreme programming approach in healthcare that includes putting semi-functional content into production with live patients. However, being able to iterate aspects of systems, test them, refine assumptions, work with providers to allow them to provide feedback and to mentally adapt to new ideas is key. Iterative approaches can support that process. It can be done in pre-production environments or even offline (paper prototyping can even work), and then allow for careful testing prior to production go-lives.
The challenge with iterative approaches is they often do not fit well into waterfall thinking. As I said earlier, waterfall is elegant. That elegance is easily understood by steering committees and executive sponsors. Why wouldn’t you plan out everything in advance and then just build it right the first time? I mean, that’s what they did when then built the bridge, isn’t it? Software is different, and that is especially true at this stage in the evolution of clinical information systems. We do not have the same experience as a bridge builders and there are more variables to consider.
One of the roles, then, of a Clinical Architect, is to ensure that the right process for the job is used, that standards are adhered to, that content is appropriately tested, AND that sponsors understand why projects should iterate and why it is important to learn through action.
Finally, if your organization has a dominant vendor product (e.g. your hospital information system is a vendor product), you will need to know their development processes. This is important to be able to make suggestions / feature requests, but also incase you are hiring / contract additional services.
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
