This week I spent in Buenos Aires (Argentina) at the International Conference on Software Engineering (ICSE 2017), which is the premier event in the field. As usual, I enjoyed the pre-events such as workshops, smaller co-located conferences and panels more than the main conference itself. Although many will disagree with me, I feel that the new thinking and insights are found in these smaller pre-events and that the main event is more conservative.
During the days, there was one theme that kept on reappearing (or at least it felt that way to me): with especially large companies viewing themselves as ecosystems within the walls of the organization, the broad interest in and adoption of software ecosystems and the attention to systems-of-systems, the traditional process- and architecture-centric mechanisms for exhibiting control are no longer effective. And it is unclear what replaces these mechanisms. One thing is clear though: we’re moving from centralized control to decentralized alignment and mutual influencing.
When analyzing alignment, we can identify four dimensions of alignment. First, there is process-driven alignment, such as traditional CMMi processes. These processes worked well inside of companies, but as companies increasingly move toward ecosystems and partnering, approaches such as release trains, independent deployment of components by different partners as well as automated deployment of new versions of components by subsystem providers will increasingly become the norm, even for safety- and security-critical, regulated systems.
The second dimension of alignment is through architecture. By defining interfaces, traditional platform companies provided extension points that third parties could use for customer-specific or domain-specific extensions. Through software product lines, companies applied these principles inside the boundaries of the organization and with the emergence of software ecosystems, the same mechanisms were offered to third parties. Going forward, however, strict architecture control will not be feasible in decentralized contexts as it puts too much power in the hands of a single player. Hence, we need new mechanisms such as architecture principles and under-specified interfaces agreed among communities.
The third dimension is alignment through the business model. Traditional organizations used typical customer-supplier models where suppliers were reimbursed for delivering subsystems with specified functionality. Using this approach, large platform companies seek to develop control points in the ecosystems that allow them be gatekeepers to third party solution providers. Going forward, other business models such as revenue sharing, free use of the platform for a fee, indirect monetization mechanisms, such as through advertising and data sharing or the complete absence of a commercial relationship seem likely models in a decentralized world.
The final dimension companies use for alignment has been the legal model through contracts. Especially large companies have used legal agreements as mechanisms to achieve control, exclusivity and an (un)balance of power which by many would be considered to be unfair. Going forward, we are likely to see different forms of SLAs with harder or softer terms in the context of service deployments, license agreements of various forms that support aforementioned business models as well as Free/Libre OSS (FLOSS) legal terms that allow the users of the software or service to use it in any way it wants (depending on the OSS license used).
In global software engineering, ecosystems and systems of systems, the alignment between partners is less and less control driven and other mechanisms for governance and alignment are required. Above, I discussed the four dimensions of alignment that companies can use to decide (1) how they would like to govern and align with partners (inside or outside the organization) and (2) what would be acceptable or not acceptable for them in terms of governance imposed by their (potential) partners.
In a world that is moving towards decentralization, finding the right mechanisms for alignment and governance are going to be key for companies to be successful going forward. Insist on centralized and absolute control and the ecosystem will bypass you. Maintaining too little leverage in the ecosystem, however, will limit your ability to monetize. As usual, the right balance will depend on the situation and likely change over time as well. A software driven world is an exciting world!