The document discusses continuous integration practices. It describes some key rules and prerequisites for continuous integration, including maintaining a code repository, automating builds, ensuring builds are self-testing, and committing code changes frequently. It also discusses source code management best practices for continuous integration like tagging releases and using branching strategies. Additionally, it covers the need for automated build tools, a continuous integration server, and quality analysis/reporting tools to enable continuous integration.
The document discusses key aspects of agile software development including test-driven development, XP practices, and the Scrum framework. It describes practices like test-driven development, continuous integration, and pair programming. It outlines the roles in Scrum like product owner, Scrum master, and development team. It also summarizes tools commonly used in agile development projects.
Introductie slides Software Product Management door het Nederlands Instituut ...Maikel Meeuwse
Dit zijn de slides voor de cursus Software Product Management, die wordt verzorgd door het Nederlands Instituut voor de Software Industrie en de Universiteit Utrecht.
Voor meer informatie over het Nederlands Instituut voor de Software Industrie, kijk dan op www.nisi.nl
This document provides an overview of agile software development methods. It begins with introducing the presenters and stating the topics to be covered, which include the agile manifesto, terminology, methodologies like Scrum and XP, and a comparison of agile and non-agile models. It then discusses what agility means in software development and the background and history leading to the emergence of agile methods. Key aspects of agile like lightweight processes, frequent delivery of value, and adaptability to change are contrasted with traditional plan-driven models. The document concludes with providing resources for further information on agile methodology.
Introductie slides Advanced Agile Product Ownership door het Nederlands Insti...Maikel Meeuwse
Dit zijn de slides voor de cursus Advanced Agile Product Ownership, die wordt verzorgd door het Nederlands Instituut voor de Software Industrie.
Voor meer informatie over het Nederlands Instituut voor de Software Industrie, kijk dan op www.nisi.nl
A keynote presentation comparing/contrasting old & new SDLC methodologies that was used to kick off an internal agile meetup focused on standardizing on the Atlassian suite of SDLC tools.
The document provides an introduction to Agile principles and practices. It discusses that Agile focuses on customer collaboration and delivering working software frequently. It describes the creation of the Agile Alliance by 17 software developers who wrote the Agile Manifesto emphasizing individuals, interactions, working software, and responding to change. It also outlines 12 Agile principles and compares traditional waterfall and Agile rapid development methods.
Testing is not a stand-alone activity. It has its place within a software development life cycle model and therefore the life cycle applied will largely determine how testing is organized.
There are many different forms of testing. Because several disciplines, often with different interests, are involved in the development life cycle, it is important to clearly understand and define the various test levels and types. This chapter discusses the most commonly applied software development models, test levels and test types. Maintenance can be seen as a specific instance of a development process. The way maintenance influences the test process, levels and types and how testing can be organized is described in the last section of this chapter.
The International Journal of Engineering & Science is aimed at providing a platform for researchers, engineers, scientists, or educators to publish their original research results, to exchange new ideas, to disseminate information in innovative designs, engineering experiences and technological skills. It is also the Journal's objective to promote engineering and technology education. All papers submitted to the Journal will be blind peer-reviewed. Only original articles will be published.
The papers for publication in The International Journal of Engineering& Science are selected through rigorous peer reviews to ensure originality, timeliness, relevance, and readability.
The document discusses key aspects of agile software development including test-driven development, XP practices, and the Scrum framework. It describes practices like test-driven development, continuous integration, and pair programming. It outlines the roles in Scrum like product owner, Scrum master, and development team. It also summarizes tools commonly used in agile development projects.
Introductie slides Software Product Management door het Nederlands Instituut ...Maikel Meeuwse
Dit zijn de slides voor de cursus Software Product Management, die wordt verzorgd door het Nederlands Instituut voor de Software Industrie en de Universiteit Utrecht.
Voor meer informatie over het Nederlands Instituut voor de Software Industrie, kijk dan op www.nisi.nl
This document provides an overview of agile software development methods. It begins with introducing the presenters and stating the topics to be covered, which include the agile manifesto, terminology, methodologies like Scrum and XP, and a comparison of agile and non-agile models. It then discusses what agility means in software development and the background and history leading to the emergence of agile methods. Key aspects of agile like lightweight processes, frequent delivery of value, and adaptability to change are contrasted with traditional plan-driven models. The document concludes with providing resources for further information on agile methodology.
Introductie slides Advanced Agile Product Ownership door het Nederlands Insti...Maikel Meeuwse
Dit zijn de slides voor de cursus Advanced Agile Product Ownership, die wordt verzorgd door het Nederlands Instituut voor de Software Industrie.
Voor meer informatie over het Nederlands Instituut voor de Software Industrie, kijk dan op www.nisi.nl
A keynote presentation comparing/contrasting old & new SDLC methodologies that was used to kick off an internal agile meetup focused on standardizing on the Atlassian suite of SDLC tools.
The document provides an introduction to Agile principles and practices. It discusses that Agile focuses on customer collaboration and delivering working software frequently. It describes the creation of the Agile Alliance by 17 software developers who wrote the Agile Manifesto emphasizing individuals, interactions, working software, and responding to change. It also outlines 12 Agile principles and compares traditional waterfall and Agile rapid development methods.
Testing is not a stand-alone activity. It has its place within a software development life cycle model and therefore the life cycle applied will largely determine how testing is organized.
There are many different forms of testing. Because several disciplines, often with different interests, are involved in the development life cycle, it is important to clearly understand and define the various test levels and types. This chapter discusses the most commonly applied software development models, test levels and test types. Maintenance can be seen as a specific instance of a development process. The way maintenance influences the test process, levels and types and how testing can be organized is described in the last section of this chapter.
The International Journal of Engineering & Science is aimed at providing a platform for researchers, engineers, scientists, or educators to publish their original research results, to exchange new ideas, to disseminate information in innovative designs, engineering experiences and technological skills. It is also the Journal's objective to promote engineering and technology education. All papers submitted to the Journal will be blind peer-reviewed. Only original articles will be published.
The papers for publication in The International Journal of Engineering& Science are selected through rigorous peer reviews to ensure originality, timeliness, relevance, and readability.
SQA involves systematic and planned actions to ensure software development conforms to requirements and is delivered on time and on budget. It includes activities like requirements reviews, testing, and metrics. V&V helps ensure the right product is built correctly through techniques like inspections and audits. SQA provides independent assessments and catches defects early for lower costs. Benefits include improved processes and efficiencies through requirements and code reviews. Key factors for successful SQA include management support, commitment to processes, and monitoring adoption through metrics.
The Rationale for Continuous Delivery (The culture and practice of good softw...C4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1Ff5T3D.
Dave Farley discusses the problems raised by inefficient processes creating poor quality output, too late to capitalise on the expected business value, and proposes solutions to them. Filmed at qconlondon.com.
Dave Farley is a thought-leader in the field of Continuous Delivery, DevOps and Software Development in general. He is co-author of the Jolt-award winning book 'Continuous Delivery', a regular conference speaker, blogger and a contributor to the Reactive Manifesto.
Planon switched to the SCRUM development method in 2004 to address issues with their previous Prince2 method. This allowed for biannual releases with marketing versions in between, and made changes more affordable to implement. Under SCRUM, teams self-select tasks for one month sprints. Product quality is ensured through effective team composition, test automation, and test effort estimation per backlog item. The agile product management process at Planon starts by identifying business problems and acquiring stakeholder input to determine themes and functionality to implement, estimating costs and opportunities. Themes are broken into concepts and solution stories to define requirements assigned to SCRUM teams.
This Presentation shows That what is Agile methodology, its principles and key points and how it is different from other software development life cycle.
This document provides an overview of Agile methodology. It defines Agile as an iterative software development practice that emphasizes continuous testing and collaboration over rigid processes. The key points covered include:
- The core values of Agile focus on interactions, working software, customer collaboration, and responding to change.
- Agile uses incremental and iterative development compared to the sequential waterfall model. This allows for early customer feedback and flexibility.
- Benefits of Agile include adapting to changes, delivering working software frequently, engaging stakeholders, and improving quality.
- Common roles in Agile include the Scrum Master, team members, Product Owner, and stakeholders. The Scrum Master facilitates the team while the Product Owner prior
1) Businesses require faster development speed while maintaining operational stability, but continuous development without proper implementation often leads to continuous failures.
2) Development and operations teams have different goals, with development wanting change and operations wanting stability, creating a paradox.
3) People, processes, tools, and organizational structures often differ between development and operations, exacerbating conflicts between the two.
The (Un) Expected Impact of Tools in Software EvolutionGail Murphy
The document discusses how software architecture and tool architecture impact a continual flow of value in software development. It argues that software architecture needs to evolve gracefully over time to enable value delivery, and that tools should support human and tool interactions to facilitate appropriate architectural decisions. However, tool architecture is often ignored despite likely interactions with software architecture. More research is needed to understand these relationships and how tool architecture can support software architecture evolution.
This story is about engagement of a Solution Architect into absolutely new and complex business domain – life science, where a client wants to modernize his legacy platform, which itself is a unique technological offering on the market. Sounds challenging already? Let’s have a look on how a Solution Architect can be successful in such project.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...aamahdys
Wrong implementation of CMMI, an implementation that leads to appraisal satisfaction regardless of the values and benefits that CMMI intends to provide, is the worst thing you may ever give to your business or organization. In our experience with Agile CMMI organizations, we found that the agile concept implicitly enhances the correct and valuable implementation of some CMMI process areas such as Integrated Project Management, Decision Analysis and Resolution, Measurements and Analysis, Organizational Process Focus, Risk Management and others. There is a direct relationship between some agile practices and CMMI process area specific practices, the goal of combining both is that CMMI controls and manages the processes more than Agile but Agile ensures providing the value and flexibility to CMMI processes, and force the implementer to think of the value before taking any action. This paper focuses on two CMMI process areas only which are Organizational Process Focus (OPF) and Risk Management (RSKM) and explains how to make their implementation lean in agile environment by providing some proven practices that add more values to the business of an organization. Moreover, the paper provides a model of thinking before implementing CMMI in agile environment. We selected two process areas from different categories; OPF section gives you an initial thought on how to easily implement Integrated Project Management (IPM) and RSKM gives you an initial thought on how to easily implement Measurements and Analysis (MA).
CMMI 10th Annual Technology Conference and User Group
http://www.ndia.org/meetings/1110/Pages/default.aspx
Direct abstract link
http://proceedings.ndia.org/1110/11316.pdf
Agile CMMI Blog:
http://agilecmmi.blogspot.com
Agile CMMI Community/ Discussion Group
http://www.linkedin.com/groups?mostPopular=&gid=1516987
Implications of Open Source Software Use (or Let's Talk Open Source)Gail Murphy
A talk given to the UBC Computer Science Alumni group discussing a number of implications of the use of open source as part of the global software supply chain.
This document discusses SpiraPlan, an Inflectra product for program and portfolio management. It aims to provide an overview of SpiraPlan's different workspaces, including Program, Product, and Enterprise workspaces. It also discusses the vision to help users understand how programs of products are progressing, how complete a portfolio is, and how risks are mitigated across an enterprise. The presentation provides a sneak peek at new workspace dropdowns and standard rollup views, with future phases potentially including additional metrics like risks, quality, and incidents. Feedback from attendees is requested on important metrics, key analyses, essential first versions, and ideas for enhancements.
Since the system had been began to gain importance in the place of the software, intended to help better the work done. Waterfall method of software development methods, agile methods are constantly changing and evolving process is hardly surprising given that the development becomes clear. Practices applied in the software development work is most basically the same, however, has changed the practices described in the application form is shown in various sources. Basic software development cycle to determine the requirements, design, modified, implementation, testing and deployment phases is composed.
Agile methods are almost the beginning of the end of the loop with the development of test event, be considered as almost the first, has progressed to a place of importance given to the prediction, the progress continues. In this study,one of agile development practice e of the Test-Driven Development is applied by considering the exchange tried to test effectiveness.
AGILE methodology is a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project.
Agile methodology is the most significant approach to project management which is effectively used in the process of software development. This agile approach has been majorly introduced in the field of software development to overcome difficulties with earlier waterfall model and to make processes more flexible and effective.
https://www.testingxperts.com/blog/agile-methodology
The survey found that agile adoption continues to grow, with 94% of organizations now practicing agile. Larger organizations and more distributed teams are embracing agile. The top benefits remain managing changing priorities, increased productivity, and project visibility. While Scrum remains dominant, scaling frameworks like SAFe are growing in popularity. Measurement of agile success focuses on delivery metrics like timelines and quality. Barriers to further adoption include organizational culture challenges and lack of agile experience.
The document describes the waterfall model of the software development life cycle (SDLC). It includes notations used in the model and the typical project phases and associated responsibilities. The phases are initiation, requirements, design, construction, testing, and implementation. Requirements are developed by the business analyst, design is done by designers, construction by the project lead, and testing involves system integration testing by QA and user acceptance testing by end users. Key documents and milestones are noted between each phase.
In this talk, I explore what productivity means to software developers, how we might track the value that is delivered in software produced by developers and how we might begin to think about measuring the productive delivery of effective software.
Keynote at International Conference on Performance Engineering (ICPE) 2020.
This document compares and contrasts the Waterfall and Agile project management methodologies. It outlines the key differences between the two approaches, such as Waterfall being rigid and inflexible while Agile is iterative and flexible. It also discusses how they have similar elements like planning and tracking progress. The document notes that while Waterfall is best for long-term, stable projects, Agile has grown in popularity for its ability to adapt to changes. It concludes that a hybrid approach combining aspects of both methodologies can work best depending on the specific project's needs.
Continuous Integration and Deployment Best Practices on AWSDanilo Poccia
This document discusses best practices for continuous integration and deployment on AWS. It recommends using AWS services like CodeCommit for source code repositories, CodeBuild for continuous integration, CodeDeploy for deployments, and CodePipeline for automated workflows. Continuous integration helps catch bugs early by frequently integrating code changes. Continuous deployment further automates releasing code to production multiple times a day through feature flags and A/B testing, allowing for rapid iteration and feedback from real users.
Continuous integration (CI) is about automating testing of code changes. This document discusses different types of tests like unit, functional, and integration testing. It provides examples of writing tests using the unittest framework in Python. Plugins like pytest-pep8 and pytest-cov can be used to check code style and test coverage. Fabric and Gitlab CI can help automate deployment and setup of code. The CI process pulls Docker images from a registry to run tests on code commits, then deploys passed code to production servers.
SQA involves systematic and planned actions to ensure software development conforms to requirements and is delivered on time and on budget. It includes activities like requirements reviews, testing, and metrics. V&V helps ensure the right product is built correctly through techniques like inspections and audits. SQA provides independent assessments and catches defects early for lower costs. Benefits include improved processes and efficiencies through requirements and code reviews. Key factors for successful SQA include management support, commitment to processes, and monitoring adoption through metrics.
The Rationale for Continuous Delivery (The culture and practice of good softw...C4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1Ff5T3D.
Dave Farley discusses the problems raised by inefficient processes creating poor quality output, too late to capitalise on the expected business value, and proposes solutions to them. Filmed at qconlondon.com.
Dave Farley is a thought-leader in the field of Continuous Delivery, DevOps and Software Development in general. He is co-author of the Jolt-award winning book 'Continuous Delivery', a regular conference speaker, blogger and a contributor to the Reactive Manifesto.
Planon switched to the SCRUM development method in 2004 to address issues with their previous Prince2 method. This allowed for biannual releases with marketing versions in between, and made changes more affordable to implement. Under SCRUM, teams self-select tasks for one month sprints. Product quality is ensured through effective team composition, test automation, and test effort estimation per backlog item. The agile product management process at Planon starts by identifying business problems and acquiring stakeholder input to determine themes and functionality to implement, estimating costs and opportunities. Themes are broken into concepts and solution stories to define requirements assigned to SCRUM teams.
This Presentation shows That what is Agile methodology, its principles and key points and how it is different from other software development life cycle.
This document provides an overview of Agile methodology. It defines Agile as an iterative software development practice that emphasizes continuous testing and collaboration over rigid processes. The key points covered include:
- The core values of Agile focus on interactions, working software, customer collaboration, and responding to change.
- Agile uses incremental and iterative development compared to the sequential waterfall model. This allows for early customer feedback and flexibility.
- Benefits of Agile include adapting to changes, delivering working software frequently, engaging stakeholders, and improving quality.
- Common roles in Agile include the Scrum Master, team members, Product Owner, and stakeholders. The Scrum Master facilitates the team while the Product Owner prior
1) Businesses require faster development speed while maintaining operational stability, but continuous development without proper implementation often leads to continuous failures.
2) Development and operations teams have different goals, with development wanting change and operations wanting stability, creating a paradox.
3) People, processes, tools, and organizational structures often differ between development and operations, exacerbating conflicts between the two.
The (Un) Expected Impact of Tools in Software EvolutionGail Murphy
The document discusses how software architecture and tool architecture impact a continual flow of value in software development. It argues that software architecture needs to evolve gracefully over time to enable value delivery, and that tools should support human and tool interactions to facilitate appropriate architectural decisions. However, tool architecture is often ignored despite likely interactions with software architecture. More research is needed to understand these relationships and how tool architecture can support software architecture evolution.
This story is about engagement of a Solution Architect into absolutely new and complex business domain – life science, where a client wants to modernize his legacy platform, which itself is a unique technological offering on the market. Sounds challenging already? Let’s have a look on how a Solution Architect can be successful in such project.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...aamahdys
Wrong implementation of CMMI, an implementation that leads to appraisal satisfaction regardless of the values and benefits that CMMI intends to provide, is the worst thing you may ever give to your business or organization. In our experience with Agile CMMI organizations, we found that the agile concept implicitly enhances the correct and valuable implementation of some CMMI process areas such as Integrated Project Management, Decision Analysis and Resolution, Measurements and Analysis, Organizational Process Focus, Risk Management and others. There is a direct relationship between some agile practices and CMMI process area specific practices, the goal of combining both is that CMMI controls and manages the processes more than Agile but Agile ensures providing the value and flexibility to CMMI processes, and force the implementer to think of the value before taking any action. This paper focuses on two CMMI process areas only which are Organizational Process Focus (OPF) and Risk Management (RSKM) and explains how to make their implementation lean in agile environment by providing some proven practices that add more values to the business of an organization. Moreover, the paper provides a model of thinking before implementing CMMI in agile environment. We selected two process areas from different categories; OPF section gives you an initial thought on how to easily implement Integrated Project Management (IPM) and RSKM gives you an initial thought on how to easily implement Measurements and Analysis (MA).
CMMI 10th Annual Technology Conference and User Group
http://www.ndia.org/meetings/1110/Pages/default.aspx
Direct abstract link
http://proceedings.ndia.org/1110/11316.pdf
Agile CMMI Blog:
http://agilecmmi.blogspot.com
Agile CMMI Community/ Discussion Group
http://www.linkedin.com/groups?mostPopular=&gid=1516987
Implications of Open Source Software Use (or Let's Talk Open Source)Gail Murphy
A talk given to the UBC Computer Science Alumni group discussing a number of implications of the use of open source as part of the global software supply chain.
This document discusses SpiraPlan, an Inflectra product for program and portfolio management. It aims to provide an overview of SpiraPlan's different workspaces, including Program, Product, and Enterprise workspaces. It also discusses the vision to help users understand how programs of products are progressing, how complete a portfolio is, and how risks are mitigated across an enterprise. The presentation provides a sneak peek at new workspace dropdowns and standard rollup views, with future phases potentially including additional metrics like risks, quality, and incidents. Feedback from attendees is requested on important metrics, key analyses, essential first versions, and ideas for enhancements.
Since the system had been began to gain importance in the place of the software, intended to help better the work done. Waterfall method of software development methods, agile methods are constantly changing and evolving process is hardly surprising given that the development becomes clear. Practices applied in the software development work is most basically the same, however, has changed the practices described in the application form is shown in various sources. Basic software development cycle to determine the requirements, design, modified, implementation, testing and deployment phases is composed.
Agile methods are almost the beginning of the end of the loop with the development of test event, be considered as almost the first, has progressed to a place of importance given to the prediction, the progress continues. In this study,one of agile development practice e of the Test-Driven Development is applied by considering the exchange tried to test effectiveness.
AGILE methodology is a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project.
Agile methodology is the most significant approach to project management which is effectively used in the process of software development. This agile approach has been majorly introduced in the field of software development to overcome difficulties with earlier waterfall model and to make processes more flexible and effective.
https://www.testingxperts.com/blog/agile-methodology
The survey found that agile adoption continues to grow, with 94% of organizations now practicing agile. Larger organizations and more distributed teams are embracing agile. The top benefits remain managing changing priorities, increased productivity, and project visibility. While Scrum remains dominant, scaling frameworks like SAFe are growing in popularity. Measurement of agile success focuses on delivery metrics like timelines and quality. Barriers to further adoption include organizational culture challenges and lack of agile experience.
The document describes the waterfall model of the software development life cycle (SDLC). It includes notations used in the model and the typical project phases and associated responsibilities. The phases are initiation, requirements, design, construction, testing, and implementation. Requirements are developed by the business analyst, design is done by designers, construction by the project lead, and testing involves system integration testing by QA and user acceptance testing by end users. Key documents and milestones are noted between each phase.
In this talk, I explore what productivity means to software developers, how we might track the value that is delivered in software produced by developers and how we might begin to think about measuring the productive delivery of effective software.
Keynote at International Conference on Performance Engineering (ICPE) 2020.
This document compares and contrasts the Waterfall and Agile project management methodologies. It outlines the key differences between the two approaches, such as Waterfall being rigid and inflexible while Agile is iterative and flexible. It also discusses how they have similar elements like planning and tracking progress. The document notes that while Waterfall is best for long-term, stable projects, Agile has grown in popularity for its ability to adapt to changes. It concludes that a hybrid approach combining aspects of both methodologies can work best depending on the specific project's needs.
Continuous Integration and Deployment Best Practices on AWSDanilo Poccia
This document discusses best practices for continuous integration and deployment on AWS. It recommends using AWS services like CodeCommit for source code repositories, CodeBuild for continuous integration, CodeDeploy for deployments, and CodePipeline for automated workflows. Continuous integration helps catch bugs early by frequently integrating code changes. Continuous deployment further automates releasing code to production multiple times a day through feature flags and A/B testing, allowing for rapid iteration and feedback from real users.
Continuous integration (CI) is about automating testing of code changes. This document discusses different types of tests like unit, functional, and integration testing. It provides examples of writing tests using the unittest framework in Python. Plugins like pytest-pep8 and pytest-cov can be used to check code style and test coverage. Fabric and Gitlab CI can help automate deployment and setup of code. The CI process pulls Docker images from a registry to run tests on code commits, then deploys passed code to production servers.
Continuous Integration (CI) is a software development practice where developers integrate code into a shared repository frequently, preferably daily or multiple times per day. Each integration is verified by an automated build and test process to detect errors early. CI can significantly reduce integration problems and allow software to be developed more rapidly. CI practices include automating builds and tests, integrating frequently in small batches, treating failures as priority issues, and making current successful builds easily available. Open source tools like CruiseControl can help implement CI processes.
This document provides an overview of continuous integration training goals and plans. The goals are to demonstrate that modern projects cannot succeed without continuous integration and to establish a connection between continuous integration practices and CMMI product integration processes. The training plan covers topics such as what continuous integration is, why it is needed, prerequisites, workflows, tools, and relationships to CMMI processes. It also discusses continuous integration tools and classifications.
This document provides an introduction to version control. It discusses what version control is, the history and evolution of version control systems, different types of version control systems classified by their repository model and concurrency model, and practical considerations for starting to use version control. Key topics covered include centralized and distributed version control, lock-modify-unlock and merge models, and domain vocabulary for common version control tasks and workflows.
Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010Uwe Heinz
The document describes Roedl & Partner's integration products for connecting Microsoft Dynamics CRM 2011 and ERP systems. Key products include an event pipeline solution to export CRM events, an adapter for the CRM WCF interface, and an accelerator that provides templates for common integration interfaces and patterns like exception handling and monitoring. The accelerator aims to speed up interface development between CRM and ERP systems like SAP.
Introduction to Continuous Integration with JenkinsBrice Argenson
This document provides an introduction to continuous integration with Jenkins. It discusses what continuous integration is, how it works using examples, and why Jenkins is a popular open-source continuous integration server. Continuous integration involves developers frequently integrating their work into a shared repository. This allows for multiple times a day integration to catch bugs early. The document then demonstrates how to use Jenkins for continuous integration on a Java project.
Introduction to Continuous Integration with JenkinsEric Hogue
Talk on Continuous Integration given at Sunshine PHP 2015 on February 7.
Continuous Integration allows developers to run tests automatically every time code is pushed to source control. We will look at the different tests that a Continuous Integration server can run. How to create a build script so it runs the tests and make sure it produces the needed reports. Finally, how to set up Jenkins to run the build and display the reports.
Enterprise Data Integration for Microsoft Dynamics CRMDaniel Cai
This is the deck that I used for my presentation for XrmVirtual on Apr 9, 2013, which discusses various options that you may have for Microsoft Dynamics CRM data migration and integration.
This document provides an overview of continuous integration (CI) and the basics of setting up a CI system. It discusses the problems that occur without CI, such as lots of bugs, infrequent testing and releases. It then introduces CI, highlighting benefits like fewer bugs, smoother integration and faster issue identification. The core components needed for a basic CI system are outlined as an automated build process, test suite, build server and source code repository. Additional components like deployment automation, test types, code quality metrics and version control are also recommended. Finally, a simple example pipeline is shown.
This document discusses how Hadoop can be used in data warehousing and analytics. It begins with an overview of data warehousing and analytical databases. It then describes how organizations traditionally separate transactional and analytical systems and use extract, transform, load processes to move data between them. The document proposes using Hadoop as an alternative to traditional data warehousing architectures by using it for extraction, transformation, loading, and even serving analytical queries.
Best Practices for the Hadoop Data Warehouse: EDW 101 for Hadoop ProfessionalsCloudera, Inc.
The enormous legacy of EDW experience and best practices can be adapted to the unique capabilities of the Hadoop environment. In this webinar, in a point-counterpoint format, Dr. Kimball will describe standard data warehouse best practices including the identification of dimensions and facts, managing primary keys, and handling slowly changing dimensions (SCDs) and conformed dimensions. Eli Collins, Chief Technologist at Cloudera, will describe how each of these practices actually can be implemented in Hadoop.
Jenkins is an open-source tool for continuous integration that allows developers to integrate code changes frequently from a main branch using an automated build process. It detects errors early, measures code quality, and improves delivery speed. Jenkins supports various source control, build tools, and plugins to customize notifications and reporting. Security features allow restricting access and privileges based on user roles and projects.
This presenation explains basics of ETL (Extract-Transform-Load) concept in relation to such data solutions as data warehousing, data migration, or data integration. CloverETL is presented closely as an example of enterprise ETL tool. It also covers typical phases of data integration projects.
The document is a chapter from a textbook on data mining written by Akannsha A. Totewar, a professor at YCCE in Nagpur, India. It provides an introduction to data mining, including definitions of data mining, the motivation and evolution of the field, common data mining tasks, and major issues in data mining such as methodology, performance, and privacy.
Introduction to Investigation And Utilizing Lean Test Metrics In Agile Softwa...IJERA Editor
The growth of the software development industry approaches the new development methodologies to deliver the
error free software to its end-user fulfilling the business values to product. The growth of tools and technology
has brought the automation in the development and software testing process, it has also increased the demand of
the fast testing and delivery of the software to end customers. Traditional software development methodologies
to trending agile software development trend have brought new philosophy, dimensions, and processes having
invested new tools to make process easy. The Agile development (Scrum, XP, FDD, BDD, ATDD, ASD,
DSDM, Kanban, Crystal and Lean) process also faces the software testing model crises because of the fast
development of life cycles, fast delivery to end users without having appropriate test metrics which make the
software testing process slow as well as increase the risk. The analysis of the testing metrics in the software
testing process and setting the right lean test metrics help to improve the software quality effectively in agile
process.
Top 50 Agile Interview Questions and Answers.pdfJazmine Brown
Top 50 Agile Interview Questions and Answers
Many organizations and businesses are taking notice of the agile technique. In today's world, it has become the benchmark for project management and software development. Various firms now use agile methodologies to offer high-value goods to their clients in the lowest amount of time.
In recent years, the agile technique has grown in popularity, and as a result, businesses have adopted it into their organizational structures. As a result, professionals with knowledge of agile are in high demand. As a result, you may have a lucrative career in this field.
These Agile interview questions and answers are great for you if you are planning to attend an agile interview and are preparing for one.
We hope that this post will familiarize you with some of the top agile interview questions that are most commonly raised in the interview. These flexible agile interview questions will improve your chances of passing your forthcoming interview.
50 top agile interview questions along with concrete answers
We have formulated the top agile interview questions and answers based on three different levels of entry into the profession along with scenario-based questions.
Beginner/Entry-Level Agile Interview questions and Answers
1. Explain agile methodology.
Agile methodology is a software development paradigm that emphasizes iterative and incremental development. The agile strategy is based on delivering a product in tiny operational increments or builds. Every program built is a better and more advanced version of the previous one. The development team and stakeholders are constantly collaborating on enhancements and changes in requirements.
Alternatively, we can describe the agile approach as the process of continuously providing functioning software while maintaining regular communication with stakeholders in order to ensure customer satisfaction.
2. How many types of Agile Methodologies are there? Enumerate them.
Agile Methodologies are classified into seven different types. They are:
• Scrum
• Kanban
• Extreme Programming
• Feature-Driven Development (FDD)
• Dynamic Systems Development Method (DSDM)
• Lean
• Crystal
3. What are the merits and demerits of the agile technique?
The following are some of the most noteworthy benefits of the agile methodology:
• Agile software development is one of the quickest and most flexible methodologies available.
• During the development phase, customers might adjust their needs at any time.
• It largely focuses on the software product's regular release. As a result, clients have the opportunity to see the product in its early stages of development.
• Customers have the option of providing comments on any working deliverable they receive.
• Because the development team focuses on creating a product that matches the customer's needs, this strategy ensures customer happiness.
• It focuses mostly on the product's good design.
The document discusses agile software development and extreme programming (XP). It describes key principles of agile development like rapid delivery of working software, customer involvement, and responding quickly to changes. XP is introduced as an influential agile method that uses techniques like test-driven development, pair programming, and frequent small releases. User stories are used to capture requirements which are then broken down into tasks for development.
Agile development and open development practices share a great deal of features. But the distributed nature of open development can make some common Agile practices difficult, or even impossible to adopt. This presentation is an initial exploration of how the two may mesh together.
The document discusses agile engineering practices for software development, including user stories/use cases, test-driven development, continuous integration, precise design, merciless refactoring, collective code ownership, coding conventions, pair programming, code reviews, and steps for adopting agile practices. It provides an overview of each practice and emphasizes adopting test-driven development first when transitioning to agile.
AGILE METHODOLOGIES PRESENTATION BY OLIVER TORRES1410166
The document discusses various agile development methodologies. It begins by describing agile models as iterative and incremental software development approaches that rely on collaboration between developers and users. It then discusses the Agile Manifesto, which established 12 principles to guide agile software development. Specific agile methodologies like Extreme Programming (XP) and Scrum are described. XP focuses on early delivery of working software through practices like pair programming and testing. Scrum uses short cycles called sprints to incrementally develop working software increments for review.
Primary Applications of Integration Testing.pdfRohitBhandari66
Integration testing stands out as an essential element in the ever-evolving field of software development, where complex structures are built from a number of dependent components. As an essential phase in the process of creating software, testing ensures that multiple components work together effectively to deliver a software product that is dependable and logical.
The document discusses designing a brand market analysis and outlines Bellwether's process which includes defining the brand's core through logo design, creating a brand style guide, prototyping interfaces, and ensuring code quality through testing and reviews. Bellwether creates 2-3 logo alternatives, takes the newly established logo to create a matching brand style guide, then applies the branding guide and learns from discovery to prototype final designs.
Top 10 Best Practices for Software Development Life CycleDev Software
The Software Development Life Cycle (SDLC) is a structured process that outlines the stages involved in software development. The SDLC process involves planning, designing, coding, testing, and deployment of software applications. Following best practices in each stage of the SDLC process can help you deliver high-quality software that meets the client's requirements. In this blog post, we'll discuss the top 10 best practices for Software Development Life Cycle.
L’uso di componenti Open Source nei processi di sviluppo potrebbe inconsapevolmente portare all’introduzione di vulnerabilità, spesso note, dovute all’utilizzo di versioni non aggiornate degli stessi componenti, o dall’utilizzo di componenti superflui.
In questo webinar uno dei Security Expert di Emerasoft illustra:
- i risultati di un’analisi approfondita relativa all’utilizzo dei componenti Open Source in ben 106.000 aziende;
- i principi utili che scaturiscono dalle analogie esistenti tra la Supply Chain del software e le tradizionali filiere manifatturiere;
- le best practice per migliorare la velocità, l’efficienza e la qualità della Supply Chain del software.
Segui il webinar on demand: https://www.youtube.com/watch?v=3w_1EAxkfYU
Mobile DevOps can make a difference to organisations striving to enable their IT, operations, and development to be well-integrated with business goals.
Mobile DevOps differ from Web DevOps in terms of technologies, infrastructure, processes, tools, and skills.
In today’s fast growing mobile Apps, there are number of different types of development frameworks available e.g. Native, Hybrid, Web based etc.
Now Apps are being developed in combination of Native + hybrid or Native + Web based which complicates their development and builds process.
Another challenge is that every day there are new set of devices in the market and also devices are fragmented into types like phones, phablets tablets etc.
DevOps solves these issues by providing ecosystem of right set of tools.
Release Management Process And Approaches In ITILEnov8
Application release can be categorised into three major types. A correct mix of these releases ensures efficient product performance and enhanced security. The funnction of the enterprise release manager is to ensure all three types of releases are executed for every application as per the requirement.
Continuous testing & devops with @petemar5hallPeter Marshall
This document discusses testing software in high frequency delivery environments using continuous testing and DevOps practices. It outlines how continuous testing is not just about test automation, but also includes automated management of environments, application feedback through monitoring, and engaging in XP practices. DevOps helps by automating building, testing, and deployment to provide consistency and tools for teams. Characteristics of high frequency delivery environments include automating infrastructure, testing, and deployment to reduce errors and allow for smaller, more frequent deliveries. This allows for a single view of quality and faster restore times when issues arise.
Enhance Software Testing with DevOps Practices.pdfCiente
Discover the transformative power of integrating DevOps practices with top automation tools for smarter, streamlined, and more efficient software testing.
From Prototype to Production_ The Embedded Software Development Lifecycle.pdfEmblem Technologies
"Building Robust Communication Protocols for Embedded Systems" delves into the intricate process of designing and implementing reliable communication frameworks tailored to the unique constraints and requirements of embedded systems, ensuring seamless data exchange and system interoperability. This comprehensive guide explores strategies, best practices, and key considerations essential for engineers navigating the complexities of embedded systems development.
From Prototype to Production_ The Embedded Software Development Lifecycle.pdfEmblem Technologies
"Building Robust Communication Protocols for Embedded Systems" delves into the intricate process of designing and implementing reliable communication frameworks tailored to the unique constraints and requirements of embedded systems, ensuring seamless data exchange and system interoperability. This comprehensive guide explores strategies, best practices, and key considerations essential for engineers navigating the complexities of embedded systems development.
Modern gadgets and machines such as medical equipments, mobile phones, cars and even military hardware run on software. The operational efficiency and accuracy of these machines are critical to life and the well being of modern civilization. When the software powering these machines fail it exposes life to danger and can cause the failure of businesses. In this paper, software quality measure is presented with the emphasis on improving standard and controlling damages that may result from badly developed application. The research shows various software quality standards and quality metrics and how they can be applied. The application of the metrics in measuring software quality in the research produced results which shows that the code metrics performance is better than the design metrics performance and points to a new way of improving quality by refactoring application code instead of developing new designs. This is believed to ensure reusability and reduced failure rate when software is developed
How does an open source agile project management software improve team produc...Orangescrum
Looking for a new Open Source Agile project management software to improve team productivity? Here's an overview of how open source can help you. Open Source software has been a boon to businesses, as it offers a large amount of productivity and enhances opportunities.
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Tatiana Kojar
Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our AI development, reaffirming our commitment to delivering top-tier AI solutions. Skybuffer AI harnesses all the innovative capabilities of the SAP BTP in the AI domain, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG). It also helps SAP customers safeguard their investments into SAP Conversational AI and ensure a seamless, one-click transition to SAP Business AI.
With Skybuffer AI, various AI models can be integrated into a single communication channel such as Microsoft Teams. This integration empowers business users with insights drawn from SAP backend systems, enterprise documents, and the expansive knowledge of Generative AI. And the best part of it is that it is all managed through our intuitive no-code Action Server interface, requiring no extensive coding knowledge and making the advanced AI accessible to more users.
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
This presentation provides valuable insights into effective cost-saving techniques on AWS. Learn how to optimize your AWS resources by rightsizing, increasing elasticity, picking the right storage class, and choosing the best pricing model. Additionally, discover essential governance mechanisms to ensure continuous cost efficiency. Whether you are new to AWS or an experienced user, this presentation provides clear and practical tips to help you reduce your cloud costs and get the most out of your budget.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
2. ABOUT US 16 June 2011 Agile Mëtteg – Continuous Integration 2
3. PROFILE Created in 2004 Independent Software Development Company 16 June 2011 Agile Mëtteg – Continuous Integration 3
4. FIGURES 16 June 2011 Agile Mëtteg – Continuous Integration 4 2,5M€ en 2010 32 in 2011
5. MISSION Design, Develop and Customize “Software as Business & Operational Enabler” Fast & flexible solutions business value oriented Help IT and all Business & Operational Organizations to adopt the culture of “Software as Business & Operational Enabler” Simple & pragmatic methods making effective the collaboration of the actors of a project Easy and powerful tools for follow-up of relevant KPI 16 June 2011 Agile Mëtteg – Continuous Integration 5
6. OUR SERVICES MgtTeamServices 4 Applications enabling productivity Bespoke application Mobile application Based on package Consulting services Coaching & Support Training Resource delegation 1 Software Development OpsTeamServices Dev Team Services Agility Agility 2 3 1 Agility 16 June 2011 Agile Mëtteg – Continuous Integration 6 2 3 4
7. OUR MEANS 16 June 2011 Agile Mëtteg – Continuous Integration 7 80% > 4 years 56% > 8 years 31% > 12 years Agility Authorized Training Center in Luxembourg
13. CONTINUOUS INTEGRATION Continuous Integration in a few questions Why do I need it ? What is it ? What does it require ? How does it relate to the Agile principles ? 16 June 2011 Agile Mëtteg – Continuous Integration 13
14. SOFTWARE DEVELOPMENT: INDUSTRY? PROCESSES? What is Software Development? an industry mining, farming, construction, manufacturing, …etc. with clearly identified and well-defined processes, i.e. easily reproducible Really? No failed project? A lot of… 16 June 2011 Agile Mëtteg – Continuous Integration 14
15. SOFTWARE DEVELOPMENT: A LOT OF FAILED PROJECTS 16 June 2011 Agile Mëtteg – Continuous Integration 15
16. SOFTWARE DEVELOPMENT: A LOT OF FAILED PROJECTS 16 June 2011 Agile Mëtteg – Continuous Integration 16
17. « Houston, we’ve got a problem! » 16 June 2011 Agile Mëtteg – Continuous Integration 17
18. AGILE MANIFESTO vs SOFTWARE INDUSTRIALIZATION ? Agile Manifesto Individuals and interactions overprocesses and tools Working softwareovercomprehensive documentation Customer collaboration overcontract negotiation Responding to change overfollowing a plan 16 June 2011 Agile Mëtteg – Continuous Integration 18
19. SOFTWARE CRAFTSMANSHIP vs SOFTWARE INDUSTRIALIZATION? Manifesto for Software Craftsmanship Not onlyworking software, but alsowell-crafted software Not onlyresponding to change, but alsosteadily adding value Not onlyindividuals and interactions, but alsoa community of professionals Not onlycustomer collaboration, but alsoproductive partnerships 16 June 2011 Agile Mëtteg – Continuous Integration 19
20. SOFTWARE DEVELOPMENT: AN ART? Agile Manifesto and Manifesto for Software Craftsmanship were created by veterans of the software industry However, when summed up, one can conclude software development is more an art than an industrial process So, let’s compare with music… 16 June 2011 Agile Mëtteg – Continuous Integration 20
23. SOFTWARE DEVELOPMENT IS AN ART So, Software Development is an art! But building nearly anything is also an art Don’t you think? And, more importantly, Art is not without rules and best practices 16 June 2011 Agile Mëtteg – Continuous Integration 23
24. RULES AND BEST PRACTICES What’s the worst? Not following therules usually leads to a rather direct and abrupt failure project fails integration testing project is refused by infrastructure project fails user acceptance testing … 16 June 2011 Agile Mëtteg – Continuous Integration 24
25. RULES AND BEST PRACTICES What’s the worst? Not following the best practices augments, sometimes dramatically, the risks of failure reduces overall quality increases the time to market / time to deliver has typically a pervasive effect: can be ignored or remains unknown until it becomes really critical increases the maintenance and ownership costs 16 June 2011 Agile Mëtteg – Continuous Integration 25
26. RULES AND BEST PRACTICES What’s the worst? Both are terrible: sources of failure But one is harder to detect than the other Necessity to put in place and to define the structures and infrastructures required to check the quality at every level Because “the earlier, the best” (and less expensive) 16 June 2011 Agile Mëtteg – Continuous Integration 26
28. WHAT IS SOFTWARE QUALITY? “Quality is value to some person” (Gerald Weinberg, “Quality Software Management”) i.e. quality is inherently subjective; people experience the quality of the same software very differently this applies mainly to the quality of a software product, as perceived from an external view; and it can also comprise the quality of its running environment(s) but the quality of the source code can also have an impact on the efforts needed for having a software product that fulfills the requirements, the intrinsicquality Steve McConnell defines external and internal quality characteristics (‘”Code Complete”) 16 June 2011 Agile Mëtteg – Continuous Integration 28
29. IMPLICIT FACTORS FOR SOFTWARE QUALITY The software projects typically follow rather detailed requirement plans Though a set of characteristics often goes unmentioned These are the implied requirements that are expected of all professionally developed software 16 June 2011 Agile Mëtteg – Continuous Integration 29
30. IMPLICIT FACTORS FOR SOFTWARE QUALITY Conformance to implied requirements: Understandability Completeness Conciseness Portability Maintainability Testability Usability Reliability Efficiency Security 16 June 2011 Agile Mëtteg – Continuous Integration 30
31. GUARANTEEING CODE QUALITY How can we guarantee the level of quality of software during the « coding » phases? The same ways as in the industry Factory inspections: “static code analysis” in IT Incremental improvements: “release soon, release often” in IT Tests, tests, tests, tests, tests, tests, … 16 June 2011 Agile Mëtteg – Continuous Integration 31
32. GUARANTEEING CODE QUALITY Focus on Unit Tests and Test Driven Development (TDD) Unit Tests The first tests to write Written by the developers before the code Write the code afterward to make the tests succeed Must run in isolation, without any infrastructure Must be fast to execute How many unit tests per method ? One test per degree of “cyclomatic complexity” 16 June 2011 Agile Mëtteg – Continuous Integration 32
33. GUARANTEEING CODE QUALITY Cyclomatic complexity of a method? the number of linearly independent paths in the method If .. and .. then If .. or .. then If .. then If .. then .. else Do .. While While .. Do Switch 16 June 2011 Agile Mëtteg – Continuous Integration 33
34. GUARANTEEING CODE QUALITY Necessity to put in place the supporting Structures (practices): Unit testing Integration testing Performance testing Regression testing Acceptance testing Infrastructures (tools): Source Code management Issue tracking Build tools Continuous Integration server Quality reporting tools Agility Build Industrialization Build Industrialization Platform Agility 16 June 2011 Agile Mëtteg – Continuous Integration 34
35. GUARANTEEING CODE QUALITY How to put in place the supporting Structures (practices): Define and prioritize the quality requirements Refine and adapt the relevant quality criteria to the objectives Communicate rules and best practices: sharing, training and mentoring Verify the correct usage and level of adoption Review the results and improve the processes Infrastructures (tools): Select the tools adapted to the defined quality requirements Set them up based on the selected criteria (define measurements) Communicate on their usage: sharing, training and mentoring Generate quality reports and metrics Analyze the conformance of the results and adapt the tools Agility Agility 16 June 2011 Agile Mëtteg – Continuous Integration 35
36. Ci Rules and pre-requisites 16 June 2011 Agile Mëtteg – Continuous Integration 36
37. CI RULES AND PRE-REQUISITES (1/3) maintain a code repository automate the build the build must be self-testing regular code sharing i.e. frequent commits 16 June 2011 Agile Mëtteg – Continuous Integration 37
38. CI RULES AND PRE-REQUISITES (2/3) self-contained modifications i.e. commits don’t break the build process the build must be fast integration tests (for the least) in a clone of the production environment 16 June 2011 Agile Mëtteg – Continuous Integration 38
39. CI RULES AND PRE-REQUISITES (3/3) latest deliverables easily available to anyone who needs them easy access to the results of the tests automated deployments to a live test server continous deployment to production is the ideal achievement 16 June 2011 Agile Mëtteg – Continuous Integration 39
43. SOURCE CODE MANAGEMENT What are SCM tools ? Tools that allow sharing and versioning files … but really not their primary interest … … shared folders can do that too ! Tools to track and document the changes in the code, in such a way the developers can work in a task or issue oriented mode 16 June 2011 Agile Mëtteg – Continuous Integration 43
47. Feature branches for large changes“branch by abstraction” pattern works well with continuous integration (for non-distributed SCM’s like CVS, SVN, TFS…) 16 June 2011 Agile Mëtteg – Continuous Integration 44
91. CONCLUSIONS Guaranteeing code quality is an intensive task In time In money Continuous Integration pays back and offers a lot Has a high ROI Cost of ownership reduces over time It can be applied incrementally Agility should be the driving backbone for its adoption 16 June 2011 Agile Mëtteg – Continuous Integration 75
92. RESOURCES Gartner’s study ID “G00151721” http://condor.depaul.edu/~dmumaugh/readings/handouts/SE477/Gartner%20Reports/from_the_cio_trenches_why_so_151721.pdf Standish Group’s Chaos Reporthttp://www.standishgroup.com/services.php “Quality Software Management : Systems Thinking”Gerald Weinberg, 1991, ISBN 978-0932633729 “Code Complete”, Microsoft Programming SeriesSteve McConnell, 1993, ISBN 978-1556154843 16 June 2011 Agile Mëtteg – Continuous Integration 76
93. RESOURCES CVS http://www.nongnu.org/cvs/ Subversion (SVN) http://subversion.apache.org/ Maven http://maven.apache.org/ Ant http://ant.apache.org/ Nanthttp://nant.sourceforge.net/ Ivy http://ant.apache.org/ivy/ EasyAnthttp://www.easyant.org/ Gradlehttp://www.gradle.org/ Buildrhttp://buildr.apache.org/ Gant http://gant.codehaus.org/ Jenkins CI http://jenkins-ci.org/ Hudson CI http://hudson-ci.org/ Sonar http://www.sonarsource.org/ Microsoft Team Foundation Server http://www.microsoft.com/visualstudio/en-us/products/2010-editions/team-foundation-server/ 16 June 2011 Agile Mëtteg – Continuous Integration 77
94. RESOURCES Agile Partner: www.agilepartner.net &Blog: http://blog.agilepartner.net Trainings http://www.agilepartner.net/formations/coup-de-projecteur-sur/?lang=fr Agile Interest Group LU: www.aiglu.org Agile Tour Luxembourg8 November 2011 16 June 2011 Agile Mëtteg – Continuous Integration 78
95. CONTACTS Thank You 16 June 2011 Agile Mëtteg – Continuous Integration 79
96. DEBRIEFING Questions ? 5 fingers vote 1 = useless “I gained nothing. I completely lost my time!” 2 = useful “It wasn’t worth all the time spent on it. I lost most of my time” 3 = average “I gained enough to justify the time spent on” 4 = above average “Good value, I gained more than the time spent” 5 = excellent “Really useful session, time well spent” 16 June 2011 Agile Mëtteg – Continuous Integration 80
98. BRANCH BY ABSTRACTION “Branch by abstraction” all the changes are done in the same place, same location in the SCM no need to merge (hazardously) a lot of code from the feature branch history of the changes stays easy to follow 16 June 2011 Agile Mëtteg – Continuous Integration 82
99. BRANCH BY ABSTRACTION “Branch by abstraction” Cookbook: Introduce an abstraction over the core bits of the big thing you are going to change Update all the bits of code that were formerly using the thing directly to use it via the new abstraction Make a second implementation of the abstraction, with unit tests that specifically test its core functionality Update all the code to use the new implementation Deprecate the first implementation Delete the first implementation (there is no need to go back) Remove the abstraction (only if it is inelegant, not often the case) 16 June 2011 Agile Mëtteg – Continuous Integration 83
Editor's Notes
That’s the answerswe are trying to give in thispresentation
Really? If itis the case, whyfailingprojects?
At firstsight, the Agile Manifestoseems to beagainst Software Industrialization and processes.Emphasize must begiven on the « over »: itdoesn’tmean « against ». It rathermeans « in favor of …»
The Manifesto for Software Craftmanshipalsoseems to beagainst Software Industrialization and processesEmphasize must begiven on the « not only »: itdoesn’tmean « not ».
Jazzmen seem to be totally freeHowever they tend to follow a lot of:Rules:Arrangements and compositionsRhythms, pitches, key signatures, transpositionsImprovisation considerations (context, balance, direction, …) Best practices: Themes: “Blues Form” and “Song Form”Scales: Blues, Bebop, Pentatonic, Symmetric, …Introduction, accompaniment, styles of composition
Developers seem to be totally freeHowever they tend to follow a lot of:Rules:Standards (« industry » or « de facto »)Specifications (IETF, W3C, OASIS, ISO …)Company levelBest practices: Design patterns and principles (yagni, kiss, dry, …)Clean code, coding conventionsLow coupling, high cohesion …Yagni: You Ain’tGonna Need itKiss: Keep It Straight SimpleDry: Don’t Repeat Yourself
Impliedrequirements (mostly):not oftenstatedexplicitly in the productrequirements
Static code analysis: analysis performed on the code without it being executed
Static code analysis: analysis performed on the code without it being executed
Static code analysis: analysis performed on the code without it being executed
Notice eachstep in the « Structures » isalsorelated to the correspondentstep in the « Infrastructures »
Source Code Management: CVS, PVCS, SourceSafe, Perforce, SVN, Git, Mercurial, Team Foundation Server uses a database (Microsoft SQL Server)Issue Tracker: JIRA,BugZilla, Trac, Team Foundation Server « Work Item Tracking » (integrated in Visual Studio)AutomatedBuild: Ant, Maven, Apache Ivy, Gradle, Team Foundation Server « AutomatedBuild »ContinuousIntegration Server: Hudson, Jenkins, CruiseControl, AtlassianBamboo, JetBrainsTeamCity, Team Foundation Server « Build Agent »QualityAnalysis and Reporting: Maven reports, Hudson plugins, Sonar, Team Foundation Server « Reporting »
Source Code Management: CVS, PVCS, SourceSafe, Perforce, SVN, Git, Mercurial, Team Foundation Server uses a database (Microsoft SQL Server)
TFS: Team Foundation Server (Microsoft)
Standardized: pick a format that all the developers on your project will use and, if possible, apply it for all the projects in your company.
The SCM doesn’t enforces the comments, but IDE tools can help:- In Java under Eclipse, the free Mylyn plugin does that –and more- automatically (shown here and in the next slides)- Similar mechanism in IntelliJ IDEAFocus on:the “Task List” view: shows the tasks from the issue tracking systemthe central view: shows the details of one task (also providing interaction with the issue tracking system from the IDE)The “Synchronize” view: shows only the files modified for the selected issue (in order to prepare a commit)The “Package explorer” view [as cherry on the cake]: shows only the modifications linked to the active task (instead of all the files in the project)
The SCM doesn’t enforces the comments, but IDE tools can help:- In Java under Eclipse, the free Mylyn plugin does that –and more- automatically (shown here and in the next slides)- Similar mechanism in IntelliJ IDEAFocus on:the “Task List” view: shows the tasks from the issue tracking systemthe central view: shows the details of one task (also providing interaction with the issue tracking system from the IDE)The “Synchronize” view: shows only the files modified for the selected issue (in order to prepare a commit)The “Package explorer” view [as cherry on the cake]: shows only the modifications linked to the active task (instead of all the files in the project)
Double clicking a task in the “Task List” view opens a central view that shows the details of the task, also providing interaction with the issue tracking system directly from the IDE
“Round” button to activate/deactivate a task. This button is also present next to each task in the “Task List” view (hard to see on this slide, but the active task is shown in bold)Only one task active at a given time
The “Package explorer” view: shows only the modifications linked to the active task (instead of all the files in the project)Filter can be on/off (also with a keyboard shortcut to quickly open a file not yet opened so far in the active task)In Bold, files that have been changed more frequently.
The “Synchronize” view: group the changed files by task (in order to prepare a commit in a task based mode)
The SCM doesn’t enforces the comments, but IDE tools can help:- In Java under Eclipse, the free Mylyn plugin does that –and more- automatically (shown here and in the next slides)- Similar mechanism in IntelliJ IDEAFocus on:the “Task List” view: shows the tasks from the issue tracking systemthe central view: shows the details of one task (also providing interaction with the issue tracking system from the IDE)The “Synchronize” view: shows only the files modified for the selected issue (in order to prepare a commit)The “Package explorer” view [as cherry on the cake]: shows only the modifications linked to the active task (instead of all the files in the project)
The SCM doesn’t enforces the comments, but IDE tools can help:- In Java under Eclipse, the free Mylyn plugin does that –and more- automatically (shown here and in the next slides)- Similar mechanism in IntelliJ IDEAFocus on:the “Task List” view: shows the tasks from the issue tracking systemthe central view: shows the details of one task (also providing interaction with the issue tracking system from the IDE)The “Synchronize” view: shows only the files modified for the selected issue (in order to prepare a commit)The “Package explorer” view [as cherry on the cake]: shows only the modifications linked to the active task (instead of all the files in the project)
Issue Tracker: JIRA,BugZilla, Trac, Team Foundation Server « Work Item Tracking » (integrated in Visual Studio)
AutomatedBuild: Ant, Maven, Apache Ivy, Gradle, Team Foundation Server AutomatedBuild
AutomatedBuild: Ant, Maven, Apache Ivy, Gradle, Buildr (Ruby), A-A-P (Python), Cake (Python), SBT (Scala) Team Foundation Server AutomatedBuild, NANT (.Net ANT)
ContinuousIntegration Server: Hudson, Jenkins, CruiseControl, AtlassianBamboo, JetBrainsTeamCity, Team Foundation Server « Build Agent »
QualityAnalysis and Reporting: Maven reports, Hudson/Jenkins plugins, Sonar, Team Foundation Server « Reporting »
Sonar IDE: Plugin to integrate into IDE (here with Eclipse)
In time: employee’s involvement (dev teams, management and administrators for the infrastructures)In money: hardware and serversIntensive task = should not be underestimatedROI: Return On Investment
Standardized: pick a format that all the developers on your project will use and, if possible, apply it for all the projects in your company.
Standardized: pick a format that all the developers on your project will use and, if possible, apply it for all the projects in your company.