95 research outputs found

    An Assessment of DevOps Maturity in a Software Project

    Get PDF
    DevOps is a software development method, which aims at decreasing conflict between software developers and system operators. Conflicts can occur because the developers’ goal is to release the new features of the software to production, whereas the operators’ goal is to keep the software as stable and available as possible. In traditional software development models, the typical amount of time between deployments can be long and the changes in software can become rather complex and big in size. The DevOps approach seeks to solve this contradiction by bringing software developers and system operators together from the very beginning of a development project. In the DevOps model, changes deployed to production are small and frequent. Automated deployments decrease human errors that sometimes occur in manual deployments. Testing is at least partly automated and tests are run after each individual software change. However, technical means are only one part of the DevOps approach. The model also emphasizes changes in organizational culture, which are ideally based on openness, continuous learning, and experimentation. Employees possess the freedom of decision-making while carrying the responsibility that follows. In addition to individual or team-based goals, each employee is encouraged to pursue the common goals. The aim of this thesis is two-fold. Firstly, the goal is to understand and define the DevOps model through a literature review. Secondly, the thesis analyzes the factors that contribute to the successful adoption of DevOps in an organization, including those with the possibility of slowing down or hindering the process. A qualitative case study was carried out on a system development project in a large Finnish technology company. The data consists of semi-structured open-ended interviews with key personnel, and the findings are analyzed and compared to factors introduced in previous DevOps literature, including the DevOps maturity model. The case project is also assessed in terms of its DevOps maturity. Finally, impediments and problems regarding DevOps adoption are discussed. Based on the case study, major challenges in the project include the large size and complexity of the project, problems in project management, occasional communication problems between the vendor and the client, poor overall quality of the software, and defects in the software development process of the vendor. Despite the challenges, the company demonstrated progress in some aspects, such as partly automating the deployment process, creating basic monitoring for the software, and negotiating development and testing guidelines with the vendor

    C-rusted: The Advantages of Rust, in C, without the Disadvantages

    Full text link
    C-rusted is an innovative technology whereby C programs can be (partly) annotated so as to express: ownership, exclusivity and shareability of language, system and user-defined resources; dynamic properties of objects and the way they evolve during program execution; nominal typing and subtyping. The (partially) annotated C programs can be translated with unmodified versions of any compilation toolchain capable of processing ISO C code. The annotated C program parts can be validated by static analysis: if the static analyzer flags no error, then the annotations are provably coherent among themselves and with respect to annotated C code, in which case said annotated parts are provably exempt from a large class of logic, security, and run-time errors.Comment: 7 pages, 4 figure

    Managing Continuous Digital Service Innovation for Value Co-Creation

    Get PDF
    Service organizations across various industries are increasingly implementing continuous development methods and practices to transform their digital service innovation and development processes. Consequently, continuous digital service innovation (DSI) has become a way to react to today’s dynamic markets by proposing value to customers quickly while maintaining service quality. However, little is known about how organizations can enable value co-creation (VCC) in their continuous DSI processes. We fill this gap in the literature by focusing on organizational-level continuous DSI processes. Based on findings from 23 industry informants from six Finnish digital service organizations, we present a preliminary framework depicting three integral and interdependent dimensions of managing continuous DSI for VCC within organizations: managing continuous operations, managing people, and managing resources. We argue that such management insights are crucial for both research and practice for realizing the VCC potential of continuous DSI for organizations

    Systematizing Decentralization and Privacy: Lessons from 15 Years of Research and Deployments

    Get PDF
    Decentralized systems are a subset of distributed systems where multiple authorities control different components and no authority is fully trusted by all. This implies that any component in a decentralized system is potentially adversarial. We revise fifteen years of research on decentralization and privacy, and provide an overview of key systems, as well as key insights for designers of future systems. We show that decentralized designs can enhance privacy, integrity, and availability but also require careful trade-offs in terms of system complexity, properties provided, and degree of decentralization. These trade-offs need to be understood and navigated by designers. We argue that a combination of insights from cryptography, distributed systems, and mechanism design, aligned with the development of adequate incentives, are necessary to build scalable and successful privacy-preserving decentralized systems

    Software development using DevOps tools and CD pipelines : a case study

    Get PDF
    The objective of this study is to get insight on the usage of automated build and deployment pipelines by software development teams at Avaintec Oy in the context of DevOps methodologies. Automated deployments are used widely in today’s software development and they allow for complex installation operations and testing to be done in a time-saving manner as less manual work is required. While there is a lot of research in the area of DevOps and automation pipelines, standardised ways of working and best practices are still vague in many ways. Studying the effects of DevOps and the use of the automation pipelines in the scope of the development team is important to establish practices and ways of working that can best support the work of the developers and also be cost effective for the companies. The research methods of this study are a literature review of the most recent literature on using automation in software development, and a case study of the process of taking DevOps methodologies and a Continuous Deployment pipeline into use at Avaintec Oy. The literature is analysed with the help of a theme matrix. The case study was conducted by interviewing selected members of development teams at Avaintec. The interviews were recorded and transcribed, and then analysed with a theme matrix. The output from the literature review is reflected to the output from the interviews in the case study section. The conclusions from this study indicate that development teams find DevOps and DevOps pipelines useful, despite the learning curve in the new tools and methodologies and the amount of initial setup work. The evolution of an automated build and deployment pipeline should be continuous and pipelines should be built incrementally, both of which were true for the studied case. The engagement of developers to the Operations side is a challenge present in both literature and the studied case, as developers at times are not that familiar with the pipeline. Apart from the pipeline, products should also be developed to be suitable for DevOps and automatic deployments, microservices seem to provide advantage in this

    Use of Educational Hardware and Software to Encourage Children to Code

    Get PDF
    Primary and secondary computer education nowadays requires modern aids to be included throughout the educational process. The purpose of these aids is to encourage children to code, to be more interactive, and to express their creativity. A new class of computing devices, called Single Board Computers (SBC) are tools that can help achieve the modern educational requirements as critical thinking, problem solving, creativity, interaction etc. The main idea here is to present a short survey of educational programmable hardware systems. In our case study, we want to point out the benefits of SBC and their impact on the education process
    corecore