IBM Rational Team Concert 2 Essentials - T C Fenstermaker - E-Book

IBM Rational Team Concert 2 Essentials E-Book

T C Fenstermaker

0,0
44,39 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Software development is a collaborative effort needing active and timely input and response from all its members. Every day, project managers face ever-increasing pressures to produce high-quality software with increasing constraints. With IBM's Rational Team Concert collaborative software delivery environment, you can tremendously improve the productivity of your entire team through a web-based user-interface, continuous builds, a customizable process with work support, team support, integration and many more features.

Written by Suresh Krishna and TC Fenstermaker, experts on Rational Team Concert, this book will help you leverage the full potential of the IBM Rational Team Concert platform to improve your individual and team performance. It follows a realistic case-study example enabling you to learn about Rational Team Concert fundamentals and best practices along the way to efficiently manage your software projects and tackle various software development challenges.Beginning with an in-depth analysis of software development challenges, the book goes on to introduce the Jazz Platform followed by a complete overview of the architecture of Rational Team Concert. After you install Rational Team Concert on WebSphere and learn to configure the server and clients, you will see all the features in relation to Web and Eclipse clients.From Chapter 3 onwards a realistic sample application is constructed to give you a strong grasp of your concepts. As you proceed, you learn source control, the mechanism to create, control, and manage documents, artifacts in a software development lifecycle, followed by different tools that Rational Team Concert offers for effective team and work management. You tackle the various challenges of Team Collaboration by integrated e-mail, instant messaging, events, feeds, and work items, the basic units of the task. You also learn the various aspects of the software development process and release planning along with process templates, which provide the initial process and iteration of your project. Finally, you extend the Rational Team Concert and make use of the Jazz Platform APIs to customize your process to fit your organizational needs.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 320

Veröffentlichungsjahr: 2011

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

IBM Rational Team Concert 2 Essentials
Credits
About the Authors
Acknowledgement
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Instant Updates on New Packt Books
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Beginning with IBM RTC
Software development challenges
Distributed teams
Collaboration
Project management
Team addition
Task assignment and scheduling
Project tracking
Build, test, and release
Transparency
Going the Eclipse way
Jazz platform
Introduction
Vision
Architecture
Rational Team Concert
Overview
What's in RTC?
Administration
Built-ins
Agile management
Continuous builds
Process awareness
Team awareness
Work items
Source control
Project dashboards
Jazz-based products
Rational Quality Manager
Rational Requirements Composer
Rational Project Conductor
Rational Insight
Rational Build Forge
Rational Asset Manager
Summary
2. Installing RTC and WebSphere
Installing Rational Team Concert
Understanding RTC editions
Installing Enterprise edition
Build system
Client
SCM tools
Repository tools
Server
Configuring WebSphere
Before you start
JVM custom properties
Heap size settings
Changing log details
Security Settings
Deploying Jazz Team Server on WebSphere
Testing the installation
Setting up the server
Introduction
Project areas
Server
User management
Project area management
Process template management
Setting up the client
JUnit project example
Working with Sandbox
Work items perspective
Team Artifacts view
My Work view
Team Central view
Jazz Administration perspective
Process Template view
Team Organization view
JUnit Project on the Web Interface
Team Advisor
Summary
3. Setting up the Project
Introduction
Setting up the project
Importing the subversion dump
Project source code
Building and running the application
Admin utility
BookManager application
Summary
4. Team and Source Control
Introduction
Team invitation
Streams and components
Repository workspace
Flow target
Repository ownership
Workspace snapshots
Ignoring resources
Explicit resource locks
Change sets
Source control from the RTC Web UI
Summary
5. Team Collaboration and Work Items
Work Environment
Scheduled Absences
Mail Configuration
Instant Messaging
Events and feeds
Work Items
Work Items UI
Work Items view
Team Artifacts view
My Work view
Team Central view
Tag Cloud view
Creating Work Items
My Work view
Inbox
Future Work Items
Current Work
Team Central
Queries
Predefined queries
Creating queries
Import/Export
Customization
Dashboards
Explore dashboard
Customize dashboards
Summary
6. Development Process and Release Planning
Development process
Process templates
Out-of-the-box templates
Cloudburst
OpenUp
Scrum
Simple Team
Translatable templates
Process configuration
Agile development
Project Area
Role definition
Team collaboration
Work items
Repository workspace
Reporting
Release planning
Build management
Release management
Iteration planning
Project tracking
Reality check
Summary
7. Build Management
Continuous integration
Benefits
Build module
Build setup
Recommendations
Build Engine and Toolkit
Working with Eclipse
Build definition
Start the build engine
Test the build
Build administration
Working with the Web UI
Releasing the project
Test the application
Release the application
Traceability and retrospective
Web dashboard
Recommended practices
Summary
8. Extending RTC
Extension architecture
SDK setup
Target platform
Simple tests
RESTful API
Client extensions
Extension development
Extension deployment
Server extensions
Extension development
Update site and deployment
Testing the extension
Summary
A. Quick Reference
Book Manager Application
Change sets
Component
Dashboards
Eclipse
Flow target
Iteration plan
Jazz-based products
Jazz platform
Jazz Sandbox
Jazz Team Server
My Work view
Open Lifecycle Service Collaboration
Project area
Project Area Management
Process templates
Process
Project Release plan
Queries
Rational Team Concert
Reporting
Repository Workspace
Scrum development
Stream
Tag Cloud view
Team Advisor
Team area
Team Artifact view
Team Build
Team Central view
Timeline
Work items
Work items perspective
Work Items view
B. Installing the Express-C Edition with the Tomcat Server
Rational Team Concert Express-C features
Installing Rational Team Concert Express-C
Installing Express-C
Express-C basic setup
Admin setup
Client setup
JUnit Project example
Summary
C. The BookManager Application Architecture
Architecture
Presentation tier
Services tier
Persistence tier
Control flow
Interceptors
Actions
Admin
Flow summary
Functionality
Login
Welcome page
Add book
List books
Update book
Delete book
Summary
D. What's New in RTC v3.0
Features overview
Packaging
Licensing
Planning
Formal Project Template
Time Tracking
Scrum boards
Work items
Source control
Summary
Index

