250 likes | 482 Views
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.
E N D
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
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?
Software Configuration Management Software Configuration Management is the discipline of managing the entire life cycle of a software project.
SCM Key Activities • Four key SCM activities: • Identification of work products and baselines • Control of proposed changes to application items (approval/rejection) • Status accounting of configuration data and changes • Auditing to maintain the integrity of the configuration baselines
SCM Benefits • Improves • Product protection • Product visibility • Product control • Team communication • Customer confidence • Decreases • Rework • Confusion • Project risk
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
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
Configuration Identification • Identify application components • Define the physical and functional hierarchy • Identify application configurations
Configuration Control • 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
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
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
Logical Schema - PDBASE • Database Object Definition • PDBASE is a collection of... • PFILE Objects • Sequence definitions PFILE assignments are attributes of this version of the PDBASE Object
Logical Schema - PFILE • Different versions of PFILE Objects can have… • Different PFIELD Object assignments • Different Index Definitions New PFIELD Object assignment for this version
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
Change Request Form and Log Thoroughly analyzing the change Describing the desired change Decision and formal approval Keeping track of all the desired changes
Configuration Status Accounting • 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 Auditing • 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
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.)
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
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
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
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