Practical Aspects of The Integration of Agile Development and Model-Driven Development: An Exploratory Study Hessa Alfraihi Kevin Lano dept. of informatics dept. of informatics King’s College London King’s College London London, UK London, UK hessa.alfraihi@kcl.ac.uk kevin.lano@kcl.ac.uk Abstract—The aim of this paper is to investigate and gain insight into the Agile MDD approaches and practices by insights into the state of practice of integrating Agile development answering the following research questions: and Model-Driven Development (MDD), understanding their (RQ1) What are the reasons that motivate integrating Agile impact and various problems of their applicability. To meet this aim, we conducted seven in-depth, one-to-one interviews with practices and MDD processes? Agile and MDD practitioners to provide insights about their (RQ2) How are Agile practices and MDD integrated? experiences and opinions of integrating Agile and MDD. The (RQ3) What are the benefits of integrating Agile and MDD study found that although both approaches gained considerable on development process? attentions by practitioners, the state of practice is not yet mature. (RQ4) What are the challenges of integrating Agile and MDD? Key challenges relate to the lack of well-defined process, lack of adequate tools and steep learning curve. Index Terms—agile software development, model-driven de- The structure of the paper is as follows: Section II discusses velopment, agile model-driven development, empirical study, related work. Section III presents the research methodology interviews while Section IV describes the projects surveyed. Section V presents the results of the study and Section VI discusses and I. I NTRODUCTION summaries them. Section VII discusses the limitations of this The Agile software development principles emerged as study while Section VIII concludes the paper. a reaction to the bureaucratic traditional methodologies by discarding precise upfront planning [10]. Under the umbrella II. R ELATED W ORK of Agile principle, there are many methods (such as Scrum In this section, we present related work namely empirical and Extreme Programming (XP)) that share the same set of studies of Agile MDD. Burden et al. [6] have conducted values and principles defined in Agile Manifesto [5]. They are a systematic literature review by proposing two research characterised as incremental (small system releases with short questions with the goal to investigate the empirical evidence cycles), cooperative (developers and customers collaborating of the state of art of Agile MDD approaches and what is constantly through the development process with close com- lacking in that area. The study shows that Agile MDD is still munication), straightforward to learn and adaptive to changes in its early stages and there is a need for detailed experience in the requirements [1]. reports. In our previous work [2], we presented a systematic Model-Driven Development (MDD) is an alternative soft- literature review to complement the results of [6] where fifteen ware development approach where models are the primary primary studies were reviewed. The main characteristics of development artifacts and the process becomes model driven Agile MDD approaches besides their benefits and problems where the code and the documentations are generated from are highlighted. Both systemic literature review studies provide models. The MDD vision is to reduce the gap between the broader coverage, but they are less in-depth than interview problem and implementation domains through increasing the study. level of abstraction and through automating the transformation Eliasson and Burden [7] have conducted an exploratory process between models [11]. study at Volvo Car Corporation (VCC). At VCC, individual While both Agile development and MDD have received teams adopt Agile practices with MDD while the organisa- considerable attention from industry and academia, there tion at large still use plan-driven process. The aim of this is little data about their integration [2], [6]. This paper exploratory study is to investigate how Agile practices can presents details of an exploratory study that was conducted be extended to the organisation level. In specific, it aims to on integrating Agile development and MDD (Agile MDD). answer the following question: Which are the challenges and The main objectives of this paper are to examine and gain possibilities for a more Agile software development process on a system level?. They interviewed 17 engineers to identify the P4: This is a component-based approach used to develop challenges of the current process at VCC and how to improve policy administration systems for a large insurance company. it. The results of the interviews revealed two main challenges: It is implemented in C++ in nine million lines of code (LOC) first, the developers have to wait long before getting feedback and the development effort is 200 person-years. which forced them to make premature assumptions leading P5: This project involves the risk evaluation of financial to unwanted side-effects and faults; second, the use of MDD investments in which the process of risk analysis includes tools force developers to employ a waterfall process. The intensive computations. It is implemented in C++ in 3000 LOC main finding of this study is that there is a need for a more while the development effort is two person-months. Agile way of working to obtain earlier and faster feedback. P6: This project is a web-based application for issue track- They conclude that Agile MDD can be useful in automotive ing system that manages and maintains a list of reported issues. development. However, their study is context specific to VCC It is implemented in PHP in 30000 LOC and this required eight to examine its case and limited to automotive domain which person-years of development time. is difficult to be generalised. P7: This project is an online simulation platform in neuro- robotics for running and describing experiments. The platform III. R ESEARCH M ETHOD is implemented in C++ and Python. The development effort is We conducted semi-structured interviews with seven practi- 15 person-years. tioners (in person or via Skype) from a variety of countries in- cluding the United Kingdom, Germany, Sweden, Brazil, India, V. I NTERVIEW R ESULTS Argentina, and Belgium. Our participants were selected based The results are analysed based on the research questions on personal contacts or from our previous literature survey posed in the introduction. For brevity, we provide quotes for [2]. They have between two and twenty years of experience only some of the results. in Agile and MDD development. The interviews lasted about 45-60 minutes and were conducted by the first author. They RQ1: Motivations for Integrating Agile Methods and MDD. began with a question about the participant background and experience; then followed by a series of questions about some Accelerating development process was a frequent motiva- practical aspects of Agile MDD such as those relating to the tion given by the interviewees (four out of seven). This can motivation of applying Agile MDD, the strategy of combining be attained by the two approaches. The automation (producing Agile and MDD, its benefits and challenges and so on. The code and other artifacts from models) of MDD is assumed to interview guide can be found via the link in the footnote 1 . accelerate the development process [17]. On the other hand, All participants were asked to answer the interview questions agility means to minimise the heaviness commonly attributed based on a self-selected project where they had leading roles to traditional development methods to promote rapid response in the project. All the interviews were audio recorded after to changes in requirements and accelerate development process obtaining the participants’ consent. After that, the interviews [9]. were transcribed in order to facilitate the analysis process. Another motivation for adopting Agile MDD was to involve Then, the obtained data was analysed using qualitative content the customer frequently in the development process. Basically, analysis [8]. this can be realised by applying Agile development as active IV. P ROJECTS P ROFILES participation of the customers is one of the key principles of agility [13]. Studies show that having the customer as the This section presents a description of the projects which primary source of information leads to an effective means of the participants have developed in the context of Agile MDD. requirements gathering especially in the early stages of the Seven projects were involved in this study: development through active participation of concerned stake- holders, and levering changes [13]. Providing early feedback P1: This project is a web-based application which aims to is also valuable within different stages of development as generate domain models and navigations from either written the customer can assess and evaluate frequent deliverables requirements or captured with interface mockups. It can be of the system. With regard to MDD, involving the customer considered as a medium-sized project (40-50 classes). The or end-user in the development activities is a difficult task development effort is not available. since they usually don’t understand the concerned technical P2: This project is a web-based application to apply an specification such as Domain Specific Language (DSL) and online auction. It is implemented using J2EE and the devel- modelling techniques [18]. opment effort is 2 person-year. One interviewee stated that the motivation of integrat- P3: This project involves developing electrical component ing Agile and MDD was to make the MDD process more systems in the automotive industry. The accurate scale of this lightweight. MDD can be considered as a heavyweight process project is not available, while the development effort is 80 [12] (i.e. it requires a lot of planning, developing the models, person-years. and specifying the transformation rules etc.). Therefore, it is 1 https://drive.google.com/file/d/0B70Tq3TKSoDQZDhfV2F5RGI1TTA/ assumed that applying Agile into MDD process will result view?pli=1 in less rigorous process. By developing the system in an TABLE I: Agile MDD Processes Overview Agile MDD Project Methodology Type Agile Method Agile Practices MDD Practices Process Definition Incremental and iterative development, Automatic code generation, P1 Assembly-based Scrum Model-based testing, None Pair development ,Test-Driven Development DSL Modelling Automatic code generation, P2 Agile-based Scrum Incremental and iterative development Round-trip engineering, None DSL Modelling Automatic code generation, Incremental and iterative development, P3 MDD-based Scrum Simulation, None Stand-up meeting DSL Modelling Automatic code generation, Incremental and iterative development, P4 MDD-based Scrum-like Model-based testing, None Stand-up meeting UML Modelling Automatic code generation, Incremental and iterative development, P5 MDD-based Scrum Model-to-model transformation, None Refactoring, Release planning UML Modelling Incremental and iterative development, Automatic code generation, P6 Assembly-based General process None Refactoring UML Modelling Incremental and iterative development, Automatic code generation, P7 Agile-based Scrum Stand-up meeting, Review meeting, Round-trip engineering None Retrospective meeting XML Modelling incremental-fashion, developers will be focusing on building how to integrate them together are not well-known. In this only small parts of the system at a time by developing just regard, all the interviewees stated that they don’t follow a barely good enough models [3] that fulfil their purpose. In well-defined process or systematic guidelines to guide through this regard, another interviewee stated that he integrated Agile development. As a consequence, development teams introduce development and MDD because the application domain was practices of Agile and MDD in an ad-hoc manner or based on unfamiliar to him, so he noted: their personal experiences. More interestingly, some intervie- “It was considered to be a more secure kind of wees mentioned that they decided on their own way of work development “to develop it in increments” rather at run-time or just before each iteration how to integrate the than attempting to specify and develop it all in one different practices. stage. It was considered to be a more flexible, a With regard to Agile development, all interviewees utilised more reliable approach to do it up in increments and the iterative and incremental development as the fundamental with certain functionalities in each iteration” (Study Agile practice (with variant length of iterations). In terms of participant). Agile method, six interviewees used Scrum[20] or Scrum-like Building the system incrementally can be a good practice method while the other used a general Agile method. On the to have a better understanding of the problem domain. Völter other hand, only few specific Agile practices have been utilised et al state that developing the MDD system incrementally such as pair development in P1, refactoring in P1,P5, and P6, will be useful in growing the understanding of the domain stand-up meeting in P3, P4, and P7, review and retrospective and hence reducing the complexity associated with the meetings in P7, Test-Driven Development in P1, and release development process [24]. planning in P5. The frequent collaboration with the customer is one of RQ2: Agile and MDD Integration Process the main value stated by Agile Manifesto [5]. However, the level of customer involvement during the development process According to Matinnejad [16], Agile MDD process can varied amongst the projects; in some cases, the customer is be developed by: introducing Agile method to a current extensively involved only during the requirements phase to MDD process which is called MDD-based, by applying MDD understand his/her needs and expectations of the system. After process to an agile method (i.e. Agile-based), or by inte- that, the communication with the customer is limited until grating some fragments from Agile and other from MDD to an increment of the system is released and he provides his develop the process (i.e. Assembly-based). We found out that feedback on the work. This means the customer is not involved three projects have followed MDD-based approach and two during the whole development process. On the contrast, other other employed Assembly-based approach while two projects interviewee stated that the customer is collaborated all the develop their Agile MDD process according to Agile-based time during the development. Although it is difficult to get the approach. customer physically involved, he is always available (mostly Although, both Agile and MDD processes have been in- via emails) for discussion and answering questions during the troduced for more than a decade, the basic principles on iteration. Regarding MDD paradigm, we discovered that most TABLE II: The Benefits of Agile MDD Approaches projects used models to generate the code automatically. One Case The Benefits interviewee evaluated the generated code to be between 80 Improved developers focus, improved developers satisfaction, P1 and 90 percent of the total. Conversely, one interviewee stated accelerate development rate P2 Relax the heaviness of MDD process that most of the development process is code-centric and the P3 Early testing and early feedback models are used to generate the “glue-code” in order to bind Improved developers focus, improve requirements elicitation P4 different components of the system. Moreover, models were and formality used for simulation in order to assist decision making process Help promoting the system to the customer, improve the code P5 efficiency and correctness, help reduce the errors, improved as in P3 and P7. When it comes to modelling approaches, development management, improved requirements elicitation we found DSL has been employed by three projects (P1, P2, P6 Accelerate development rate, improved developers focus, get and P3) and UML is used by projects P4, P5, and P6 while early feedback, reduce the cost of changes in requirements Improve the communication with the customer, P7 used XML-based schema to develop the models. Most P7 improve requirements elicitation of the projects supported forward engineering in which the specifications are transformed to the source code. Therefore, when a change to the requirements occurs, the models are lax some of the MDD recommendations and make it more changed to reflect the new requirements and then the models lightweight. In this context, one interviewee noticed that build- are transformed to the source code (by applying model-to- ing the system incrementally has helped novice developers text transformation). However, two interviewees stated that improve their knowledge about MDD. round-trip engineering is provided by their approaches either “MDD by nature is complex [...] but when we partially as in P2 or fully as in P7. With regard to verification introduced for example some ideologies from agile, and validation, only two projects (P1 and P4) used models for developers feel more comfortable with it” (Study generating test cases (i.e. model-based testing). Unit testing, participant). integration testing, acceptance testing were common testing techniques among the rest of projects. Table I presents an Table II summarises the benefits of integrating Agile develop- overview of the Agile MDD approaches. ment and MDD. RQ3: The Benefits of Integrating Agile Development and RQ4: The Challenges and Problems of Integrating Agile MDD Process and MDD Accelerating the development process was the most recur- The lack of proper tool support was the most frequent ring advantage noticed by the interviewees. By having short challenge mentioned by the interviewees. Actually, this issue iterations, developers managed to build the system incremen- concerns more the MDD paradigm [4] since it is highly depen- tally and to verify it early which contribute in saving time. dent on technical functionality of the tools to facilitate models On the other hand, generating code and other artifacts from creation and transformations. There are different challenges models automatically helped to speed up development process concerning the tools such as immature tools, poor performance by reducing efforts in developing code. issues, integration issues and insufficient support for the whole The frequent interaction with customers has a significant development life cycle. This issue resulted in a lot of costly impact on the development process. One interviewee stated manual activities carried out to accomplish the work during that having a continuous interaction with the customer helped the development process. to obtain requirement elicitation faster and captured in a The steep learning curve was another recurrent problem formal manner. In addition, it helped to reduce the risk mentioned by the interviewees that was an obstacle to adopt of building incorrect functionalities and the risk of rework Agile MDD. Although both Agile and MDD approaches are in later iterations. Another interviewee agreed that frequent subject to steep learning curve [21], [23], some interviewees interactions with the customer helped improve the software argued that MDD has a dominant factor regarding this issue. quality because developers were able to find out what the real “I think that the learning curve is steep, but I also requirements are early. On the same note, other interviewee think that’s something typical of model-driven and stated that Agile development was a necessary method with not agile plus model-driven” (Study participant). unclear expected requirements because it helped to develop This is because MDD requires a substantial amount of distinct requirements incrementally . knowledge about different technologies and language. Such Software quality improvement has been realised as an requirements are huge challenges to developers who are new advantage of Agile MDD. Building the system incrementally to the area. and breaking its functionalities into smaller chunks of work Moreover, the lack of well-defined process and guidelines make it easier to understand the functionalities and more for combining Agile and MDD approaches was another shared focused to build the right artifacts while generating the code view between many interviewees. Indeed, this contributed to automatically helped to increase the efficiency of the code. the steep learning curve as well. When they were asked how From another perspective, Agile practices helped to re- they overcame the lack of guidelines, one interviewee said TABLE III: The Challenges of Adopting Agile MDD the correctness of the requirements. Unlike the findings in Case The Challenges our systematic literature survey [2], advantages related to Immature tool support, improvement of productivity have not been mentioned by the P1 steep learning curve interviewees. However, these obtained benefits can serve as a Immature tool support, P2 steep learning curve, hypotheses to be tested in further research. convincing the development team to adopt MDD There are still many challenges such as steep learning curve. P3 Organisational issues Likewise, in our SLR [2], a steep learning curve and models Difficulties with metamodels specifications, management issues were recurrent problems from integrating P4 convincing the customer to adopt MDD P5 Lack of customer’s availability Agile and MDD. We can interpret that steep learning curve is P6 Lack of modelling experience due to the fact that the developers need to learn new set of Lack of tool support, technologies. The lack of well-defined process even makes P7 the lack of customer’s availability it more challenging. To overcome this problem, there is a need for a comprehensive framework that includes the best practices of agile and MDD. Also, it is important to know the that Agile manifesto was used to guide them while another similarities and the differences between Agile and MDD to interviewee answered: facilitate their integrations. Another common challenge was “We looked for some incompatibilities that could found to be immature tools support. Mohagheghi et al [17] hamper the introduction of MDD to that context write that immature tools can lead to a productivity loss. [Agile context]. But in fact we have no guidelines In this study, the participants perceived that the success of to follow. It was entirely adapted ... and this is very Agile MDD adoption depends on the availability of MDD tool bad for the practice because we have no security if support. our initiative succeeds or fails” (Study participant). However, the interviewees seem to be positive about the In addition, interviewees highlighted their concerns over Agile MDD approach; more satisfied about its encouraging the lack of customer availability, convincing the customer and results such as shortening development process and frequent development teams to adopt MDD, difficulties with metamod- interaction with customers. Our overall interpretation is that els specification and the lack of modelling skills. Table III integrating Agile development and MDD appears to be promis- summarises the challenges of integrating Agile development ing and the successful adoption of MDD largely depends on and MDD. how MDD is defined and adopted. In addition, what and how to integrate the different practices of Agile development should VI. S UMMARY AND D ISCUSSION be carefully considered. Our study indicates that Agile MDD approach is often The following points are considered important for future used informally (i.e. there is no well-defined process or improvements in the field of Agile MDD: systematic guidelines for the adoption). Although trial-and • Well-defined Agile MDD method: A well-defined soft- error is considered inappropriate technique of developing ware development method is one of the key factor for software [19], most development teams follow a “trial-and- successful adoption of the process by guiding develop- error” or ad-hoc approaches to integrate Agile and MDD. ment teams how they should work [15]. To this end, Practically, they employ iterative and incremental development there is a need for a method that facilitates the integration as the main Agile practices in conjunction with some MDD between Agile and MDD. Also, an adequate training practices such as modelling and code generation. Also, we for developers is necessary to minimise the high initial found that Agile MDD has been adopted in a broad range investment of adopting Agile MDD. of domains include web applications, business and financial • Round-trip engineering (RTE): Reverse engineering of applications, embedded system, and neurorobotics domain. In code to models and vice versa is needed for a quick addition, Agile MDD has been successfully applied in small turnaround of changes applied at code level. One intervie- to medium sized systems with small development team (4 wee agreed that supporting round-trip engineering would projects) as well as in larger systems (3 projects). In line with be of greater value for traditional developers (code-centric the results of our previous SLR [2], accelerating development developers). process and involving the customer in the development process • Automated test generation: Testing must be automated were seen as the main motivations for adopting Agile and to make it cost-effective by reducing the effort needed MDD. Accelerating development process was also found as to generate test cases. Also, it must be repeated to an important motivation for Agile and MDD adoption in the ensure that it meets the requirements expectations. In the research presented in [17] and [22]. principle of MDD, test cases can be generated from the The results of the interviews indicate that the interviewees models but it remains a subject of research how to do who have integrated Agile and MDD have recognised ad- this in the right way. vantages such as accelerated development and improvement • Proper tool support: Although Agile manifesto gives in developers focus. Agile MDD was also seen to improve priority for individual and interactions over tools and the communication with the customers and hence improving processes, tools are crucial to facilitate fast delivery and easy modification of prototypes [14]. Having proper tools [8] Satu Elo and Helvi Kyngäs. The qualitative content analysis process. that provide an adequate support could improve and Journal of advanced nursing, 62(1):107–115, 2008. [9] John Erickson, Kalle Lyytinen, and Keng Siau. Agile modeling, agile facilitate the adoption of Agile MDD. These tools should software development, and extreme programming: the state of research. consider configuration and change management features Journal of database Management, 16(4):88, 2005. besides modelling, development, and testing. [10] Martin Fowler. The new methodology. 2005. [11] Robert France and Bernhard Rumpe. Model-driven development of complex software: A research roadmap. In 2007 Future of Software VII. L IMITATIONS Engineering, pages 37–54. IEEE Computer Society, 2007. [12] David Frankel. Model Driven Architecture: Applying MDA to Enterprise Content analysis approach was used for analysing the inter- Computing. John Wiley & Sons, Inc., New York, NY, USA, 2002. views. This method does not provide a statistical significance [13] James A Highsmith. Agile software development ecosystems, volume 13. of the results. However, it is well-suited for exploring and Addison-Wesley Professional, 2002. [14] Merisalo-Rantanen Hilkka, Tuunanen Tuure, and Matti Rossi. Is extreme discovery and it can provide a subjective understanding of programming just old wine in new bottles: A comparison of two cases. the topic of interest. Another limitation is the relatively low Journal of Database Management, 16(4):41, 2005. number of interviewees conducted in this study due to the fact [15] Watts S Humphrey. Managing the software process. Addison-Wesley, 1989. of the lack of Agile MDD interviewees and their willingness [16] Reza Matinnejad. Agile model driven development: An intelligent and interest to participate in the interview. Rather, the intervie- compromise. In Software Engineering Research, Management and wees had a good experience in Agile and MDD allowing us Applications (SERA), 2011 9th International Conference on, pages 197– 202. IEEE, 2011. to consider many practical perspectives in this study. As this [17] Parastoo Mohagheghi and Vegard Dehlen. Where is the proof?-a review study is the first in its context, this study provides an overview of experiences from applying mde in industry. In European Conference of some practical aspects of integrating Agile and MDD that on Model Driven Architecture-Foundations and Applications, pages 432–443. Springer, 2008. contribute to improve the understanding of this area. [18] Francisca Pérez, Pedro Valderas, and Joan Fons. Towards the involve- ment of end-users within model-driven development. In International VIII. C ONCLUSION AND F UTURE W ORK Symposium on End User Development, pages 258–263. Springer, 2011. [19] Ruben Picek. Suitability of modern software development method- In this paper, we have presented the results of interview- ologies for model driven development. Journal of Information and based study in which we have explored real-life experiences Organizational Sciences, 33(2):285–295, 2009. of integrating Agile and MDD in practice. The aim of this [20] Ken Schwaber and Mike Beedle. Agile Software Development with Scrum. Agile Software Development. Prentice Hall, 2002. study was to complement the findings of our previous study [21] Bran Selic. Model-driven development: Its essence and opportunities. [2] and to provide more in-depth understanding of the practical In Object and Component-Oriented Real-Time Distributed Computing, aspects of integrating Agile and MDD. Our findings suggests 2006. ISORC 2006. Ninth IEEE International Symposium on, pages 7– pp. IEEE, 2006. that the interviewees found that integrating Agile development [22] John F Tripp and Deborah J Armstrong. Exploring the relationship processes and MDD is feasible and promising, while there is between organizational adoption motives and the tailoring of agile no clear road map for their integration. methods. In System Sciences (HICSS), 2014 47th Hawaii International Conference on, pages 4799–4806. IEEE, 2014. This research may help those who want to adopt Agile MDD [23] LEOR Vijayasarathy and Dan Turk. Agile software development: A sur- as well as researchers to prove these findings. However, more vey of early adopters. Journal of Information Technology Management, evidence on the benefits of integration Agile development 19(2):1–8, 2008. [24] Markus Völter, Thomas Stahl, Jorn Bettin, Arno Haase, and Simon and MDD from research and real experiences is needed. As Helsen. Model-driven software development: technology, engineering, a future work, we will define a comprehensive method for management. John Wiley & Sons, 2013. Agile MDD and systematic guidelines on how to integrate both approaches and then evaluate its feasibility with a case study. R EFERENCES [1] Pekka Abrahamsson, Outi Salo, Jussi Ronkainen, Juhani Warsta, et al. Agile software development methods: Review and analysis, 2002. [2] Hessa Alfraihi and Kevin Lano. The integration of agile development and model driven development: A systematic literature review. In Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development, MODELSWARD, 2017. [3] Scott Ambler. Agile modeling: effective practices for extreme program- ming and the unified process. John Wiley & Sons, 2002. [4] Paul Baker, Shiou Loh, and Frank Weil. Model-driven engineering in a large industrial context-motorola case study. In International Conference on Model Driven Engineering Languages and Systems, pages 476–491. Springer, 2005. [5] Kent Beck. Manifesto for agile software development, 2001. [6] Håkan Burden, Sebastian Hansson, and Yu Zhao. How MAD are we? Empirical Evidence for Model-driven Agile Development. In Proceedings of XM 2014, 3rd Extreme Modeling Workshop, volume 1239, pages 2–11, Valencia, Spain, September 2014. CEUR. [7] Ulf Eliasson and Håkan Burden. Extending agile practices in automotive mde. In XM@ MoDELS, pages 11–19, 2013.