IBM Rational Team Concert 2 Essentials

IBM Rational Team Concert 2 Essentials

Copyright © 2011 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: February 2011

Production Reference: 1020211

Published by Packt Publishing Ltd.

32 Lincoln Road

Olton

Birmingham, B27 6PA, UK.

ISBN 978-1-849681-60-5

www.packtpub.com

Cover Image by Fillipo (<[email protected]>)

Credits

Authors

Suresh Krishna

TC Fenstermaker

Reviewers

Thomas Starz

Geetu Garg Berry

Acquisition Editor

Amey Kanse

Development Editor

Susmita Panda

Technical Editors

Vinodhan Nair

Gaurav Datar

Indexer

Monica Ajmera Mehta

Editorial Team Leader

Vinodhan Nair

Project Team Leader

Lata Basantani

Project Coordinator

Vishal Bodwani

Proofreader

Aaron Nash

Graphics

Geetanjali Sawant

Production Coordinator

Alwin Roy

Cover Work

Alwin Roy

About the Authors

Suresh Krishna is a Software Engineer with over 11 years of experience in building SDKs, IDEs, and RCP applications. He has extensive experience in applying object-oriented concepts to solve industry problems. He has led several projects as a software developer, technology manager, and as an architect. He has worked in the Automotive, Internet, and Utility industries helping customers to bridge the gap between technology and business domains.

Suresh is an avid blogger on technology and life. He contributes several tutorials on latest technologies, products, Agile methodologies, and product management. In his free time, he captures the fine moments of nature with his photography. He has a Computer Science degree from CUSAT, India and is currently pursuing an MBA in Entrepreneurship from the University of California, Davis.

You can find his website at http://sureshkrishna.com.

Acknowledgement

This book would not have seen the light without constant encouragement of my parents, sisters, wife, and daughter. A very special thanks to my wife Vidya and daughter Saahithi for their boundless patience and support. In spite of many instances that I was not available to them for many household duties, they provided all the encouragement that they could.

