Michael Solomon Tugboat Software 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
© 2011 Tugboat Software. All rights reserved. 3 Software Development
© 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 Sports Sports Customer Customer Customer.Name Customer.Number
© 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.0Customer 1.0.0Order 2.0.0OrderLine 1.1.0Warehouse PFILE assignments are attributes of this version of the PDBASE Object
© 2011 Tugboat Software. All rights reserved. 15 Customer (1.0.0)CustNumNameCity Logical Schema - PFILE Different versions of PFILE Objects can have… Different PFIELD Object assignments Different Index Definitions Customer (2.0.0)CustNumNameCityHairstyle 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 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 ( 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 (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
© 2011 Tugboat Software. All rights reserved. 25 Questions