How BDB Software is Transforming Flow Cytometry Solutions with Agile Practices
Gunther Lenz
Software Technology Executive | AI, Cloud & Digital Transformation | Technology, Healthcare & Life Sciences Focus | Former Google, IBM Watson, Microsoft | Published Author
In this article, I will share some of the changes we have implemented or plan to implement at BDB Software to improve our flow cytometry software development and delivery process.
DevOps Pipeline
One of the key aspects of agile software development is to enable fast and frequent feedback loops between developers and customers. This allows us to identify and fix issues early, deliver value incrementally, and respond to changing requirements quickly. To achieve this, we need a robust DevOps pipeline that automates our software's build, test, deployment, and monitoring.
We use state-of-the-art tools that help us to:
Using these tools reduces the time and effort required to build, test, deploy, and monitor our software. We have also increased our software's reliability, security, and scalability.
Test Automation
Another important aspect of agile software development is ensuring our software's quality. This means that we need to test our software thoroughly and frequently to ensure that it meets our customers' expectations and complies with our industry's standards. However, manual testing can be time-consuming, error-prone, and costly. Therefore, we need to automate testing to save time, reduce errors, and increase coverage.
At BDB Software, we have increased our test automation by using tools such as NUnit, Selenium, SpecFlow, Postman, and JMeter. These tools help us to:
By using these tools, we have increased the quality of our software by detecting and fixing bugs early. We have also increased the confidence of our developers by providing them with fast feedback on their code changes.
Self-Upgradable Features
One of the challenges of delivering flow cytometry solutions is that they often require frequent updates to keep up with the evolving needs of our customers and the advances in our industry. However, updating software can be risky, disruptive, and expensive. Therefore, we need to minimize the impact of updates on our customers and maximize the value they get from them.
At BDB Software, we have implemented self-upgradable features in our software that allow us to update them without requiring any intervention from our customers or long downtime for our software. These features include:
By using these features, we have increased the agility of our software delivery process by enabling faster feedback cycles, easier experimentation, and safer deployments.
领英推荐
Modularized and Evolutionary Architecture
One of the benefits of flow cytometry is that it can measure many parameters simultaneously from a single sample. However, this also means that the software that supports flow cytometry needs to handle a large amount of data and complexity. Therefore, we need to design our software architecture in a way that can cope with the high demand and variability of our domain.
At BDB Software, we have adopted a modularized and evolutionary architecture approach for our software. This means that we have:
Using this approach, we have increased our software's modularity, flexibility, and maintainability.
Organizational Structure
One of the agile software development principles is to align the organizational structure with the software architecture. This is based on Conway’s law, which states that “organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations”. Therefore, we need to organize our teams and processes to support our software development and delivery goals.
At BDB Software, we have restructured our organization to follow a cross-functional and self-organizing model. This means that we have:
Process Changes
One of the benefits of agile software development is that it allows us to deliver software in small and frequent increments rather than in large and infrequent batches. This enables us to get feedback from our customers sooner and adjust our plans accordingly. However, this also means we must change our processes to support shorter release cycles and faster feedback loops.
At BDB Software, we have made several process changes to support our agile software delivery goals. These changes include:
By using these changes, we have increased our software delivery process's efficiency, effectiveness, and responsiveness.
Conclusion
At BDB Software, we are passionate about providing our customers with the best flow cytometry solutions in the market. To do this, we are constantly improving our software development and delivery process by changing the organization, the technology, the architecture, and the processes. These changes help us deliver innovation to our customers faster and more iteratively.