Over many years, many people have indirectly contributed to the content of this book. Martin Lunt, Peter Kirschner, Sri Guha V, and Jyothi G S from Robert Bosch were my mentors for several years. I would not be the same person as I am now without these wonderful and sweet personalities. My sincere thanks to Amey Kanse, Susmita Panda, and Vishal Bodwani from Packt Publishing, who successfully guided me and my co-author during writing of this book. For a first-time author, all of them gave a huge support and hand-holding when needed.

Erich Gamma, Christophe Elek, Seth Packham, and many others from IBM and Jazz team who have provided timely help on many topics when needed. As a reviewer, Thomas Starz did a fantastic job of asking tough questions and making sure that the content is valuable for the reader. Finally, Trebor, my co-author has been very supportive and helpful when I was juggling with time and personal priorities.

TC Fenstermaker is a Software Engineer with over 20 years of experience building n-tiered OLTP applications for a variety of business and government endeavors. He has experience with various Java technologies, relational databases, and software engineering practices. He is the co-author of several IBM developerWorks articles, including Using Eclipse Ganymede to develop for the desktop, Web and mobile devices, which he wrote with Suresh.

My sincere thanks to the team at Packt Publishing for this opportunity to experience co-authoring a technical book with a talented and enthusiastic software engineer like Suresh; and of course my thanks to Suresh for his extensive efforts in researching, drafting, and putting together this work, in which I merely assisted.

About the Reviewers

Thomas Starz has more than 25 years of experience as a software developer, technical writer, team leader, and Agile coach with IBM Software Group in Böeblingen, Germany. Thomas was among the early adopters of Agile methods in his organization. He is a Certified Scrum Master and an enthusiastic user of Rational Team Concert. While working as a mentor and coach, he has also helped several teams get started with Rational Team Concert.

Geetu Garg Berry has a total experience of five years in IT. She has come across excellent opportunities and projects, which helped her gain extensive technical knowledge.

Her experience involves working mainly with Java, J2EE technologies, and related tools.

She also has various certifications to her credit, including Sun Certified Java Programmer (1.4), Sun Certified Mobile Application Developer (SCMAD), IBM Certified Associate Developer, and IBM Certified SOA Associate.

At present, she is working on extending the Rational Team Concert tool and customizing it for business clients.

I would like to thank my current employer for encouraging me to pursue this book review as my personal interest.

www.PacktPub.com

Support files, eBooks, discount offers and more

You might want to visit www.PacktPub.com for support files and downloads related to your book.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

http://PacktLib.PacktPub.com

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books. 

Why Subscribe?

Fully searchable across every book published by PacktCopy & paste, print and bookmark contentOn demand and accessible via web browser

Free Access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.

Instant Updates on New Packt Books

Get notified! Find out when new books are published by following @PacktEnterprise on Twitter, or the Packt Enterprise Facebook page.

Preface

Software development is a collaborative effort needing active and timely input and response from all its members. Every day, project managers face ever-increasing pressures to produce high-quality software with increasing constraints. With IBM's Rational Team Concert collaborative software delivery environment, you can tremendously improve the productivity of your entire team through a web-based user interface, continuous builds, a customizable process with work support, team support, integration, and many more features.

What this book covers

Chapter 1, Beginning with IBM RTC, introduces you to several software development challenges such as technology advances, distributed teams, collaboration, and software processes. You will also have a bird's-eye view of the Rational Team Concert and Jazz platform.

Chapter 2, Installing RTC and WebSphere, looks at various offerings from Rational Team Concert. We will download the Rational Team Concert Enterprise Edition and configure it on the WebSphere application server. This chapter also gives a basic introduction to using the Eclipse Client as well as navigate through the JUnit Example from Sandbox.

Chapter 3, Setting up the Project, introduces the Book Manager Application that will be used throughout this book. We will also get an in-depth knowledge of the architecture and functionality of the application as well as import, set up, build, and run the Book Manager Application in Rational Team Concert.

In Chapter 4, Team and Source Control, we will see how Rational Team Concert enhances the source control management experience by giving the power to the development team. We will also explore different concepts in the Team Source Control and then move on to see how to work with the Rational Team Source Control.

Chapter 5, Team Collaboration and Work Items, introduces how Rational Team Concert takes care of some important collaboration challenges. We get an in-depth working knowledge on Mail Configuration, Instant Messaging, and Feeds in the Collaboration space. Using the Book Manager Application, we will explore several important aspects of Work Items and Dashboards.

