Introduction to Cruisecontrol Agenda Benefits of Continuous Integration Success Factors

Total Page:16

File Type:pdf, Size:1020Kb

Introduction to Cruisecontrol Agenda Benefits of Continuous Integration Success Factors Ø Introduction to CruiseControl * Change the marked fields if you are presenting these slides yourself. Refer to the overview and instructions for details. Joe Schmetzer* http://www.exubero.com/* This work is licensed under a Creative Commons Attribution-ShareAlike2.5 License. Resources YouTube clip as motivation: Every Build You Break Agenda Continuous Integration o Benefits of Continuous Integration o Success Factors o Successful Build Defined CruiseControl o What is CruiseControl? o How Does CruiseControl Work? o CruiseControl Demonstration Summary Questions Benefits of Continuous Integration Removes integration sessions Minimizes number of integration bugs o If you build and test your software once an hour, no problem is more than an hour old. Improves team work Delivers latest best build product Reduces the overall development cost by: o making it easier to find and fix problems o provides valuable and timely information, letting the development be managed more tightly. Resources Refer to the original article on CI by Martin Fowler and Matthew Foemmel: http://www.martinfowler.com/articles/continuousIntegration.html Mike Clark's "Dear Manager" articles at http://www.clarkware.com/cgi/blosxom/DearManager give further information about the return on investment. Success Factors Single source code repository Automated build scripts Automated tests Developers' discipline o Synchronise often o Don't break the build o When you break the build, fix it. Resources Refer to the original article on CI by Martin Fowler and Matthew Foemmel: http://www.martinfowler.com/articles/continuousIntegration.html Successful Build Defined All the latest sources are checked out of version control Every file is compiled from scratch The resulting files are linked and deployed for execution Suite of tests is run against the system If every test passes, then there is a successful build Resources Refer to the original article on CI by Martin Fowler and Matthew Foemmel: http://www.martinfowler.com/articles/continuousIntegration.html Agenda Continuous Integration o Benefits of Continuous Integration o Success Factors o Successful Build Defined CruiseControl o What is CruiseControl? o How Does CruiseControl Work? o CruiseControl Demonstration Summary Questions What is CruiseControl? (Part 1) Free and open source build scheduler Consists of two components: o Build loop (runs as a service/daemon) o Status Dashboard (runs as web application) Works with many version control systems (CVS, PVCS, Subversion, ClearCase, ...) Works with any build tool that produces parseable output (Ant, Maven, ...) Resources The CruiseControl home page: http://cruisecontrol.sourceforge.net/ What is CruiseControl? (Part 2) Cross platform (written in Java) Easily extensible: o Configuration easily extended by custom plugins o Well defined interfaces for version control systems, build tools and publishers Well supported: o Complete reference documentation o Active users mailing list o Numerous tutorials o "Pragmatic Project Automation" book by Mike Clark Resources The CruiseControl configuration reference: http://cruisecontrol.sourceforge.net/main/configxml.html The CruiseControl mailing lists: http://cruisecontrol.sourceforge.net/contact.html Tutorial - Getting Started With CruiseControl: http://confluence.public.thoughtworks.org/display/CC/Getting+Started+With+CruiseControl Pragmatic Project Automation book: http://www.pragmaticprogrammer.com/sk/auto/ Pragmatic Automation companion website: http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi How Does CruiseControl Work? Developer checks work into version control CC polls version control If CC detects any changes, it... o triggers a build o captures logs and build artifacts . Examples: jar, war, javadoc, unit test report, code coverage report, code quality metrics o publishes results . Examples: send email, send instant message, turn on lava lamp Resources The CruiseControl home page: http://cruisecontrol.sourceforge.net/ CruiseControl Project Page CruiseControl Change Log CruiseControl Project Statistics Agenda Continuous Integration o Benefits of Continuous Integration o Success Factors o Successful Build Defined CruiseControl o What is CruiseControl? o How Does CruiseControl Work? o CruiseControl Demonstration Summary Questions Summary Nightly Builds is a best practice; Continuous Integration is better Automation reduces cost, improves feedback and leaves less room for manual error CruiseControl enables Continuous Integration Any Questions? Intro Design Agile Refactoring NoSQL DSL Delivery About Me ThoughtWorks Continuous Integration Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. This article is a quick overview of Continuous Integration summarizing the technique and its current usage. 01 May 2006 Martin Fowler Translations: Portuguese · Chinese ·Korean · French · Chinese · Czech · Find similar articles to this by looking at these tags: popular ·agile · delivery · extreme programming · continuous integration For more information on this, and related topics, take a look at my guide page for delivery. ThoughtWorks, my employer, offers consulting and support around Continuous Integration. The open source CruiseControl, the first continuous integration server, was originally created at ThoughtWorks. Recently ThoughtWorks Studios, our products group, has releasedGo - a new server for continuous integration and delivery. It supports parallel, deployment pipelines with multiple projects, a snazzy looking dashboard, and support for automated deployments. It's a commercial tool, but is free to use for small setups. Contents . Building a Feature with Continuous Integration . Practices of Continuous Integration . Maintain a Single Source Repository. Automate the Build . Make Your Build Self-Testing . Everyone Commits To the Mainline Every Day . Every Commit Should Build the Mainline on an Integration Machine . Keep the Build Fast . Test in a Clone of the Production Environment . Make it Easy for Anyone to Get the Latest Executable . Everyone can see what's happening . Automate Deployment . Benefits of Continuous Integration . Introducing Continuous Integration . Final Thoughts . Further Reading I vividly remember one of my first sightings of a large software project. I was taking a summer internship at a large English electronics company. My manager, part of the QA group, gave me a tour of a site and we entered a huge depressing warehouse stacked full with cubes. I was told that this project had been in development for a couple of years and was currently integrating, and had been integrating for several months. My guide told me that nobody really knew how long it would take to finish integrating. From this I learned a common story of software projects: integration is a long and unpredictable process. But this needn't be the way. Most projects done by my colleagues at ThoughtWorks, and by many others around the world, treat integration as a non-event. Any individual developer's work is only a few hours away from a shared project state and can be integrated back into that state in minutes. Any integration errors are found rapidly and can be fixed rapidly. This contrast isn't the result of an expensive and complex tool. The essence of it lies in the simple practice of everyone on the team integrating frequently, usually daily, against a controlled source code repository. The original article on Continuous Integrationdescribes our experiences as Matt helped put together continuous integration on a ThoughtWorks project in 2000. When I've described this practice to people, I commonly find two reactions: "it can't work (here)" and "doing it won't make much difference". What people find out as they try it is that it's much easier than it sounds, and that it makes a huge difference to development. Thus the third common reaction is "yes we do that - how could you live without it?" The term 'Continuous Integration' originated with the Extreme Programming development process, as one of its original twelve practices. When I started at ThoughtWorks, as a consultant, I encouraged the project I was working with to use the technique. Matthew Foemmel turned my vague exhortations into solid action and we saw the project go from rare and complex integrations to the non-event I described. Matthew and I wrote up our experience in the original version of this paper, which has been one of the most popular papers on my site. Although Continuous Integration is a practice that requires no particular tooling to deploy, we've found that it is useful to use a Continuous Integration server. The best known such server is CruiseControl, an open source tool originally built by several people at ThoughtWorks and now maintained by a wide community. Since then several other CI servers have appeared, both open source and commercial - including Cruise from ThoughtWorks Studios. Building a Feature with Continuous Integration The easiest way for me to explain what CI is and how it works is to show a quick example of how it works with the development of a small feature. Let's assume I have
Recommended publications
  • Apache Ant Best Practices
    08_Lee_ch05.qxd 5/3/06 5:12 PM Page 81 C HAPTER 5 Apache Ant Best Practices This chapter looks in more detail at some best practices for using Ant on real projects. First I describe the use of property files to enable configuration of the build process depending on a user’s role and requirements. I then describe how best to integrate Ant with IBM Rational ClearCase. Finally, I look at some general best practices for supporting the build process on large projects. Aims of This Chapter Apache Ant is a powerful build tool with significant built-in capabilities. However, a few capabil- ities and best practices stand out; they are described here. After reading this chapter, you will be able to • Understand what Ant property files are and how they can be used to make build scripts more maintainable. • Understand how to use Ant’s capabilities to better integrate with IBM Rational ClearCase. • Implement Ant build files that support reuse and maintainability on large projects. This chapter assumes that you are familiar with the basic concepts of Apache Ant that were discussed in Chapter 4, “Defining Your Build and Release Scripts.” Property Files From the perspective of Chapter 4, an Ant build.xml file is a single centralized build file that defines a repeatable process for bringing together an application, usually producing some form of 81 08_Lee_ch05.qxd 5/3/06 5:12 PM Page 82 82 Chapter 5 Apache Ant Best Practices executable output. Although a single build.xml file can be enough to drive the build process, in practice it can quickly become large and unwieldy.
    [Show full text]
  • Installation Guide for Oracle Team Productivity Center Server 11G Release 2 (11.1.2.1.0)
    Oracle® Fusion Middleware Installation Guide for Oracle Team Productivity Center Server 11g Release 2 (11.1.2.1.0) E17075-02 September 2011 This document provides information on: ■ Section 1, "Oracle Team Productivity Center Server System Requirements" ■ Section 2, "Installing the Oracle Team Productivity Center Server" ■ Section 3, "Installing an Oracle Team Productivity Center Connector" ■ Section 4, "Installing Oracle Team Productivity Center Server on a Production Oracle WebLogic Server" ■ Section 5, "Installing and Running CruiseControl Test Collection" ■ Section 6, "Documentation Accessibility" 1 Oracle Team Productivity Center Server System Requirements For the most current system requirements, please refer to the Oracle Fusion Middleware Installation Guide for Oracle JDeveloper. 2 Installing the Oracle Team Productivity Center Server The installation software for Oracle Team Productivity Center Server is distributed as a platform-independent JAR file. Download the Oracle Team Productivity Center Server installation JAR file from the Oracle Technology Network (OTN) web site: http://www.oracle.com/technetwork/developer-tools/tpc/downloads/ index.html The following sections describe how to install the Oracle Team Productivity Center Server: ■ Section 2.1, "Before You Begin" ■ Section 2.2, "Prerequisites for Installation" ■ Section 2.4, "Installer Screens for Server Installation" ■ Section 2.5, "Upgrading Oracle Team Productivity Center Server with Apache Tomcat 6.0.20" You can choose to install the Oracle Team Productivity Center Server either as a new installation or as an update to an existing server. The installation software is the same, but there are slight differences in the procedure for installing the server depending on whether you are creating a new installation or upgrading an existing one.
    [Show full text]
  • Rails for the “Enterprise”
    Beam me up, Scotty! Rails for the “Enterprise” Charles Johnson Rick Bradley Director, IS Applications Project Manager Centerstone Centerstone 1 What Enterprise? 2 What Enterprise? • Enterprise system? 2 What Enterprise? • Enterprise system? •Enterprise software? 2 What Enterprise? • Enterprise system? •Enterprise software? •Enterprise platform? 2 Centerstone Enterprise 3 Centerstone Enterprise • 25 Counties 3 Centerstone Enterprise • 25 Counties • 150 Locations 3 Centerstone Enterprise • 25 Counties • 150 Locations • 40,000 Clients 3 Centerstone Enterprise • 25 Counties • 150 Locations • 40,000 Clients • 1,100 Staff 3 Centerstone Enterprise • 25 Counties • 150 Locations • 40,000 Clients • 1,100 Staff • Comprehensive Electronic Record 3 Centerstone Enterprise Requirements Dimension 4 Centerstone Enterprise Requirements Dimension Available & Reliable 4 Centerstone Enterprise Requirements Dimension Available & Reliable • All the time 4 Centerstone Enterprise Requirements Dimension Available & Reliable • All the time Accessible 4 Centerstone Enterprise Requirements Dimension Available & Reliable • All the time Accessible • Everywhere 4 Centerstone Enterprise Requirements Dimension Available & Reliable • All the time Accessible • Everywhere Scalable 4 Centerstone Enterprise Requirements Dimension Available & Reliable • All the time Accessible • Everywhere Scalable • 300 to 9000 users 4 Centerstone Enterprise Requirements Dimension 5 Centerstone Enterprise Requirements Dimension Maintenance 5 Centerstone Enterprise Requirements Dimension Maintenance
    [Show full text]
  • Build Notifications in Agile Environments
    University of Calgary PRISM: University of Calgary's Digital Repository Science Science Research & Publications 2008-01-14 Build Notifications in Agile Environments Ablett, Ruth; Maurer, Frank; Sharlin, Ehud; Denzinger, Joerg; Schock, Craig http://hdl.handle.net/1880/45854 unknown Downloaded from PRISM: https://prism.ucalgary.ca Build Notifications in Agile Environments Abstract. In an agile software development environment, developers write code that should work together to fulfill the wishes of the customer. Continuous integration (CI) ensures that code from different individuals integrates properly. CI compiles the entire codebase, deploys and tests it with each change. CI alerts developers of any problems as errors can be fixed more easily if caught earlier in the process. This paper compares the effectiveness of different types of mechanisms for notifying developers to a successful or unsuccessful build. Two different quantitative and qualitative user studies were performed testing the effectiveness of three types of notification devices – one virtual e-mail based mechanism, one using ambient lava lamps, and one robotic device. The results show that most developers preferred an easily visible but unobtrusive ambient device combined with an e-mail describing the problem in more detail. Keywords: Agile methods, information awareness, ambient display, continuous integration 1 Introduction Agile methods [1] are becoming popular in the software industry. In agile software development projects, there may be anywhere from one to hundreds of developers working concurrently on the code base, so it is imperative that all software written by each developer integrates properly into the entire project. To this end, most agile teams adopt Continuous Integration (CI).
    [Show full text]
  • Continuous Integration (CI) Needs and Wishes for Developers of Proprietary Code
    Continuous Integration (CI) Needs and Wishes for Developers of Proprietary Code Michael Hilton, Nicholas Nelson, Danny Dig Timothy Tunnell, Darko Marinov School of EECS, Oregon State University CS Department, University of Illinois {hiltonm,nelsonni,digd}@oregonstate.edu {tunnell2,marinov}@illinois.edu Abstract—Continuous integration (CI) systems automate the Open-source projects are often considered fundamentally dif- compilation, building, and testing of software. Despite CI being ferent from proprietary-code projects [6]. Differences between one of the most widely used processes in software engineering, open-source and proprietary-code projects include that open- we do not know what motivates developers to use CI, and what barriers and unmet needs they face. Without such knowledge source projects foster more creativity [7], have fewer defects [7], developers make easily avoidable errors, managers reduce the and assign work differently [8]. However, similarities have also productivity of developers by making misinformed decisions, tool been found, including how GitHub is used [9], overall project builders invest in the wrong direction, and researchers miss many complexity [7], and amount of modularity [7]. opportunities for improving the software engineering practice. There are still many gaps in our knowledge about why Given the large fraction of proprietary code development, un- derstanding how proprietary developers are using CI is vital to developers use CI, and what barriers they face, especially for improving it. projects of proprietary code. What motivates developers to use We present the first study of how CI is used in the proprietary CI? What are the barriers that developers face when using development of software. We conduct 16 semi-structured inter- CI? What needs do developers have that are unmet by their views with developers from different industries and development current CI system(s)? Do proprietary developers have the same scale.
    [Show full text]
  • Continuous Integration, Delivery and Deployment: a Systematic Review on Approaches, Tools, Challenges and Practices”, IEEE Access, 2017
    M. Shahin, M. Ali Babar, and L. Zhu, ―Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices”, IEEE Access, 2017. Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices Mojtaba Shahina, Muhammad Ali Babara, Liming Zhub a CREST – The Centre for Research on Engineering Software Technologies, The University of Adelaide, Australia b Data61, Commonwealth Scientific and Industrial Research Organisation, Sydney, NSW 2015, Australia [email protected], [email protected], [email protected] Abstract—Context: Continuous practices, i.e., continuous integration, delivery, and deployment, are the software I. INTRODUCTION development industry practices that enable organizations to With increasing competition in software market, frequently and reliably release new features and products. organizations pay significant attention and allocate resources With the increasing interest in and literature on continuous to develop and deliver high-quality software at much practices, it is important to systematically review and accelerated pace [1]. Continuous Integration (CI), Continuous synthesize the approaches, tools, challenges, and practices DElivery (CDE), and Continuous Deployment (CD), called reported for adopting and implementing continuous practices. continuous practices for this study, are some of the practices aimed at helping organisations to accelerate their Objective: This research aimed at systematically reviewing development and delivery of software features without the state of the art of continuous practices to classify compromising quality [2]. Whilst CI advocates integrating approaches and tools, identify challenges and practices in this work-in-progress multiple times per day, CDE and CD are regard, and identify the gaps for future research.
    [Show full text]
  • Competitor Analysis an ETICS Study
    INFSO-RI-223782 Competitor Analysis An ETICS study Adriano Rippa and Isabel Matranga Engineering Ingegneria Informatica S.p.A. INFSO-RI-223782 Summary • Chosen competitors and motivations • Features: Comparing with the other tools • Summary 2 INFSO-RI-223782 Chosen competitors and motivations Similar Licenses (Free/OS) , more used, “more chatted” *** • CruiseControl • Hudson Features • Bamboo • AntHillPro (25% of the top 100 fortune companies use it) • Hudson + Sonar: it is developed as a Maven plug-in but it can be integrated into Hudson “Family” • Cruise (is the non free version of CruiseControl) *** http://www.developer.com/java/ent/article.php/10933_3803646_1 http://forums.whirlpool.net.au/forum-replies-archive.cfm/1086359.html 3 INFSO-RI-223782 Build Features Table Ant Hill Cruise Hudson ETICS Cruise Bamboo Pro Control + Sonar Support for any X build tool Dependencies (interproject) X X X N/A X X Management Historical data X X X X X X Distributed builds X X X X X X Split builds X X X Multiplatform X X X X X X Third party tools X DB Multilanguage X X X 4 INFSO-RI-223782 Build Features Summary Basic • Dependencies (interproject) Management • Historical data • Distributed builds • Multiplatform Advanced • Multilanguage Unique • Support for build tools • Split builds • Third party tools DB 5 INFSO-RI-223782 Security and Privacy Features Table Ant Hill Cruise Hudson ETICS Cruise Bamboo Pro Control + Sonar Role based X X X N/A X X Username and XXXXX password Certificate X Public availability of X artefacts and code 6 INFSO-RI-223782 Security
    [Show full text]
  • A Brief History of Devops by Alek Sharma Introduction: History in Progress
    A Brief History of DevOps by Alek Sharma Introduction: History in Progress Software engineers spend most of their waking hours wading George Santayana wrote that “those who cannot remember the through the mud of their predecessors. Only a few are lucky past are condemned to repeat it.” He was definitely not thinking enough to see green fields before conflict transforms the about software when he wrote this, but he’s dead now, which terrain; the rest are shipped to the front (end). There, they means he can be quoted out of context. Oh, the joys of public languish in trenches as shells of outages explode around them. domain! Progress is usually glacial, though ground can be covered This ebook will be about the history of software development through heroic sprints. methodologies — especially where they intersect with traditional best practices. Think of it as The Silmarillion of Silicon Valley, But veterans do emerge, scarred and battle-hardened. They except shorter and with more pictures. Before plunging into this revel in relating their most daring exploits and bug fixes to new rushing river of time, please note that the presented chronology recruits. And just as individuals have learned individual lessons is both theoretically complete and practically in progress. In other about writing code, our industry has learned collective lessons words, even though a term or process might have been coined, it about software development at scale. It’s not always easy to always takes more time for Best Practices to trickle down to Real see these larger trends when you’re on the ground — buried in Products.
    [Show full text]
  • ABTO Software Is Your Best Choice for Outsourcing Java Projects
    ABTO Software Java Software Development Overview ABTO Software Java Development ABTO Software is Your Best Choice for Outsourcing Java Projects ABTO Software is a world-class provider of high-end IT outsourcing services and excellent Java software development solutions to well-known companies across the USA and Europe. We are aimed at total customer satisfaction and strive to exceed our customers’ expectations. Services we offer are affordable yet of highest quality. Professional Java Developers Team: ABTO Software Java experts have excellent skills covering various Java application servers, frameworks, databases, libraries, components and technologies. 8 years of in-depth Java development experience World-class education level Highly motivated & committed team Deep Java development expertise Continuous integration systems We follow SCRUM & Agile Superior Quality Java Outsourcing Solutions We can develop Java applications of any scale and complexity running across different platforms. Our Java Development expertise includes: Java Enterprise Application Development (J2EE) Java Web Development Java Mobile Application Development (J2ME) Java Applications Migration, Enhancement and Integration Java Application Testing and Maintenance Java SaaS Application Development Our Competencies & Skills ABTO Software has a high level expertise in the Java platform, including Java ME, EE, SE, JDK, AWT, Swing, EJB, NetBeans, GlassFish, Junit, Spring, Struts, Hibernate, log4j, jpa, jsf, Corba, Tomcat, JBoss, JSP, Servlets, taglibs, Unified Expression Language, Envers and more. Our JAVA Development Expertise Java Frameworks: J2EE, J2ME, J2SE, Struts, Spring, Hibernate, JNDI, RMI/IIOP, JTA/JTS, JMS. Technologies: JSP, Servlets, JDBC, Swing, JUnit, AWT, AJAX, JSON, Web Services, applets, JSF, Flex, GWT. Platforms/Operating Systems: Linux, Unix, Windows, Mac, Android, Windows Mobile, Amazon Elastic Compute Cloud (Amazon EC2), IBM SmartCloud.
    [Show full text]
  • Continuous Integration in LATEX Marco Antonio Gómez-Martín and Pedro Pablo Gómez-Martín
    The PracTEX Journal, 2010, No. 1 Article revision 2010/01/01 Continuous Integration in LATEX Marco Antonio Gómez-Martín and Pedro Pablo Gómez-Martín Email [email protected], [email protected] Abstract Have you ever co-written a paper using LATEX together with some version control system such as SVN? Have you ever updated your local copy and the compilation has become broken due to a previous bad commit? Con- tinuous integration avoids this problem using an auxiliary server that constantly checks the sanity of the repository, compiling the LATEX doc- uments after each commit, and notifying authors of possible problems. This paper describes how to configure this environment. Although the configuration effort is detailed, it is done only once and provides many benefits. In addition to doing compilation tests, all authors can be auto- matically informed by e-mail when a new version is committed, and the current .pdf version can be made available to third parties on the Web. 1 Introduction Many of the documents that we write using LATEX are created not by just one author but two or more. In fact, our analysis performed over the database of the DBLP computer science bibliography1 reveals that the average number of authors of books, journal articles and articles in proceedings written until February, 2004 was 2.26 (see table1). This justifies the use of some kind of version control system, such as CVS (2) or Subversion (4) (also known as SVN) for collaborative writing of LATEX documents. As the use of SVN has spread over the LATEX community, different packages have appeared that allow documents to incorporate references to the properties of the last revision (10).
    [Show full text]
  • Automating Build, Test, and Release with Buildbot
    Automating Build, Test, and Release with Buildbot Dustin J. Mitchell Mozilla, Inc. Email: [email protected] Tom Prince Email: [email protected] Abstract—Buildbot is a mature framework for building con- to support a variety of deployments. Schedulers react to new tinuous integration systems which supports parallel execution of data from change sources, external events, or triggers based jobs across multiple platforms, flexible integration with version- on clock time (e.g., for a nightly build), and add new build control systems, extensive status reporting, and more. Beyond the capabilities it shares with similar tools, Buildbot has a number requests to the queue. of unique strengths and capabilities, some of them particu- Each build request comes with a set of source stamps larly geared toward release processes. This paper summarizes identifying the code from each codebase used for a build. A Buildbot’s structure, contrasts the framework with related tools, source stamp represents a particular revision and branch in a describes some advanced configurations, and highlights ongoing source code repository. Build requests also specify a builder improvements to the framework.1 that should perform the task and a set of properties, arbitrary I. INTRODUCTION key-value pairs giving further detail about the requested build. Buildbot is a continuous integration (CI) framework which Each builder defines the steps to take in executing a particular has been in use for well over 10 years[13]. While it began type of build. Once the request is selected for execution, the as a simple build-and-test tool, it has grown into an advanced steps are performed sequentially.
    [Show full text]
  • Tools for Supporting and Facilitating Agile Development
    Tools for Supporting and Facilitating Agile Development •Rinaldo Digiorgio •Romerl Elizes •Dr. Fred Grossman •Dr. Joe Bergin Agenda • Agile and XP • Tools and Agile/XP • Demonstrations • Database access • GUI • Web application • Pairing (Time permitting) • Futures Version 0.3 Agile Manifesto • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan Version 0.3 Example of a tool proclaiming support for Agile? • Rails Example • no heavy tool sets, no elaborate processes, no complex configurations small groups of developers with their favorite editors a transparent environment • Trivially easy to generate HTML documentation for the entire code base • The framework delivers working software early in the development cycle • Rails is obsessive about DRY Don't repeat yourself and convention over configuration Version 0.3 XP Practices • Pair Programming • Collective Ownership. Standup Meetings • Continuous Integration. Sustainable Pace • Test Driven Coding Standard Development. On-site Customer • Refactoring. Sustainable Pace The Planning Game Small Releases Metaphor Version 0.3 Simple Design Tools being demonstrated • CVS, Subversion Subversion • Ant Jcoverage • JUnit CruiseControl • Abbot Eclipse • Cactus Java Sun Studio 8 • HtmlUnit echoVNC*, VNC* • DbUnit Version 0.3 Other Tools • Commercial Tools • Clearcase, PVCS • Intellij • Vendor Tools • Websphere, Oracle, Microsoft • Open Source Tools • Good place to start • http://subversion.tigris.org/ ( bottom left) Version 0.3 Tools supporting XP Practices • Test Driven Development • Business Logic • JUnit, DbUnit • GUI APP • JUnit, Abbot • Web App • JUnit, HtmlUnit • Continuous Integration • Cruisecontrol, Subversion, CVS • Pair Programming (distributed/co-located) • Java Studio 8 Version 0.3 XP and Testing/QA • Rom, Rinaldo work examples • Current SDLC’s put QA of release candidates toward the end of the cycle.
    [Show full text]