Featured Whitepapers
- Forrester Research: Optimizing Globally Distributed Software Development Using Subversion
- An Integrated Approach to Requirements and Quality Management
- Continuous Testing With ElectricCommander
- Agile CMMI at a Large Investment Bank
- Realize Effective Distributed Development Via a Virtual Software Factory
- Build & Deployment Automation for the Lean Economy
Upcoming & Recent Webcasts
- A New Kind of Engineering
- Managing Change in Rugged COTS Systems Development
- Keeping Control of Costs and Schedules When Requirements Change
- Three Simple Things that Will Help You Adopt Agile in Your Enterprise
- Customer speak: Teams, Insights, Results with Quality Driven Software
- Build & Deployment Automation for the Lean Economy
Best Practices of Agile SCM |
| Print | |
| Written by Steve Konieczka, Brad Appleton, Steve Berczuk |
| Saturday, 01 May 2004 16:00 |
natural treatment for pancreatitisThere are a lot of training, articles and discussion concerning Software Configuration Management (SCM) standards that tell us to implement Configuration Identification, Status Accounting, Routine Auditing, etc. All of this information is good and very important because it helps us understand the overall objectives, but rarely do you find real tangible approaches for "how" to actually implement solutions that accomplish the objectives. This article will discuss a typical SCM Implementation engagement focusing on some practical best practices in order to achieve the objectives of the many CM standards out there. These best practices won't apply to all situations.The Company There are many situations we run into when starting with a new customer or company. Generally, there exists some form of Ad Hoc SCM that has evolved to meet tactical needs in a disjointed way across the organization. Sometimes we are brought in because of a regulating agency's audit identified problems in the way they manage their software assets. Other times it's because of a recent change in management. In any case, there is a catalyst that causes the company to want to improve their SCM processes and technology. The AssessmentSteven Covey's "Seven Habits of Highly Effective People" identifies one very important step that you must take before charging off to implement SCM change in your organization. One of the Seven Habits is, "Start with the End in Mind." We start with an SCM Assessment with the intent of developing the optimal end. Our Assessments are conducted by interviewing developers, other SCM people, testers and managers from different groups in the organization to understand how they manage change in their environments, what technologies they're using, how their teams communicate, etc. The information is collected, analyzed and published in a detailed document broken down into the following areas:
The Implementation Plan The Implementation Plan is what is discussed in the Remediation Plan. It is typically broken down into an Infrastructure Phase, Pilot Phase, Rollout Phase, and finally the Support Phase. These phases may work in parallel depending on the approach you decide to take. Infrastructure PhaseIn this phase, you build standards and other reusable components of your SCM solution by project type. Let's say, for example, that you have the following development groups within your IT organization: Cobol/Mainframe, C/C++ mid-range, MS Visual Studio/.NET, and Java/J2EE. They all develop software for the same basic business customer(s). Consider some of the following items as infrastructure for different project types: Project Naming Structures Development IDEs that need interfacing
Pilot Phase Now you've created the basics for a given project type - choose a project that will work with you to offer feedback, and has some level of tolerance to weather a few bumps in the road. These first-time pilot projects can sometimes incur a little disruption for the development team - it gets much better the more you do. We usually ask the development team what would define success for them on this effort and oftentimes the answer is, "Just don't impact my team's progress on the project." That's unfortunate, but common. We like to characterize these implementation efforts as "Changing the wheels on the bus while it's going down the road at 60 mph." Our intent is to minimize the impact on development during this transition process, while building the capability for the bus to be able to cruise faster and more predictably once we're done. The typical pilot phase goes something like:
Rollout Phase Once you've fine-tuned your Infrastructure and you're ready to roll out a solution to several other projects, there's some preparation that should occur. If you're looking at a small number of projects, then estimate each of them individually. Estimating large groups of projects takes a more creative approach. We worked with a customer where we rolled out an enterprise solution to approximately 600 projects. We estimated and scheduled the projects based upon three variables: (1) Project size; (2) Project maturity; and (3) Project type. Project size determined the number of developers (Small, Med, Large) that we would have to train. We also find that the larger projects typically have more places to hide artifacts and the CI collection process usually takes longer. Project maturity is based upon the developers' past experience with the new SCM Solution. Remember that SCM Solutions address all the facets of a business process: people, process and technology - not just technology. If they are familiar with the process and technology because of involvement with another project that's been converted already, it likely won't take as long to rollout the solution. We ranked them light, medium, heavy. Project type has quite an impact as well since the work that you have to do to convert them can be quite a bit different based upon their environment. Examples of this could be mainframe, C/C++, Java/J2EE, etc. This estimating process allowed us to generalize each project and to determine a total level of effort for the rollout with a relatively high level of confidence. Answering these questions also helped in scheduling the projects for conversion since we could group and assign them based on project type, maturity level, etc. Support PhaseOnce a project has been "brought to the bright side", it must be deemed "converted" and moved to support. Progress is noted and tracked just like any other project. Metrics are added to the overall benefit being brought to the organization by your effort, and published. We recommend using an Intranet website to advertise the success and improvements being made to the bottom line and keep that up to date. It's amazing how quickly people will forget how it was before your SCM solution, yet be quick to point out its flaws. A project "in support" should receive routine correspondence from the SCM Team regarding enhancements, happenings, etc. They should be routinely scheduled for "consulting visits" from the SCM Team, otherwise known as audits. ;-) They should be invited to routine brown bag sessions to collect feedback on the solution and recommendations for enhancements. These improvements are then prioritized and scheduled in a constant (much smaller than at the beginning) budget focused on continuous Infrastructure improvements. Without this, the SCM Team's capability to support projects will constantly erode over time and eventually you will be back to working tons of hours performing tactical activities. The MetricsThe metrics you capture are your best friends. In a world of IT strategies that change with the wind, it's very easy to find your budget being questioned - even after a big successful implementation. We took the metric measuring to a new level at a client where we calculated the average dollar savings of creating a formal release the new way versus the old way. Then we kept an automated counter of every release created. When that counter got to a certain "significant" amount, the system sent a text page to a pager that we gave to the CIO. The CIO would be sitting in a meeting and receive a page that said, "Your SCM group just saved you another $102,832." The CIO loved it because he was able to brag in the meeting, and we loved it because it kept the value we were providing in front of the decision-maker on a constant basis. SummaryThe nature of best practices is that they are detailed enough to be tangible, so they need to be specific for a particular situation. The best practices mentioned above won't work for every situation, nor do they attempt to be a complete list of SCM related best practices. Agile SCM has been implemented on many projects the way mentioned above, quite successfully. We hope that you will find some of these ideas useful in your organization or situation.
Brad Appleton is co-author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration. He has been a software developer since 1987 and has extensive experience using, developing, and supporting SCM environments for teams of all shapes and sizes. In addition to SCM, Brad is well versed in agile development, and cofounded the Chicago Agile Development and Chicago Patterns Groups. He holds an M.S. in Software Engineering and a B.S. in Computer Science and Mathematics. You can reach Brad by email at brad@bradapp.net Steve Berczuk has been developing object-oriented software applications since 1989, often as part of geographically distributed teams. In addition to developing software he helps teams use Software Configuration Management effectively in their development process. Steve is co-author of the book Software Configuration Management Patterns: Effective Teamwork, Practical Integration. He has an M.S. in Operations Research from Stanford University and an S.B. in Electrical Engineering from MIT. You can contact him at steve@berczuk.com. His web site is www.berczuk.com Steve Konieczka is President and Chief Operating Officer of SCM Labs, a leading Software Configuration Management solutions provider. An IT consultant for 14 years, Steve understands the challenges IT organizations face in change management. He has helped shape companies' methodologies for creating and implementing effective SCM solutions for local and national clients. Steve is a member of Young Entrepreneurs Organization and serves on the board of the Association for Configuration and Data Management (ACDM). He holds a Bachelor of Science in Computer Information Systems from Colorado State University. You can reach Steve at steve@scmlabs.com
Set as favorite
Bookmark
Email this
Hits: 7680 Trackback(0)Comments (0)
|
| Last Updated on Monday, 11 August 2008 19:25 |


