managing the software development process

25
Michael Solomon Tugboat Software Managing the Software Development Process

Upload: annot

Post on 25-Feb-2016

55 views

Category:

Documents


0 download

DESCRIPTION

Managing the Software Development Process. Michael Solomon Tugboat Software. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Managing the Software Development Process

Michael SolomonTugboat Software

Managing the Software Development Process

Page 2: Managing the Software Development Process

© 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

Page 3: Managing the Software Development Process

© 2011 Tugboat Software. All rights reserved.3

Software Development

Page 4: Managing the Software Development Process

© 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?

Page 5: Managing the Software Development Process

© 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.

Page 6: Managing the Software Development Process

© 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

changes4. Auditing to maintain the integrity of the

configuration baselines

Page 7: Managing the Software Development Process

© 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

Page 8: Managing the Software Development Process

© 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

Page 9: Managing the Software Development Process

© 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

Page 10: Managing the Software Development Process

© 2011 Tugboat Software. All rights reserved.10

Identify application components Define the physical and functional hierarchy Identify application configurations

Configuration Identification

Page 11: Managing the Software Development Process

© 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

Page 12: Managing the Software Development Process

© 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

Page 13: Managing the Software Development Process

© 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

Page 14: Managing the Software Development Process

© 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

Page 15: Managing the Software Development Process

© 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

Page 16: Managing the Software Development Process

© 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

Page 17: Managing the Software Development Process

© 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

Page 18: Managing the Software Development Process

© 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

Page 19: Managing the Software Development Process

© 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

Page 20: Managing the Software Development Process

© 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.)

Page 21: Managing the Software Development Process

© 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

Page 22: Managing the Software Development Process

© 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

Page 23: Managing the Software Development Process

© 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

Page 24: Managing the Software Development Process

© 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

Page 25: Managing the Software Development Process

© 2011 Tugboat Software. All rights reserved.25

Questions