establishing a tool chain environment, aligned with development process and culture. ... In addition, the process of software application develop- ment requires ...
Tool Chains in Agile ALM Environments: A Short Introduction Saed Imran(B) , Martin Buchheit, Bernhard Hollunder, and Ulf Schreier Faculty of Business Informatics and Informatics, University of Applied Sciences Furtwangen, Furtwangen, Germany {saed.imran,martin.buchheit,bernhard.hollunder, ulf.schreier}@hs-furtwangen.de
Abstract. The article highlights tool integration within the Agile Application Lifecycle Management (ALM) environments. An essential ingredient of an effective agile ALM process is concerned with the techniques used to form the coalitions of tools that support some or all of its activities. This article aims to address the problem faced by practitioners while establishing a tool chain environment, aligned with development process and culture. To provide practical step wise information on the creation of a tool chain, we have explored how the ALM process model can be used for creating a skeleton of specialized tools. We identify a set of proposed criteria for tool selection and show how tools can be set up on different development platforms.
Keywords: Application Lifecycle Management Integrated application development tools
1
· Software tool chain ·
Introduction
Traditionally, software development was treated as a factory process in which the development activities were mainly aligned in a sequence as were the efforts on their management. This results in longer development time-lines with slower responses to a changing environment and lower user satisfaction rating. As a consequence, software engineering moved into the era of agile software development. Agile software development is in fact a realisation of agile practices such as Scrum, Extreme Programming etc [1]. These practices advocate iterative learning, development and improvements through earlier and continuous customer feedback. This has led to the recognition of agile practices as being adaptive and people-oriented. In addition, the process of software application development requires experts from a number of software engineering disciplines such as domain knowledge, design and architecture etc. Each of these disciplines involves a different set of specialized development tools that are specific for their particular development phase. Application Lifecycle Management (Application Lifecycle Management (ALM)) on the other hand provides the capability to integrate, coordinate and c Springer International Publishing Switzerland 2015 I. Ciuciu et al. (Eds.): OTM 2015 Workshops, LNCS 9416, pp. 371–380, 2015. DOI: 10.1007/978-3-319-26138-6 40
372
S. Imran et al.
manage the different phases of software engineering discipline that are related from the initial planning phase of the software product throughout its retirement [2]. In addition, Application Lifecycle Management (ALM) supports an agile environment that allows development teams to adapt agile practices to best fit to their needs, mitigate barriers and risks that could impede the teams progress. According to David Chappell [3], ALM is a business process, which includes the set of activities required to create and run custom applications. He emphasises that “any organization that creates custom software should take the ALM process at least as seriously as it does any other important business process”. It is also described as a continuous process of managing the life of an application through platforms that provide a project workspace with an integrated tool set, encompassing all software development activities, such as requirements management, design, coding, testing, and release management [4] [5]. In contrast to the traditional approach of software development, where the initiation of the subsequent activity relies on the completion of the preceding, the performance of the agile approach relies heavily on a tool support, which plays a fundamental role in smoothly running and efficiently managing product development environment [6]. According to Doyle [7], ALM is a set of tools, processes and practices. Therefore, it can be argued that one of the paramount goals of agile ALM is to facilitate integrated tool-sets to support project lifecycle. Multiple tools have the potential to improve the productivity in the development process, depending on how well they are integrated with each other and their degree of automation. It is important to mention here that the term “integration” refers to the relationship of a tool with other elements in the environment, chiefly other tools, a platform and process [8]. Moreover, tool chains can provide different coverage of the development process and it is widely believed that integrating the tools into an automated tool chain can improve the productivity of development [9]. However, in agile development environment, applying a tool chain can impose great hardship on a software development team, so as to ensure that an arrangement of tools qualify the established development culture, processes and standards. In practice, tools do not interoperate well, which is a common challenge faced by many development teams while exchanging or passing data from one stage of software development to its succeeding in order to facilitate continuous process flow between the activities of development lifecycle. The importance of this problem derives from the fact when the development teams are not clear on the concept of tools chains, because the lack of knowledge on how to create a fundamental model against which a set of tools can be arranged in chain setup. Thereby, allowing the tasks of the entire agile application development process to be performed more or less in a sequence, that is, from a development activity to the next with minimal manual intervention. Therefore this investigation aims to address this challenge, by providing understanding on the establishment of a fundamental sets of a tools in a chain along with some exemplar tool chain models based on different development platforms, which can be used as a reference model. The remainder of the paper is structured as follows: In Section 2, the main activities of the ALM process are highlighted and the approach to be undertaken
Tool Chains in Agile ALM Environments: A Short Introduction
373
to align software tools along with the activities of the ALM process. In Section 3, we present tabulated data gathered as a result of our limited survey on the availability of software tools from different development platforms, for the different phases of application development. Furthermore, exemplary tool chain models based on different development and technological background are presented to demonstrate the actual implementation of tool chain concepts in a variety of development platforms. Section 4, emphasises on the transparency in software tool chain environment. Section 5 contains a limited discussion and a brief conclusion is provided in Section 6.
2 2.1
Approach ALM Activities
It is a common misconception to equate ALM with the Software Development Lifecycle (SDLC), where the focus is mainly on application development [3]. In fact, (SDLC) is mainly comprised of application development phases, such as requirement gathering, design, coding etc [2]. On the other hand, ALM is about managing the entire application development lifecycle, that is, from the initial idea to its retirement and everything in between. Figure 1 shows all the main activities involved in ALM, where the existence of version control and change and configuration management plays the key roles.
Fig. 1. Activities of Application Lifecycle Management.
374
2.2
S. Imran et al.
Aligning Tools with ALM Process Model
To establish a streamline tool chain for an agile ALM platform, we need firstly to identify all of its primary activities. For this purpose, this study aims to demonstrate a possible combination of tool sets that can align with each activity of ALM process model as shown in Figure 1. There is no single correct way to break each activity of ALM process model into sub, as they can vary significantly based on many factors such as the project requirements, development platform, and development techniques.
Fig. 2. A proposed tools set for ALM Process Model.
In this investigation we have proposed how specialised tools can be arranged to correspond to each activity of the ALM process model (see Figure 2), comprising mainly of requirement management tools, modelling tools, development tools, testing and build integration tools, change management and version control tools. Initial planning and deployment are not covered here, as these stages of Agile ALM development required further investigation, therefore are out of the scope of this paper. This collected information can be used for creating a skeleton of a tool chain aligned with ALM process model. Thereby, the information available in this process model can assist development teams to identify the proper tools and their arrangement with respect to it corresponding activity. Although, in addition to this, to establish an automated tool chain much
Tool Chains in Agile ALM Environments: A Short Introduction
375
more information would be required, such as the relationship between the data of different tools, its access and flow. However, this process model merely serves as a exemplary structure against which software tools can be aligned. 2.3
Tool Selection
The selection of distinct software development tools is one of the most challenging task in software tool-chain development environment. The criteria on the selection of the tools that can perform specific tasks in an automated software tool-chain environment can vary depending on the technicalities and the requirements of the development platform. Nevertheless, the criteria that have focused on the selected tools for this survey includes: (i) Purpose: to serve the purpose, specialised to perform a specific task based on particular conditions; (ii) Vendor qualification: market share, maturity of the vendor and the tool; (iii) Vendor support: technical assistance, software updates, emergency maintenance, user training and other support services; (iv) Integration support: ensures coherent development, that is, capability of weaving together with other tools; (v) Tool configuration: To configure the setting for a tool to best perform particular activity in development process; (vi) Community support: on-line community support like discussion forums, wikis, podcast etc.; (vii) Licensing cost: Cost effectiveness based on variety of influencing factors such as selection of Open Source Software (OSS) or propriety software, maintenance cost, and training cost. In addition, we suggest there can be a number of additional factors such as the business decisions and goals, product requirements and scope and the underlying development lifecycle model.
3
Survey on Tool-Support
A short survey has been conducted by taking into account the selection criteria mentioned in section 2.3 on those tools which can enhance the performance of Agile ALM, as being part of a set of loosely coupled tools realising the integrated solution in strengthening the concept of tool-chain environment. This survey is by no means comprehensive and the main goal of our brief survey was mainly to address the possibilities on the use of a variety of tools in setting up a tool chain support for entire application development lifecycle. Therefore, we have taken a general view on those available software tools or technologies that can carry out distinct tasks on the activities of agile ALM process, which includes: (i) Task or requirement management tools; (ii) Design management tools; (iii) Development tools; (iv) Static code quality analysis tools; (v) Test automation tools; (vi) Build management tools; (vii) Continuous Integration servers (viii) Version Control management systems; (ix) and Change and Configuration Management tools. 3.1
Survey Findings
To demonstrate this survey findings, we have randomly selected a few snippets on the tabulated information, shown in Figure 3. The information provided on
376
S. Imran et al.
these tables has not been prioritised or ranked. The information gathered in these tables is presented by a number of table columns such as the tool provider, language support, versions etc. The information on the tables can vary, subject to the knowledge and experience of the tool selection team. However the information that we have set mandatory is to identify firstly the software tool specialised to perform a specific software development task and its provider. In our survey finding, we have found that the count and the diversity of the available tools can vary depending on the chosen development platform and project’s requirements.
(a) Code Quality Tools
(b) Build Automation Software Tools
(c) Test Automation Tools
(d) Continuous Integration Servers
Fig. 3. A snippet of information on the list of Software Tools
3.2
Exemplar Models
In this section, exemplar models (see Figure 4) on software development toolchain are provided in accordance with the process model shown in Figure 2. These models are intended as reference models for creating a software development tool chain on different development platforms. Also, in these exemplar
Tool Chains in Agile ALM Environments: A Short Introduction
377
models, non-available (N/A) is indicated where we have not found the tool that fulfils our selection criteria. The first and second tool-chain models as shown in Figures 4a and 4b respectively are for a Java development platform, however, the first model provides information on the use of commercial software tools and the second on the use of OSS. To provide further reference on how software tools can be integrated to support ALM in different development environments, two additional models are presented in Figures 4c and 4d for .NET and JavaScript platform. The purpose of these models is merely to demonstrate how software tools can be integrated together, supporting the tool-chain concept within application development environments.
(a) Java platform -Proprietary software
(b) Java platform - OSS
(c) .NET platform
(d) JavaScript platform
Fig. 4. Exemplar tool-chain models for Agile ALM process model
378
4
S. Imran et al.
Transparency In A Collaborative Tool Chain
To correctly operate the artefacts produced or used in the ALM lifecycle, their linkage to the corresponding requirements is essential to ensure that application meets specification [1]. Therefore, one of the measures of effectiveness on a tool chain is its ability to support requirements tracing in the development process of agile ALM. Traceability ensures the relevance and effectiveness of tools applied for each phase of software development life cycle, hence it is regarded as a key concern in building a tool chain. However, traceability is an enormous challenge in a collaborative tool chain environment [10] [11]. The term collaboration here can be defined as an activity where two or more tools work together to accomplish specific task of the development phase, by ensuring consistency and eliminating the need of manually transferring the data between tools. Technical and semantic gaps can originate from heterogeneous tools, protocols, data formats, data structures and the terminology that are used in communication between tools [12], where streamline communication is fundamental to adhere traceability. Therefore, the presence of traceability links across artefacts among software tools realizes necessary infrastructure imperative for a tool chain environment.
5
Discussion
The selection of the tools and their configuration has become an important preliminary task in staging Agile ALM development platform. By placing highperformance, flexible and configurable tools in a tool-set can immensely improve the performance of agile application development process and ensure higher product quality. The selection of software tools varies from a simple tool that aid in manual work to fully configurable automatic. Therefore, availability of the technical skills and scope of the project should be taken into account while making decision on the selection of the suitable tools. One of the concerns that should not be overlooked is that even the automatic advanced tools can greatly simplify the development process, a manual intervention can still be much needed for rapid application development. There can be a number of challenges in setting up a tool chain environment depending upon the product requirements and development platform. For instance, critical system development, which have to meet safety restrictions and regulation, lacks tool-support for the complete lifecycle [13]. The complexity among different phases of the development cycles can cause significant technical hurdles and it has been realised that integration of tools is not uniform across the all activities of ALM lifecycle, and the manual effort may considerable vary. For example, in our practical implementation we have found that coalitions of IBM Rational Team Concert (RTC)’s Change and Configuration Management (CCM) tool and IBM RTC’s Requirement Management (RM) tool, corresponding to requirement management and
Tool Chains in Agile ALM Environments: A Short Introduction
379
change and configuration management activities respectively, have taken a minimal manual involvement as compared to setting up IBM RTC CCM tool to work with IntelliJ IDEA corresponding implementation activity. One of the challenges in adopting tool chain environment is dealing with different standards and heterogeneous data models for information exchange and how they can be best reconciled [13]. Furthermore, the adoption of tool chain on different technical platform is an ongoing challenge. The study was not intended to be comprehensive, neither in terms of covering all the topics in setting tool chain in Agile ALM environment nor in terms of covering all the literature needed information on particular aspects. Rather, this study focused on a few aspects relevant to the establishment of software tool chain; thereby attempting to guide the use of the tool chain ALM process model. In addition, in this study the concern is limited within software tools that support the application development lifecycle process and their integration.
6
Conclusion
The proper selection of the suitable tools on setting a tool-chain have shown unquestioned effective interoperability among tools with different standards and data formats, thus providing reliable high-performance alternative to tradition development activities. In this paper, we have investigated the actual implementation aspect of task specific software tools integration with in agile ALM lifecycle environment. We demonstrate how we can set up tool chains on various development environments based on our approach. In conclusion, tool integration in agile ALM environment remains a live research topic. We have based our fundamental approach upon our observation and a limited survey. This study aims to pave the way for more efficient ways towards the establishments and usage of software development tools. Acknowledgments. This work is supported by the Ministry of Science, Research and Arts of Baden-W¨ urttemberg, Germany, within the program “Willkommen in der Wissenschaft” as part of the “Innovations- und Qualit¨ atsfonds (IQF)”.
References 1. H¨ uttermann, M.: Agile ALM. Manning (2011) 2. Rossberg, J.: Beginning Application Lifecycle Management. Apress (2014) 3. Chappell, D.: Application Lifecycle Management as business process, Whitepaper (2008) 4. Calefato, F., Lanubile, F., Sportelli, F.: Can social awareness foster trust building in global software teams?. In: 5th International Workshop on Social Software Engineering (SSE 2013), St. Petersburg, Russia, August 18, 2013. ISBN: 978-14503-2313-0, doi:10.1145/2501535.2501538
380
S. Imran et al.
5. Calefato, F., Lanubile, F.: Practice: collaborative development environments. In: Ebert, C. (ed.) Global Software and IT: A Guide to Distributed Development, Outsourcing, and Supplier Management. IEEE, Wiley. ISBN: 978-0-470-63619-0 (2011) 6. Kriinen, J., Vlimki, A.: Impact of application lifecycle management - a case study. In: Enterprise Interoperability III, pp. 55–67. Springer, London (2008) 7. Doyle, C.: The importance of ALM for aerospace and defence (A& D). Embedded System Engineering (ESE magazine) 15(5), 28–29 (2007) 8. Thomas, I., Brian, A.N.: Definitions of tool integration for environments. Software, IEEE 9(2), 29–35 (1992) 9. Biehl, M., Trngren M.: constructing tool chains based on SPEM process models. In: ICSEA 2012, The Seventh International Conference on Software Engineering Advances, pp. 267–273 (2012) 10. Heinonen, S., Kriinen, J., Takalo, J.: Challenges in collaboration: tool chain enables transparency beyond partner borders. Enterprise Interoperability II, pp. 529–540. Springer London (2007) 11. Pesola, J.-P., et al.: Experiences of tool integration: development and validation. Enterprise Interoperability III, pp. 499–510. Springer London (2008) 12. Sunindyo, W. D. et al.: Foundations for event-based process analysis in heterogeneous software engineering environments. In: EUROMICRO-SEAA (2010) 13. Saratxaga, C.L., Alonso-Montes, C., Haugen, O., Cecilia, E., Mitschke, A.: Product line tool-chain: variability in critical systems. In: Proceedings of the Third International Workshop on Product LinE Approaches in Software Engineering, pp. 57–60. IEEE Press (2012)