Your organization probably relies on multiple open source projects. Using strategic design to understand the big picture problems your organization faces may allow you to improve the user experience and design of your IT systems.
The open source development model means users and organizations obtain access to the greatest amount of innovation and participation. Developers can increase their productivity and gain access to more collaborators. As organizations seek to adopt technologies based on open source, they often realize that it's easier to purchase open source software rather than obtaining it directly from the community. There are many reasons including support, cost, focus on core business, and even indemnification that make it beneficial to purchase rather than obtain it directly from an open source community.
This model works well when organizations are using a single product based on a single open source community project. However, the open source development model poses challenges to creating a cohesive design and user experience across multiple products derived from open source projects. This problem ultimately affects the design and experience of the products organizations buy. In order for open source to continue its success in becoming the de facto standard, a solution for the problem of coordinating design and user experience across multiple communities must be solved. Using strategic design may improve how open source communities work together to deliver a better user experience and solution design. Strategic design, according to Helsinki Design Lab, applies traditional design to systemic challenges and redefines how problems are approached to deliver more complete and resilient solutions. Tim Brown, CEO of IDEO, summarizes some the purposes of design thinking (a major element of strategic design) very well in his Strategy by Design article. Strategic design in the context of developing solutions from open source projects involves embedding designers upstream in open source communities. These designers work with related communities in quick iterations, across silos, to reduce duplication and increase the real value delivered by the combination of those projects.
The challenge of solving the problem of coordinating user experience and design across multiple open source communities should not be underestimated. Influencing a single open source community is difficult in its own right. and influencing multiple communities in a coordinated manner is even more difficult. Developers in open source communities are purpose driven, wildly focused on their problem, and are focused on incremental progress. These developers justifiably shy away from grand plans, large product requirements documents, and forceful attempts to change what they are building. What is needed is a way to illustrate to development and community leaders how they can better satisfy their problem by working well with other communities, and allow the community leaders to conclude on their own that they should work in the illustrated manner.
On my team at Red Hat, we have recently tested the use of strategic design across several areas of our technology by organizing a design practice trial workshop. The team consisted of experts on various technologies from the field and engineering along with user experience experts. We wrote a design brief that scoped our problem based on what we heard from our users. The workshop focused on the problem of how organizations could define reusable services that could be ordered via a self-service catalog that would be automatically deployed across a hybrid cloud. The community projects included in the exercise included OpenStack, OpenShift, ManageIQ, Ansible, and Foreman.
The milestones for our workshop were simple:
- Identify a common problem taking place across our customers using multiple products based on open source communities.
- Analyze how the problem can be solved using the technologies in their current state.
- Conceptualize an ideal user experience starting from a blank slate.
- Share what was discovered with community leaders and product managers to assist with incremental improvement and influence direction toward the ideal user experience.
This hands-on three day workshop resulted in three positive outcomes.
First, we found over 25 incremental improvements in the user experience and design between the products used to solve the problem. This included how ManageIQ and Ansible integration could be improved, the need for Ansible modules for projects like OpenShift and OpenStack, and improvements in the OpenShift container provider in ManageIQ to name just a few.
Second, we generated several new ideas for how we could solve the problem in a different manner. This fresh look at how to solve the problem instead of thinking incrementally will lead to improvements in the experience and design delivered in the long term. For example, we came up with several concepts around how we could combine DevOps tools in the areas of continuous integration and continuous deployment, collaboration, testing, and source control management with infrastructure elements such as networks, compute, and storage.
Finally, participants gained a greater understanding of each other's technology, and we developed a shared understanding of the problem and how we communicate about it. The ManageIQ experts learned more about OpenStack Heat Templates. Our OpenShift experts learned more about managing container based applications with ManageIQ and automation with Ansible. This shared understanding will lead to better collaboration between the participants and reduce the likelihood they will develop competing approaches. Ultimately the open source projects and products they work on will see improvements in user experience and design through this communication and mutual understanding.
Whether strategic design will lead to better community collaboration and cross product design remains to be seen, but one thing is clear: the more time we spend practicing strategic design, the better the experience will be for our customers.