Integration Notes

[Machine Vision, Illumination] [Java, J2EE] [LabVIEW] [ORACLE] [C++] [C#] [Aspect-Oriented Programming] [Embedded] [XP Agile CI] [Software Testing] [Kanban - Agile]

Extreme Programming (XP) - Agile project management methodology - Continuous Integration

Process
Kaban - Lean - Agile - XP
XP process
Test Driven Design
Extreme Programming (XP) - Agile project management methodology - Continuous Integration
Patterns
Agile
  • Agile Alliance
  • Agile Modeling - Agile Architecture
    • Experience shows that ivory tower architectures suffer from significant problems.
    • Agile Methodology effectively eliminates overengineering solutions to accommodate possible business needs.
    • On a small project team, say of ten people or less, the author recommends to include all of the developers in the architecture team.
    • A common mistake that architecture teams will make is to ignore existing and pertinent artifacts, such as network or deployment diagrams that describe your organizations existing technical infrastructure, enterprise-level business models (use case models, process diagrams, work flow diagrams, corporate business rules, and so on), or corporate deployment standards (for workstations, branch offices, etc.) that your system is expected to conform to.
    • A common mistake that organizations will make is to base their architectural efforts on their organization structure.
  • Post Agile
  • ScrumMaster
      The ScrumMaster above and beyond anything has to enforce the rules.  A ScrumMaster is a Leader and Facilitator and is responsible for:
    • Improving the lives and productivity of the development team by facilitating creativity and empowerment and any other way possible.
    • Enabling close cooperation across all roles and functions and removing barriers
    • Shielding the team from external interferences and removing "Impediments"
    • Ensuring that the process is followed
    • Inviting appropriate people to the daily scrum, iteration review and planning meetings
    • Removing the barriers between development and the customer so that the customer directly drives the functionality developed
    • Teaching the customer how to maximise ROI and meet their objectives through Scrum
    • Improving the engineering practices and tools so each increment of functionality is potentially shippable.

Agile Tools
Pollection Team Blog
If you are a one-man shop, I suggest you check out TargetProcess as it can be setup in a few minutes on a server or your own development desktop. If you already have Team System in-place, take a look at Scrum for Team System. If you have nothing but could run say Tomcat, then XPlanner might be the way to go as it is simple but works well. Give a couple a test drive and see whatÂ’s best for you. (Bil Simser).
  • Scrum, Agile - Electric Cloud...build manager
  • Conchango.. see Scrum Master, Scrum for Team System
  • Agile Model Driven Development (AMDD) or Agile MDA: Agilian
  • Version One, Alpharetta, GA 30005
    • On-Demand (hosted) or On-Site (local) deployment
    • Integrated management of requests, features, tasks, issues, defects, and tests
    • Support for all key agile management practices such as feature planning, release planning,iteration planning and tracking, task and test management, and burndown and velocity reporting.
    • Agile specific methodology templates including: Scrum, XP, AgileUP, DSDM and Custom/Hybrid.
    • Pricing: $995/year (<$17/user/month) /// $30/user/month or $500/user
  • TWiki is a mature, full featured web based collaboration system:
    • Any web browser: Edit existing pages or create new pages by using any web browser.
    • Search: Full text search with/without regular expressions.
    • Structured content.
    • Revision Control, Version Control
    • TWiki is GPLed software. The Perl CGI source code, templates and documentation is available for free. Current, 2007 version: 4.1.2

  • xPlannerXPlanner is a web-based project planning and tracking tool for agile development teams (XP, Scrum, ...). XPlanner is implemented using Java, JSP, and Struts, Hibernate and MySQL.
    • Any web browser: Edit existing pages or create new pages by using any web browser.
    • Search: Full text search with/without regular expressions.
    • Structured content.
    • Revision Control, Version Control
    • GNU Library or Lesser General Public License (LGPL). Current, 2007 version: 0.7b7
    • Requires Apache Tomcat

  • Software Planner is an tool that tracks all phases of the lifecycle, including project management (with Microsoft Project® import/export), requirements, test cases, and defects. Coupled with graphical dashboards and collaborative tools like document sharing, discussion forums and calendar management (with MS Outlook® synchronization).
    • Full cycle support
    • Metrics generation (team velocity, individual hours, ...
    • Charts for iteration velocity, Scrum burn down, distribution of task types, dispositions.
    • Englewood, CO
  • SharePoint
  • Danube ScrumWorks

  • Scrum for Team System Web page contains succinct and comprehensive definitions of terms used by Scrum methodology.
  • Rally Enterprise, Rally Program
    • Free up to 10 users, Priced at $65/user/month
    • Calgary, AB
  • Extreme Planner
    • XtremePlanner License (per user) $200/year
    • San Diego, CA
  • TargetProcess
    • Priced at $25/user/month
    • Corning, NY
  • XP Plan-it
    • IT Works Solutions AG - Bourguillon, Feusisberg, Zurich.


Continuous Integration
  • CI Factory
  • Wiki
  • v2007.01 6 whitepaper ©Electric Cloud, Inc. The reason agile developers want these per-commit builds is to ensure that integration between developers is working and that the software being built works, and is testable, at all times. The idea that the software should run at all times is central to agile development…becomes an important sign of health for the entire project. If percommit builds are done quickly and frequently enough the build will reflect changes made by a single check-in by a single developer offering unparalleled opportunity to narrow down the cause of a breakage.
    In fact, this build is so important that I refer to it as the Agile Heartbeat. Agile teams will install monitoring devices (such as red and green lava lamps) that make the status of the heartbeat build visible to all. Fowler states that no developer should 'go home until the mainline build has passed with any commits' they've added. This means that all of engineering looks every day to the heartbeat to measure their own progress (Fowler refers to this in the practice 'Everyone can see what's happening').
    Another important practice mentioned in Fowler's paper is 'Keep the Build Fast'. This seems like an obvious corollary to the previous practices, since a team that requires a build every few minutes and every time the code changes will necessarily need very fast builds. In fact, Extreme Programming outlines the goal of 'ten minute' builds, and I've written previously about what I call espresso builds (builds that only take as long as a coffee break).
    Fast builds are also important because developers are looking to the status of the build as a measure of their progress. Every minute that is shaved off the build is a minute saved for all developers who have committed code to that build. With many developers, and many builds, that time saved adds up quickly and fast builds improve the productivity of the entire team.
    Fowler suggests that this entire process be either managed by hand (if the team is very small), or through the use of a 'continuous integration server'.
.

Extreme Programming - XP
Basics
  • Essential Communication Practices for Extreme Programming in a Global Software Development Team
    • Distributed software development (DSD) is becoming common practice in today’s industry.
    • The amount of software exports from India alone increased 16-fold from 1995-2002
    • XP was designed for use with 10-12 co-located, object-oriented programmers.
    • XP is an iterative development methodology with a short planning horizon (three month releases, 1-2 week iterations). In XP, a release corresponds to a stable, deliverable version of the product that can be used by customers.
    • In XP, functional requirements are captured as user stories. User stories are informal, natural language descriptions of system features that are written on an index card. Each user story is written by the customer, who is also responsible for stating the priority of the user story.
    • The customer also provides a corresponding customer acceptance test (CAT) for each user story that, when passed, marks the completion of the user story.
  • XP org

Links



Feedback:



Integration Notes

[Machine Vision, Illumination] [Java, J2EE] [LabVIEW] [ORACLE] [C++] [C#] [Aspect-Oriented Programming] [Embedded] [XP Agile CI] [Software Testing] [Kanban - Agile]