12 research outputs found

    Evidence-Based DevOps for Continuous Collaboration, Process, and Delivery

    Get PDF
    The purpose of this research is to propose Evidence-Based DevOps and to demonstrate its application to software reengineering. For this purpose, we borrow an approach from Medicine, Evidence-Based Medicine (EBM), and apply it to DevOps. Evidence-Based DevOps supports continuous collaboration, process, and deployment within or across diverse teams

    Towards secure software development at Neste - a case study

    Get PDF
    Software development industry has been revolutionized through adoption of software develop- ment methods such as DevOps. While adopting DevOps can speed up development through collaborative culture between development and operations teams, speed-driven adoption can have an adverse impact on security aspects. DevSecOps is a concept that focuses on embed- ding security culture and activities into DevOps. Another contributing factor to the more agile development landscape is the widespread adoption of open source components. However, the risk of putting too much trust into the open source ecosystem has resulted in a whole new set of security issues that have not yet been adequately addressed by the industry. This thesis is commissioned by Neste Corporation. The company has set an initiative to in- corporate methods that enable better transparency, agility, and security into their software development projects. This thesis collects research data on secure software development prac- tices by combining findings of a literature review with a case study. The qualitative case study is done by interviewing eight stakeholders from four different software development teams. The literature review shows that securing software is very much an ongoing effort, especially in the open source ecosystem. Therefore, it might be not surprising that the results from the case study revealed multiple shortcomings on the subject matter despite obvious efforts from the participating teams. As a result, this thesis presents potential ideas for the case company to consider integrating into their software development projects in order to kickstart their secure software development journey

    Good Practices of the Lean Startup Methodology: Benefits, challenges and recommendations

    Get PDF
    Most companies strive to capitalize on new business opportunities to innovate and develop new business models. The recent popularity of Lean Startup methodology in the startup scene suggests its potential applicability for the creation of new businesses in a corporate context. Therefore, this thesis identifies how to apply Lean Startup practices in software companies. The research was conducted as a literature review and a qualitative study, including semi-structured interviews from three Finnish software companies. Furthermore, the study provides a within-case and cross-case analysis of the positive and negative effects and recommendations for applying Lean Startup practices in software companies. The results indicate that there is resistance to change towards a more innovative company culture, insufficient knowledge and understanding of the Lean Startup, and its practices require time to be learnt. Moreover, the lack of proper communication of the Lean Startup benefits creates rejection from external teams. Nevertheless, the results reveal that the top management commitment to communicate and demonstrate early on what the Lean Startup is can help software companies and customers accept more readily the methodology and shift the company culture mindset towards a more innovative mindset. Furthermore, the results confirm that the Lean Startup application adds customer validation to the product development process, enabling faster product/market fits and data-driven decision-making that improves the process accuracy and speed. Moreover, the innovation accounting practice supports the learning about customer behavior. In contrast, the results show that teams not working together in the same location, customers rigidness and low or high volume of feedback can reduce the product development process speed. Consequently, software companies should communicate and demonstrate very early on the benefits of the Lean Startup methodology to employees and customers to help them understand, learn and adopt its practices while embracing a more innovative culture

    DevOps practices in development and maintenance of educational systems

    Get PDF
    DevOps on kasvattanut suosiotaan viimeisen viiden vuoden aikana varsin tasaisesti Google Trends -palvelun perusteella. Myös tieteellinen kiinnostus termiä kohtaan on kasvanut: esimerkiksi IEEE:n Xplore-hakupalvelussa suoritettujen hakujen perusteella IEEE on julkaissut yli tuplaten DevOpsiin liittyviä artikkeleita vuonna 2017 verrattuna vuoteen 2015. DevOpsin käsite on kuitenkin vielä monitulkintainen. DevOpsia on myös opetettu. Esimerkiksi Japanin Saga Cityn yliopisto on hyödyntänyt siihen liittyviä työkaluja opetuksessaan, ja Moroccon Cadi Ayyad University on järjestänyt aiheesta kurssin. Myös Tampereen teknillisessä yliopistossa ja nykyisessä Tampereen yliopistossa opetetaan ilmiöön liittyviä käytäntöjä. On kuitenkin epäselvää, tehdäänkö niin kuin opetetaan eli hyödynnetäänkö itsekin DevOpsiin liittyviä käytäntöjä. Tämän diplomityön tutkimustavoitteena onkin selvittää, hyödynnetäänkö opetusjärjestelmien kehittämisessä ja ylläpidossa näitä käytäntöjä, ja miten niiden hyödyntämistä voisi kehittää. Koska DevOpsiin liittyy käytäntöjä, joita on mahdollista suorittaa erilaisilla työkaluilla, on tarpeen selvittää sellaiset työkalut, joita yliopistolla on jo tarjota käytettäväksi. Koska ohjelmistojen suoritusympäristöjen esittäminen ohjelmakoodina liittyy DevOpsiin, on myös saatavilla olevien suoritusympäristöjen selvittäminen oleellista. Tällä tavalla voidaan saada tietoa, onko yliopistossa edellytykset DevOpsin hyödyntämiselle. Opetusjärjestelmien DevOps-käytäntöjen hyödyntämistä on selvitetty niihin perustuvalla tapaustutkimuksella. Työkalut ja suoritusympäristöt on selvitetty sähköpostiviestein ja yliopiston intrasivustoa tutkimalla. Tutkimuksen tulokset osoittavat, että yliopistolla on tarjota työkaluja DevOps-käytäntöjen hyödyntämiseen. Suoritusympäristöjen dokumentaation osalta on kuitenkin kehitettävää. Opetusjärjestelmistä Repolainen noudattaa parhaiten DevOpsiin liittyviä käytäntöjä, mutta kaikissa tutkituissa opetusjärjestelmissä on parannettavaa sovelluksen monitoroinnin, suunnittelun ja IT-infrastruktuurin ohjelmakoodina esittämisen suhteen. Repolaisen osalta toimenpiteet työssä esitettäviin kehitysideoihin perustuen on aloitettu, mutta Tietotekniikan yksikölle suositellaan myös muiden ideoiden kokeilemista soveltuvuusselvityksien muodossa. Myös ideoiden jatkokehitys ryhmissä ja aivoriihien järjestäminen voivat olla hyödyllisiä.DevOps has gained popularity during the last five years based on Google Trends. Interest in the science community has also increased. For example searches performed at the IEEE Xplore Digital Library indicate that the IEEE published double the amount of research papers on DevOps in 2017 compared to 2015. However the term DevOps is still ambiguous. DevOps has also been teached. For example Saga University in Japan has utilized an education system which took advantage on tools related to DevOps and Cadi Ayyad University in Morocco has organized a course about DevOps. Tampere University of Technology which is nowadays Tampere University has also teached DevOps practices. It is though unclear whether we follow the guidelines we teach in other words, whether we utilize DevOps practices ourselves. The aim of this research is therefore to find out do the development and maintenance processes of IT systems used in teaching utilize DevOps practices and could that utilizing be developed in some way. Because certain practices are related to DevOps and they can be implemented with various technologies it is worthwhile to discover if the university offers some of these technologies. Since infrastructure as code is a part of DevOps figuring out the available software execution environments is also essential. By investigating these aspects it is possible to discover whether the university provides prerequisites for utilizing DevOps practices. Study on the utilization of DevOps practices in the development and maintenance of educational systems is performed by a case study. Technologies and execution environments available are discovered by email messages and searching them from the intranet website of the university. The results of the study indicate that the university does offer tools to utilize DevOps practices but the documentation on execution environments is lacking. Of the educational systems Repolainen is best at utilizing DevOps practices but all educational systems studied in this thesis have rough edges on continuous monitoring and planning and sharing the IT infrastructure as code. Actions based on the development ideas presented in this thesis considering Repolainen have been started but proof of concept implementations based on the other ideas as well are recommended for the Computing unit. Getting together to develop the ideas further and arranging brainstorms could also be beneficial

    An automated framework to support agile adoption coaching

    Get PDF
    This dissertation aims to assist Agile champions in their organisations with their Agile adoption journey. Such a journey typically starts with identifying the Agile challenges and then determining how to address these challenges in their unique context (Hajjdiab & Taleb, 2011a:9). This study provides a manual together with an automated framework to showcase a list of prioritised Agile challenges and their corresponding possible solutions. Before reaching this automated framework, the research presented a comprehensive list of Agile adoption challenges, possible solutions and a mapping between them. The automated framework, also named Agile Adoption Coach (AAC), is in the form of an online tool: www.agilesense.coza/aac. The critical quantitative contribution to this study was the evaluation of the AAC by Scrum Masters and Agile coaches to determine the acceptability of the tool. The research has shown that there is, on average, an 86% acceptability rating for this tool in South Africa.School of ComputingM. Sc. (Computing

    On the real world practice of Behaviour Driven Development

    Get PDF
    Surveys of industry practice over the last decade suggest that Behaviour Driven Development is a popular Agile practice. For example, 19% of respondents to the 14th State of Agile annual survey reported using BDD, placing it in the top 13 practices reported. As well as potential benefits, the adoption of BDD necessarily involves an additional cost of writing and maintaining Gherkin features and scenarios, and (if used for acceptance testing,) the associated step functions. Yet there is a lack of published literature exploring how BDD is used in practice and the challenges experienced by real world software development efforts. This gap is significant because without understanding current real world practice, it is hard to identify opportunities to address and mitigate challenges. In order to address this research gap concerning the challenges of using BDD, this thesis reports on a research project which explored: (a) the challenges of applying agile and undertaking requirements engineering in a real world context; (b) the challenges of applying BDD specifically and (c) the application of BDD in open-source projects to understand challenges in this different context. For this purpose, we progressively conducted two case studies, two series of interviews, four iterations of action research, and an empirical study. The first case study was conducted in an avionics company to discover the challenges of using an agile process in a large scale safety critical project environment. Since requirements management was found to be one of the biggest challenges during the case study, we decided to investigate BDD because of its reputation for requirements management. The second case study was conducted in the company with an aim to discover the challenges of using BDD in real life. The case study was complemented with an empirical study of the practice of BDD in open source projects, taking a study sample from the GitHub open source collaboration site. As a result of this Ph.D research, we were able to discover: (i) challenges of using an agile process in a large scale safety-critical organisation, (ii) current state of BDD in practice, (iii) technical limitations of Gherkin (i.e., the language for writing requirements in BDD), (iv) challenges of using BDD in a real project, (v) bad smells in the Gherkin specifications of open source projects on GitHub. We also presented a brief comparison between the theoretical description of BDD and BDD in practice. This research, therefore, presents the results of lessons learned from BDD in practice, and serves as a guide for software practitioners planning on using BDD in their projects

    Agile Processes in Software Engineering and Extreme Programming

    Get PDF
    This open access book constitutes the proceedings of the 23rd International Conference on Agile Software Development, XP 2022, which was held in Copenhagen, Denmark, in June 2022. XP is the premier agile software development conference combining research and practice. It is a unique forum where agile researchers, practitioners, thought leaders, coaches, and trainers get together to present and discuss their most recent innovations, research results, experiences, concerns, challenges, and trends.  XP conferences provide an informal environment to learn and trigger discussions and welcome both people new to agile and seasoned agile practitioners. This year’s conference was held with the theme “Agile in the Era of Hybrid Work”. The 13 full papers and 1 short paper presented in this volume were carefully reviewed and selected from 40 submissions. They were organized in topical sections named: agile practices; agile processes; and agile in the large

    AUTOMATED ANALYSIS OF NATURAL-LANGUAGE REQUIREMENTS USING NATURAL LANGUAGE PROCESSING

    Get PDF
    Natural Language (NL) is arguably the most common vehicle for specifying requirements. This dissertation devises automated assistance for some important tasks that requirements engineers need to perform in order to structure, manage, and elaborate NL requirements in a sound and effective manner. The key enabling technology underlying the work in this dissertation is Natural Language Processing (NLP). All the solutions presented herein have been developed and empirically evaluated in close collaboration with industrial partners. The dissertation addresses four different facets of requirements analysis: • Checking conformance to templates. Requirements templates are an effective tool for improving the structure and quality of NL requirements statements. When templates are used for specifying the requirements, an important quality assurance task is to ensure that the requirements conform to the intended templates. We develop an automated solution for checking the conformance of requirements to templates. • Extraction of glossary terms. Requirements glossaries (dictionaries) improve the understandability of requirements, and mitigate vagueness and ambiguity. We develop an auto- mated solution for supporting requirements analysts in the selection of glossary terms and their related terms. • Extraction of domain models. By providing a precise representation of the main concepts in a software project and the relationships between these concepts, a domain model serves as an important artifact for systematic requirements elaboration. We propose an automated approach for domain model extraction from requirements. The extraction rules in our approach encompass both the rules already described in the literature as well as a number of important extensions developed in this dissertation. • Identifying the impact of requirements changes. Uncontrolled change in requirements presents a major risk to the success of software projects. We address two different dimen- sions of requirements change analysis in this dissertation: First, we develop an automated approach for predicting how a change to one requirement impacts other requirements. Next, we consider the propagation of change from requirements to design. To this end, we develop an automated approach for predicting how the design of a system is impacted by changes made to the requirements
    corecore