Você está na página 1de 10

Agile

Software
Development
Workshop
02 – Configuration Management
Software Configuration Management

• Managing configuration means controlling the state of


those elements to maximize their value.
• Configuration means the set of elements, both
intermediate and final, that form a software system.
• Example elements are:

Source code

Configuration and data files

Tests

Documents

Database script files (DB structure)

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 2 <
Managing Versions

• A version is a snapshot of the system.


• It corresponds to the state of that system at a
particular point in its evolution.
• Versions need to be stored to facilitate access to past
states of the system configuration.
• Versions give the team the courage to face changes.
• Supports tracing the history of modifications and
maintaining system integrity.

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 3 <


Version Management Tools

• Centralized (developers use a shared single repository)



Lock-Modify-Unlock
● Visual SourceSafe

Copy-Modify-Merge
● CVS
● SVN
• Distributed (each developer works directly with his or her own local
repository, and changes are shared between repositories as a separate
step)
● Mercurial
● Git

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 4 <


Organizing the repository

Consider the following


● Choose Convention over configuration
● Organize elements to follow the build structure
● Organize elements to localize change
● Organize elements to separate code from unit tests
● Organize elements in meaningful modules
● Organize elements to support reuse

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 5 <


Basic Concepts

Git Subversion

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 6 <


Commands
Git Subversion
git add <file> svn add <file> (only if the file
is not tracked yet)
git clone <URL> <target_name> svn checkout <URL> <target_name>

git commit -a svn commit

git rm <file> svn delete <file>


git diff <file> svn diff <file>
git merge svn merge

git checkout <file or directory> svn revert <file or directory>

git status svn status

git pull svn update

git fetch svn update

git reset --hard svn checkout -r <revision>


url://path/to/repo

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 7 <


Tagging
• Tag every time a version is released to a specific
environment (e.g. acceptance, production, etc.)
• Tag on every major milestone
• Assign symbolic meaning to tags
• Manage release notes for each tag
● Include bug fixes, features, etc.
● Strive for automation

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 8 <


Best Practices
• Maintaining consistent repositories
• Separate source (e.g. source code) from generated
(e.g. executable binaries) elements.

Each can have its own criteria or policy.
• Synchronize frequently (more than once a day).
• Tight criteria for updating repository versions.

For example, passing tests, or static
analysis tool check.
• Every update to a repository should be accompanied
by a descriptive comment.

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 9 <


Activity: Creating a project repository

The team defines the repository


structure, creates the project in the
repository and configures the IDE

Agile Software Development Workshop - v1.0 - www.grupoesfera.com.ar | 10 <

Você também pode gostar