Software development organizations that want to successfully reach their strategic goals need an explicit approach to software development governance, but SDG has only recently been recognized as a distinct discipline. Thus, there are not yet practical means for software companies to address governance effectively as the existing state of the art cannot as such be applied to software organizations. Software development is different from non-software product development because quantifying basic aspects, e.g., progress, is difficult. Software engineering deals with abstract concepts rather than real physical entities; thus making changes to a software product is relatively easy compared to a physical product; consequently, the software development process is fundamentally different. Also, the software development landscape changes constantly: new operating systems, programming languages, methods, and frameworks are introduced frequently compared to other product development domains.
Software development governance (SDG) aims to create an environment where an organization’s software development capability is arranged in such a way that engineering and business goals are met. However, currently, SDG solutions are created in an ad-hoc fashion from methods and tools originally intended to address other issues. Tailoring these borrowed solutions requires expertise that is, at present, provided by consultancy firms at significant cost. As such, comprehensive SDG implementation tends to be confined to large firms that have the resources to employ consultants and staff process improvement departments.
To address these shortcomings, SDGear provides three SDG innovations:
- A framework that unifies existing knowledge and experience in SDG to create a guide or "map" that software development organizations can use to define and implement a tailored SDG approach.
- A set of cloud-based SDG software services that provide building blocks that can be composed into a comprehensive yet tailored SDG support solution.
- A cloud-based service discovery and composition mechanism that links the SDGear framework to SDG services.
SDGear facilitates SDG through a three-stage approach:
- Definition: this stage defines the decision making structure: who (as in roles) makes what decisions, who reports to whom, the metrics used to monitor implementation of decisions, and the controls that will enforce decisions.
- Selection: this stage selects specific methods, processes, services (tools, data repositories, etc.), and information and data sources that will be used to implement the structure, measurements, and controls defined in Stage 1.
- Implementation: in this stage, the structure, measurements, and controls defined in Stage 1 are deployed using the methods, processes, services, and information and data sources selected in Stage 2.
The SDG platform is composed of:
- Wizard for adding new SDG methods and tools as service. As was previously mentioned, there is no comprehensive tool, tool set, or framework for SDG, but there are many tools that can support various aspects of SDG. For this reason it is important to find ways how these existing (legacy) tools can be included as services in the SDGear framework. Any new tool being developed for SDG can be specified “SDG service compliant” already in development (see method & tool services). However, for these legacy tools, service decomposition can be problematic, partly because existing interfaces are difficult to change. In this case the decomposed services have to be built using these interfaces. One of the challenges in this case is the degree of coupling between the tool functions. These relations between the functions have to be well understood in defining decomposed services. If source code modifications are possible interfaces can be added or modified in a re-engineering effort that enables SDG services creation. In some cases, even reverse engineering could be employed if source code has been lost or otherwise unavailable. The SDGear project will work toward enabling viable monolithic tool decomposition strategies. The wizard concept will be developed to aid in the decomposition. For vendors, the wizard will provide an easy way of adding their methods and tools into the SDGear platform as SDGear compliant services. The wizard will also act as mediator between (e.g. data transformations, common protocol support,) heterogeneous tools and methods, and the SDGear platform. As a mediator the wizard will provide common protocol support and data transformations. The mediator development can benefit from the results of the FI-WARE project (Generic Enablers for Composition and Mashup).
- Method and Tool Services. SDGear will work on specifying SDG service descriptions for tools and methods. How the SDG services will be specified and what they will look like remains to be defined during SDGear development, as there are no complete SDG service offerings currently available. However, the idea is that research into governance services would yield the necessary input for defining the services both functionally and structurally. At the SDGear platform level, service definitions could be done by applying existing solutions (e.g., The Unified Service Description Language), adapting them to the SDG context, and creating new solutions as needed. As a result the project could provide an SDG service description template for methods and tools, guidelines on implementing the services, and example implementations. This work will be addressed in work packages 1, 2, 3 and 4.
- SDG-as-a-service wizard and SDG service selection support. The task of combining individual SDG services into a customized, integrated SDG offering falls to the SDGear service wizard. With the help of service selection support, a company’s current situation (business goals, technologies used, etc.) is described in the wizard, using the vocabulary of the SDGear ontology (result of WP1). Then the wizard can suggest services and metrics that have been registered into the SDGear platform, and are applicable to the described situation. In the next step the wizard composes the services, coupled with metrics for monitoring performance, into a solution which optimally supports the described situation. Finally, the total SDG-as-a-service is deployed as cloud-based solution. The wizard can benefit from work done in FI-WARE which will enable composition from the front-end perspective – mash-ups but also from the back-end perspective – composite services, but also from the more general cloud hosting proposition.
The main result of the SDGear project is the SDGear framework and platform for software development governance. The SDGear framework will include software development governance services and guidance on the best possible set of SDG technologies as a service. The below figure describes how SDGear aims to create SDG solutions from monolithic SDG tools. Figure 3. SDGear solution composition The monolithic SDG tools and methods are decomposed into individual services (point solutions) as has been discussed in the Innovation section. SDG solutions are then created for a specific situation and need with the help of the SDGear service selection wizard, which helps to find the right set of SDG services to create a comprehensive SDG solution. The SDGear framework will define the concept of decomposing the monolithic tools as well as the concept of combining the individual services into comprehensive SDG solutions. This will then be implemented in the SDG platform in the cloud.
The project SDGear (Software Development Governance as a Service) (TSI-100104-2014-4), is framed under the ITEA 2 Call 7, and it is co-funded by “Ministerio de Industria, Energía y Turismo (Plan Nacional de Investigación Científica, Desarrollo e Innovación Tecnológica 2013-2016) and “Fondo Europeo de Desarrollo Regional (FEDER)”