In Chapter 6, Development Process and Release Planning, we will explore various aspects of software development process and release planning and management. For the software development process, we will be introduced to the software process templates, configuring the templates, and team roles and from Release Planning, we will get an overview of iterations, sprints, backlogs, and tracking releases.

In Chapter 7, Build Management, we will see an overview of the build engine, build toolkit, how to define the build, and track the progress from the Eclipse and Web client. In the process, we will set up the build engine and track the Book Manager Project's builds from the perspective of a developer and build user.

In Chapter 8, Extending RTC, we will see the Jazz extension architecture and explore various ways to extend Rational Team Concert. We will set up the SDK for extension development and then take a quick peek into the client and server extensions.

In Appendix A, Quick Reference, we will see several frequently used terms in the context of Jazz and Rational Team Concert.

In Appendix B, Installing the Express-C Edition with the Tomcat Server, we will install the Express-C edition on the Tomcat server. We will also start the server and configure the Jazz server.

In Appendix C, The BookManager Application Architecture, we will see the BookManager technical architecture that uses JEE technologies such as JSPs, servlets, Struts, and Hibernate. We will also look into the BookManager Application's functionality.

In Appendix D, What's New in RTC v3.0, we will see an overview of new features in the latest release of Rational Team Concert. A JUnit project example will be used to explore the various new features.

What you need for this book

The following software products are needed for this book:

Windows XP/Vista/ 7RTC Express-C Installation 2.2.0.2 (for Chapter 8 and Appendix B) and RTC Enterprise Installation 2.2.0.2 (for chapters 2 to 7)
https://jazz.net/downloads/rational-team-concert/releases/2.0.0.2iFix3
WebSphere Installation
http://www-01.ibm.com/software/webservers/appserv/was/
Tomcat Server (to test the BookManager Application)

Who this book is for

If you are a Project Manager or Team Member who would like to find an integrated approach to deal with modern software development challenges, this book is for you. Or, if you are someone who likes to stay one step ahead in team management, then this Essentials Guide is also for you.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text are shown as follows: "This file is available in the <jazzWSRoot>\conf\jazz directory."

A block of code is set as follows:

<oslc_cm:cmServiceProviders rdf:resource="https://localhost:9443/jazz/oslc/workitems/catalog"/>

Any command-line input or output is written as follows:

>jbe -createPasswordFile buildPass.txt

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "Click Apply to save the configuration".

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail <[email protected]>.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Tip

Downloading the example code for this book

You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the errata submission form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Chapter 1. Beginning with IBM RTC

 

Software development is technical activity conducted by human beings

  --Niklaus Wirth

This chapter introduces you to the bird eye view of IBM's Jazz platform and Rational Team Concert (RTC).

First, we will look at some different challenges in modern software development such as technology advances, distributed teams, collaboration, and software processes. These challenges will help us understand the nature of the complexity and set the context for the need of the Jazz platform and Rational Team Concert.

Later part of the chapter gives an introduction to the Jazz platform and Rational Team Concert. Jazz is the software development platform that brings the phases of software development together. The Jazz platform focuses on the collaboration, productivity, and transparency in the team.

Finally, you will be introduced to Rational Team Concert and an overview of various features such as process awareness, team awareness, work items, source control, agile planning, continuous builds, project health, and project administration. We will briefly look at other Jazz-based products and their functionality.

In this chapter, we will look at the following:

A discussion on software development challengesWhy is Rational Team Concert built on Eclipse?Introduction to Jazz platform and ArchitectureBird's eye view of Rational Team ConcertAn overview of other Jazz-based products

Software development challenges

With decades of software engineering and software development advances, we have learned techniques and methods to improve the software productivity and customer satisfaction. However, every day we push the bar to a new limit and software development organizations are faced with the challenge of catching up with the ever increasing expectations from customers.

The hardware costs are steadily declining and the software is growing in complexity day-by-day. Yet, customers are baffled by the fact that the software is slow even on faster machines. With the increasing restrictions on costs, resources, and time, software vendors identify the improvement areas. Thereby, software vendors want to increase the productivity by filling the gaps and adopting efficient processes, methods, and tools. Therefore, the next important question is "What are the crucial software development challenges"?

