Building life science software products isn’t trivial. This blog post focuses on how our BioDesign team use prototyping to help kick off the process.
We often work on projects in their early stages when there is no user interface, or even before any coding has begun. At this point, there may only be a list of scientific and technical requirements, a founders’ broad vision for a product, or simply an initial hypothesis that has never been validated. Our response to this is to produce a prototype as quickly as possible, to turn an idea into something tangible.
This is part of our design-led approach, and we do it for a variety of reasons. Prototypes can be used to understand what people want from a software tool in user research interviews, or to explain the purpose of a new product as part of an investor pitch deck. Sometimes, these can be used as a tool to encourage internal discussion and to help create alignment in a team.
A very big thank you to the 20+ hackers working on our #biodatahack challenge: our ⭐️⭐️⭐️⭐️⭐️prize goes to Team 2.0 for its star system #UI, Repurposr. Well done! W/ @sciencepractice. pic.twitter.com/IYPFDZkZ0g— Open Targets (@targetvalidate) July 4, 2018
In general, a prototype is a stimulus — a talking point for a conversation. Because they are quick and cheap to produce, they are a great way to explore the possible workflows, features, and interactions of a new software product. This is particularly relevant to scientific software, where design patterns are not yet fully established. By trialling out options before committing to code, it is possible to save time and money by avoiding building products that people don’t understand or need.
The prototypes that we initially create are ordinarily mockups created in user interface (UI) design software such as Sketch. These are essentially drawings of UI, and can be made dynamic by using additional software that mimics interactivity. We use Marvel which is essentially an online slide show of static screens linked by hotspot buttons. These can be made to feel very similar to a real interface, in a fraction of the time taken to develop interfaces in code.
As life science software becomes more sophisticated and widespread, the number and type of users broaden. For example, users of genetic analysis software can range from clinical geneticists to doctors and patients.
We use prototypes in interviews with users as a stimulus. Showing people something tangible helps focus conversations on the research question, and lessens the possibility of people misunderstanding what you are trying to do. For scientific products this allows you to understand the right level and type of scientific detail to include, and the context of use for your product. This insight is then used to help determine which features to build, and how workflows should be structured to match scientific work patterns.
Scientific software products are, by definition, based on scientific concepts, which can be complex to understand for newcomers. This can make it challenging to approach customers or investment in the early stages of a new product. One way to clearly communicate the potential utility of a new tool is through a prototype. For example, a prototype can be used to show a use case for the tool, helping people to ground the concept in real working practices.
It is not unusual for scientific products to have multiple stakeholders: universities, funding organisations, non-profits, for-profits… A prototype represents the first attempt at a consensus of a product and therefore will highlight areas in which people are not in agreement. By collating stakeholder feedback on the prototype, we can facilitate productive discussions about differences in ideas, and a path to alignment on a single vision for the product.
We think that rapid prototyping is one of the most useful design approaches that is not yet widespread in the scientific sector. As scientific software tools move to become software products, methods such as prototyping can allow these to be more focused on user needs and ultimately be more useful for people.