michael solomon tugboat software managing the software development process
TRANSCRIPT
© 2011 Tugboat Software. All rights reserved.2
Session Agenda
Software Development – Business needs Software Configuration Management (SCM)
• SCM Concepts• SCM Benefits
Case study SCM activities Controlling the schema Selecting an SCM tool Questions
© 2011 Tugboat Software. All rights reserved.4
Business Needs
Respond to customers’ needs• Understand and deliver the right features• Deliver frequent enhancements
– But not too frequent
Build trust• Maintain high quality standards
Know what you have• What features are currently in your software?• What new features are ready to release?• When will future features be ready to release?• What obstacles do you routinely encounter?
© 2011 Tugboat Software. All rights reserved.5
Software Configuration Management
Software Configuration Management is the discipline of managing the entire
life cycle of a software project.
© 2011 Tugboat Software. All rights reserved.6
SCM Key Activities
Four key SCM activities:
1. Identification of work products and baselines
2. Control of proposed changes to application items (approval/rejection)
3. Status accounting of configuration data and changes
4. Auditing to maintain the integrity of the configuration baselines
© 2011 Tugboat Software. All rights reserved.7
SCM Benefits
Improves• Product protection• Product visibility• Product control• Team communication• Customer confidence
Decreases• Rework• Confusion• Project risk
© 2011 Tugboat Software. All rights reserved.8
Case Study - Challenges
Culligan International Company• Water filtration, softener, and delivery
QAD software Software customizations were uncontrolled
• Difficult to track changes between multiple developers• Deployment required tedious intervention• Keep customizations separate from vendor code• SOX compliance requirements• Many problems were due to lack of version/configuration
control
© 2011 Tugboat Software. All rights reserved.9
Case Study - Needs
Culligan needed to get a handle on their software development process
Needs included:• Method to identify snapshots of their application• Better visibility of ongoing changes• Ability to “undo” harmful changes• Assurance that customer requests are being met• Tools and techniques to create repeatable processes
© 2011 Tugboat Software. All rights reserved.10
Identify application components Define the physical and functional hierarchy Identify application configurations
Configuration Identification
© 2011 Tugboat Software. All rights reserved.11
Establish configuration security Manage application changes
• Define the problem first, not the solution• Document process and impact of changes• Approve/reject each change• Only implement approved changes
Define workflow• Determine how a change flows from request to deployment
Configuration Control
© 2011 Tugboat Software. All rights reserved.12
Schema Objects
Database schema definitions• Database• Table• Field
Creates dependency for data-related source code• Changes to schema often requires code changes
Configurations (application component descriptions) depend on source code AND schema
Lack of schema control increases risk
© 2011 Tugboat Software. All rights reserved.13
Schema – Object Types
PDBASE• Database Object Definition
PFILE• File Object definition
PFIELD • Field Object definition
Sports2000 - 2.0.0
Sports2000 -1.0.0
Customer -1.1.0
Customer -1.0.0
Customer.Name -1.0.0
Customer.Number -1.0.0
© 2011 Tugboat Software. All rights reserved.14
Logical Schema - PDBASE
Database Object Definition PDBASE is a collection of...
• PFILE Objects• Sequence definitions
Sports2000 (WIP) 2.0.0
Customer 1.0.0
Order 2.0.0
OrderLine 1.1.0
Warehouse 1.0.0
PFILE assignments are attributes of
this version of the PDBASE Object
© 2011 Tugboat Software. All rights reserved.15
Customer (1.0.0)
CustNum
Name
City
Logical Schema - PFILE
Different versions of PFILE Objects can have…• Different PFIELD Object assignments• Different Index Definitions
Customer (2.0.0)
CustNum
Name
City
Hairstyle
New PFIELD Object
assignment for this version
© 2011 Tugboat Software. All rights reserved.16
Coordinated Control
SCM for database applications must manage• Source code • Schema
Complete SCM implementation supports all 4 activities for all application components
Many schema and code changes are dependent on one another • Cannot deploy code without schema changes• Cannot deploy schema changes without code
You must address schema management issues
© 2011 Tugboat Software. All rights reserved.17
Change Request Form and Log
Describing the desired
change
Thoroughly analyzing the
change
Decision and formal
approval
Project Name:
TrackingNumber Item Type Systems/Subsystems Short Description of Change Urgency Requestor
DateSubmitted
Analysis AssignedTo: Result
Change Request Log
Keeping track of all the desired changes
© 2011 Tugboat Software. All rights reserved.18
Identify changes made to configuration• Maintain records of changes to all objects throughout the
application’s life cycle
Identify work in process Document contents of all builds Generate periodic status reports
Configuration Status Accounting
© 2011 Tugboat Software. All rights reserved.19
Ensure existence of required components• Maintains integrity of each configuration• Audits ensure each configuration contains the correct
versions
Review configuration changes Audits generally correspond to major milestones
Configuration Auditing
© 2011 Tugboat Software. All rights reserved.20
SCM Records
SCM Plan – high-level document that includes responsibilities, process, and configuration descriptions
Schedule – list of scheduled SCM activities Change Request Plan – procedure for handling all
change requests Change Configuration Board operating procedures
and minutes Audit results Ongoing communication (e-mail messages, reports,
etc.)
© 2011 Tugboat Software. All rights reserved.21
SCM Tools
Many version control tool sets Fewer SCM tools Good comparison of language-agnostic tools
• http://better-scm.shlomifish.org/comparison/comparison.html• (No Roundtable review)
Most common tools for OpenEdge SCM• Roundtable• Mecurial• CVS• Subversion
© 2011 Tugboat Software. All rights reserved.22
Case Study - Choice
Culligan chose Roundtable TSMS Primary reasons
• OpenEdge integration• Schema management• Easily extensible - Integrated bug tracking system with
Roundtable• Controlled promotion process
– Development– Testing– Production
• Tracks change responsibility and reason• Robust security model to restrict activities
© 2011 Tugboat Software. All rights reserved.23
Case Study - Results
Happy auditors• On-demand reports of all changes• Separation of roles
Happy managers• Controlled schema• Work in process visibility• Bug tracking integration means easy to relate bugs to fixes• Simpler code promotion process
Happy (mostly) developers• Easier to avoid conflicts with multiple programmers working
on the same code• Easy to get tons of information about objects
© 2011 Tugboat Software. All rights reserved.24
Summary
Start with your business needs Understand how SCM can help meet needs
• SCM Concepts• SCM Benefits
See how other businesses have done it Explore how SCM activities will impact your process Consider how different SCM tools will support your
development efforts SCM is more than just installing a tool