Today, several software development projects are faced with similar challenges, primarily focused on the distributed teams and collaboration. Major categories of the challenges include but are not limited to the following:

Teams are globally spread outCultural differences make it difficult to communicate effectivelyDifficulty in coordination with Global TeamsFast paced technology paradigmsCustomized development practices in teams

In the following sections, we will see the distributed teams, collaboration, and team management aspects of software development in detail.

Distributed teams

Increasing globalization has brought a few changes in the software development industry. One of them is "off shoring" either part of the system or whole modules. Off shoring is chosen for obvious reasons such as business cost effectiveness, availability of talent pool, and other strategic reasons. Off shoring has led to global software development teams with members from at least two geographical regions collaborating on the same project.

 

Software Professionals must adapt to the new reality of offshore outsourcing.

  --Bertrand Meyer, ETH Zurich

A team based on the same culture often has many common things to share and communicate informally compared to the teams spanning multiple cultures. Time zone difference, geographical distance, language, and cultural barriers create more information and psychological gaps in the project.

The co-located teams have the advantage that they have a line of sight, which helps them have informal discussions and thereby understand each other well. In the case of the geographically distributed teams, there is a possibility of misunderstanding created by communication. The tone of the language, and the choice of the words used in written or verbal communication, largely depend on the culture that one belongs to.

In practice, team members get information necessary to perform their tasks largely from peers, as opposed to formal, documented sources. To be able to tap this social resource, team members need to build social capital, meaning that they need to establish trust relationships with their peers.

This process of building trust does not occur so readily in a globally distributed team, sometimes leading to problems in the collaboration process. Informal collaboration tools, coupled with appropriate management practices, are an important part of the solution.

Collaboration

The act of working jointly in a co-operative manner to achieve a piece of a task is collaboration and it can happen in a formal or informal way. In the formal way of collaboration, typically the project manager or team leader assigns a "contact person" for any kind of questions or issues to answer. In the informal way of collaboration, team members work together at lunch or over a cup of coffee.

 

No matter what the problem is, it's always a people problem.

  --Gerald M. Weinberg

The proliferation of several technological advancements such as Web 2.0, Service Oriented Architecture, Mashups, Software as a Service, Cloud Computing, and many others made teams depend on each other for expertise and carry out the knowledge management in a collaborative manner.

Due to the nature of the cultures and backgrounds, formal or/and the informal way of communication is preferred one over the other. Convergence of the collaboration tools into the software development tool was needed to solve the collaboration problems. Collaboration tools offer much more than the basic communication channels provided by e-mail and telephones. These tools can make team members aware of each other. After team members are aware of each other, they are then able to communicate and work together to achieve common goals.

Collaboration is supported through tools that allow communication, knowledge sharing, and analysis. Tools such as blogs, Wikis, bulletin boards, and instant messaging clients are a few collaborative tools used now. An interesting side effect of informal knowledge sharing tools, such as blogs and Wikis, is that they increase awareness. When people read blogs, they can learn more about the authors and their interests. In this way, even if two people are in a totally different geographical area, they may know a lot of each other from the social collaboration and communication tools.

Project management

With the global teams in place, pressure to achieve higher team productivity makes team management even more challenging.

Team addition

When a member joins the team, he should be introduced to the project technology, development environments, given proper access rights to the tools, and so on. The team member is forced to learn several tools, processes, and techniques in a fast paced environment unless he comes from a similar environment.

Task assignment and scheduling

Once the project is broken in to smaller chunks, they should be scheduled to meet the release schedule. The team manager should be sensitive about the geographically distributed teams with different vacation times, holiday times, or anything that affects schedule. In such situation, the communication between the team manager and team member becomes the bottleneck for the success of the project.

The team manager should have efficient tools for task assignment and task scheduling. The challenge is multidimensional where a single module's team is spread across the geography. In such case, the team within should co-ordinate to achieve their tasks and must find an efficient way to communicate.

Task assignment and scheduling includes the following:

Tasks dependency analysisDetermining the amount of slackDealing with uncertaintiesTolerances in estimation

Project tracking

