1.How has your software testing operating model changed during the last five years?
Eze Software was formed in 2013, combining Eze OMS, RealTick (now Eze EMS) and Tradar (now Eze Portfolio Accounting). Our development effort has focused on automating workflows in the front, middle, and back office, integrating those components into one single straight-through process, and reimagining the entire investment process in the cloud. We continuously work to improve cross-product integration so our end users–investment professionals– can rely on a seamless technology experience to automate operational tasks. Additionally, we are working on a single holistic process for our cloud offering.
Our testing model has evolved a lot over the past three years. We focus heavily on continuous integration and automation as part of product delivery. With the increased use of automation, we have moved to leveraging cloud services over private virtualization so we can scale quickly.
With respect to teams, our testing has become more collaborative and a more shared responsibility of the entire team (not just team members with QA in their title). This directly flows from our Agile process that focuses on limiting work-in-progress, and low cycle-time, high quality delivery.
Learning to adapt to small-batch work and thinking iteratively about delivering value are often big hurdles for some technologists. Technologists that are used to working on features over a long period of time are used to the thrill of a big bang release. Technologists that fully embrace Agile learn to make small deliverables daily that are potentially invisible to customers. The best practitioners are able to find iterative deliverables they can get in front of customers regularly for feedback, adapting their process to adding value over time. They also understand that smaller batch work doesn’t mean cutting corners, but it means doing the right amount of work to deliver the next meaningful feature.
We've had to transform our quality processes and focus on not being "Development and QA" but "Engineering". We've emphasized that testing is everyone's responsibility in the team and that product code and test code are equally important. To support the Continuous Integration and Delivery processes needed for an effective and competitive service offering we have set goals with teams on delivery expectations. We utilize information radiators to promote visibility and focus. It even encourages friendly competition between teams.
"With the increased use of automation, we have moved to leveraging cloud services over private virtualization so we can scale quickly"
Because of the mindset shift we focus on doing “kaizen” and encouraging teams to iterate on their own processes, keeping what works and discarding what doesn’t. This focus on improvement on the team level carries over to the entire program and up to the functional department level. The cycle of delivery-feedback-improvement-delivery is the heart of shifting to a service offering model.
I think it's important to note that leaders need to be social engineers as much as technologists. Installing new processes and expectations across an organization requires effective communication and salesmanship if you really want to change behavior and achieve results. High emotional intelligence is as important as a strong understanding of the new technologies, because you need to bring everyone to the table and respect the equally important but different perspectives of everyone on an Agile team. This means incorporating views from developers, testers, scrum masters, product owners, UX designers, and others. You need to be able to practice what you preach, but also evangelize and rally teams around the changes.
I would like to see Cloud CI services continue to mature and improve their security models. I am also excited about evolving automation technologies, and the integration of test services into build systems, coding tools, and project tools (like JIRA). Those growing integrations allow us to focus on improving our ability to scope testing based on risk profiles. Integrations to collaboration tools like Slack also help ensure that any test failures (and the diligent response to them) are immediately visible to teams.