Defining the requirements, designing smaller chunks of tasks, and scheduling the tasks does not yield the project success without tracking the project. Project tracking should make it visible about who is doing what, tasks in progress, whether there's any slack, whether there are any problems, whether anyone needs help, and team-member efficiency. A burn-down chart will also help to get an idea of the work left to do versus time. In Agile development, a burn-down chart is a graphical representation of work left to do versus time.

Build, test, and release

Once requirements are coded for the functionality, they must be integrated to verify and validate. Any issues in the build should be immediately notified to the team and corrective action should be taken. In the modern software development, it is not uncommon to track the software stability with nightly builds.

Many projects follow the practice of writing unit tests and sometimes automated tests are embedded during the build process. Considering that developers covered all the functionality with the unit test cases, a build gives a considerable confidence about the product. Then, the Quality Assurance (QA) team can do the functional testing.

Depending on the project and team, one may have different release time frames. Some projects have relatively shorter release cycles (for example, 2-4 weeks) and some have longer release cycles (every six months or even longer than one year). In either case, it is important to communicate the importance of the releases and schedule to the entire team.

Transparency

In the global or distributed team setting, it is very easy to misunderstand and misrepresent the communication. Project updates not happening on an open platform leads to team members feeling insecure and mistrusted. Or even worse when you come to know about something after the fact.

Note

Transparency increases the team member's confidence and trust.

Choosing the tools in a way to make the requirements, task estimates, task schedule, work progress, project tracking, project health, build results, release schedule, and project announcements transparent is crucial to gain the trust and confidence of the team. Each one contributes to the complexity of the software being developed.

The following table summarizes the challenges in the software development with respect to each stakeholder:

Software development challenges

Team member

What tools should I use?How should I get the access rights?Who should I approach for the project plan?Who are my colleagues and what are they responsible for?What's happening in my team?Should I get the code reviewed by someone? If yes, who is it?The process documents are too large. I don't have time to read those documents.I need to back up my current changes as I have to work on a higher priority task. Context switching is complex.I want to know which team members are online and discuss things with them.I can plan better if I know the release schedule. I always have to ask my project manager for the release schedule as it's not published.If a build failure is due to my code changes, I would like to know first and fix it.I want to know my pending tasks and completed tasks.Something went wrong in the build. How can I know all the change sets from past one week?I have a customer bug. Can I trace between the code and issue and vice versa?

Project manager

Global or distributed team's availability should be known.Scheduling and assignment of tasks must consider the global work days.Work in progress for all the team members should be available.Not sure if we will be able to meet the schedule. An indicated risk is valuable.Depending on the team's load, the tasks should be assigned or reassigned. Therefore, I should know each member's work load.Unit tests and successful build gives confidence on the existing functionality.It is necessary to know the changes between last and current build in an integrated way with requirements and test cases.Project updates should be propagated to the whole team, even if they are in different time zone.Making updates to the project plan is tedious and cost me a lot of time.I need to do a high level presentation to my manager. How can I get the project overview?All the design discussions should be tracked and recorded. Is there a simple way to do it?I want to know whenever a high severity task is raised on this project categorized by the QA team or external customer.This process is very specialized and customized. How can I help the new team member to follow the process effortlessly?My team should concentrate on the productivity rather than spending time on issues tracking, documenting, communicating, and building the software.Can I give role-based access to the development and QA team?It is very crucial to know the time taken to resolve the external issues. I want to categorize the bugs and track them.

QA team

Is there a way to know the release schedule?Is there a way to know the build schedule?If there is a problem with a module, who should I contact?I want to know the stability of the code. Is there a way to check this?Even if I am not given all the access rights, I need to at least have the overview of the project progress.

External stakeholder

I need to get an overview of the project progress.I want to see special reports (such as burn-down chart) based on the current state.

Depending on the organization, geographical location, and technology area, the challenges could be multidimensional. Two projects may not have the same situations and constraints. However, they may have very similar challenges of collaboration and distributed teams in project management. All the mentioned problems in the table can be summarized as follows:

A team member inception must be easyTeam members do not want to deal with the process overheadsTeam members need process transparencyVersion control systems must know and understand issuesTask switching must be easyManagement needs a crisp overview of project available 24/7Tracking of requirements and tasks must be easyReplanning must be lightweight and easyTeam communication must be easy—without overheadsDevelopment, QA, and management teams must have access to project statusQA must have access to release schedules and any impedimentsStakeholders must have a controlled access to the project status reports

Note

Tools must know the team, process, and life cycle to aid the project team.

Going the Eclipse way

Why should we discuss the "Eclipse way" in the chapter serving as an introduction to Jazz and Rational Team Concert.

Eclipse is a software development environment comprising an Integrated Development Environment (IDE) and an extensible plug-in system. Initially it was perceived as a Java IDE, a Rich Client Platform (RCP), and a Tool Integration Platform. However, in time Eclipse transformed as an eco-system of platform, application frameworks, tools, and runtimes.

Note

Eclipse is a universal tool platform— an open, extensible IDE for anything and everything, but nothing in particular.

The Eclipse team always worked on small, stable, and extensible features, and delivered the quality software on time. The team developed, used, and improved the Eclipse by constantly reviewing and listening to the feedback from the community. They incorporated the best practices from eXtreme Programming (XP), Scrum, and (Rational Unified Process) RUP.

The Eclipse team took the best practices and modified or adapted them when necessary. The team followed the incremental, iterative, collaborative, transparent, and customizable practices, which enabled them to scale-up in time.

The Eclipse way is very often described by the set of practices (in the previous figure) that made Eclipse an extensible, robust, intuitive, and high quality platform. Very importantly, having the community involvement, consuming our own output, always having a customer, and adaptive planning are the key success factors. This ultimately reduces stress on the team and thereby leads to higher productivity.

Along with the focus on coding, the team also puts in place the release plans, iteration plans, and test plans. Planning gives the team certainty, predictability, and a sense of general direction. With Eclipse, it was possible to improve the individual coding productivity. It gave the developers all the tools necessary to deal with the common and boring tasks such as stub generation, renaming, importing and extracting code, file search, and others. As a developer you want to concentrate on the challenging stuff rather than boring tasks.

The team took the Eclipse's experiences and best practices to build the Jazz platform and Rational Team Concert. These best practices—often called the Eclipse way— helped the Jazz team to concentrate on to the team productivity, collaboration, and process awareness.

Jazz platform

Software is best developed by a team of people, reacting and responding to each other in order to achieve the best outcome. – Jazz

Jazz is an open, extensible, and scalable platform by IBM that is built to keep team, collaboration and productivity at the forefront of software development. The Jazz platform integrates the various phases in the software development life cycle and helps the team to increase productivity and reduce human errors. Tool vendors can build powerful tools on the Jazz platform by using the frameworks and APIs.

Introduction

With conventional software development, you spend a lot of effort setting up the development environment, setting up source code repository, getting the role-based access rights, and other infrastructure-related tasks. You typically connect to a requirements and/or issue management tool so that you can view assigned tasks and requirements to fulfill. In the worst case scenario, teams maintain a shared spreadsheet where they could see the assigned tasks on a weekly or monthly basis. Collaboration is typically done through casual discussions or e-mails. Source code management and requirements are often disconnected and it's difficult to connect or trace the requirements, source code, versions, and builds. Continuous integration builds are achieved with disparate systems, which might prove difficult to integrate into the development environment.

With Eclipse's success using the best practices tailored and adapted from various agile methodologies, the focus moved from individual productivity to team productivity. The central idea, "Build process into the tools and make tools aware of the team", gave the team the power to collectively collaborate and focus on the real job.

Vision

The Jazz platform got its name from the inspiration of a team of artists playing Jazz on a brightly lit platform. The Jazz orchestra team is visible to everyone and the audience knows who is doing what. Each member of the team has a complete understanding of one's own responsibility and that of the other team members. They work in a co-ordinated way to generate great music.

The Jazz platform has team collaboration, process awareness, transparency, and customization as its fundamental building blocks. Traditionally, software development tools were designed in a way that the focus is on development process or on coding productivity. In either case, focusing more on one aspect and ignoring another is not desirable. Instead, Jazz takes the approach to integrate the process into the tools and make the tools aware of the team. By embedding the collaboration tools of the choice, you have the integrated experience where each feature knows the context of the other tool.