Small teams are not that special. In fact, most large teams are just networks of small teams that interface with each other along established protocols. I have worked in tiny high performance teams that had their own unique requirements and very large enterprise-wide development organizations that had requirements for very formal application lifecycle processes and IT controls, including configuration management. You need to be prepared to work within the structure of a small team regardless of the size of the organization. Read on if you would like to share CM and ALM best practices for small teams.
Small Teams Are Everywhere
Small teams are found in any organization, large or small. Whether it be your unix system’s administration group, DBAs, sharepoint developers, or the quants cooking up the latest mathematical models to support the traders, small teams exist throughout the organization. Each team may have its own unique culture and dynamics. For example, I have often found that the DBAs have their own processes and workflow that focuses on the way that they work and demands of maintaining the organization’s data.
No Team Is an Island
Small teams most often exist within a structure. Whether they must interface with outside suppliers or other teams within the organization, small teams usually do not operate in isolation. Teams everywhere have established interfaces and service level agreements. Small teams often must establish their support levels and also a means for managing their workflow. Many small teams have workloads that can be overwhelming, which is precisely where application lifecycle management (ALM) becomes essential.
ALM for Small Teams
High performance teams show tremendous productivity. Self-managed small teams often show high productivity and even higher workflow demands. Robust ALM solutions help teams track and manage their workflow throughout the application lifecycle. ALM is essential for small teams if they are to achieve their potential and show results. ALM ties small teams together by managing workflow and providing transparency on an enterprise level. Small teams are also often working from multiple locations.
The Offshore Team
I have personally seen small teams that consisted of a business analyst and lead developer onshore with the customer while outsourcing the application development and testing efforts to offshore teams located in India, Israel, or the former Soviet Union. Whether the team is collocated or split across continents, small teams need to manage and coordinate their work using ALM best practices. ALM helps to manage the entire application lifecycle including configuration management.
Configuration Management for Small Teams
Configuration management (CM) includes source code management, build engineering, release management, and deployment. CM is essential for teams of any size, although CM practices for small teams have to fit the unique culture, rhythm, and requirements of the group involved. I have worked in small teams that used lots of branches because they were managing multiple variants (quants with mathematical models) and other small teams that only developed on the trunk with a view that branches were not necessary. CM needs to be flexible enough to meet the unique needs of the group involved. These needs often include supporting rapid application development.
Rapid Application Development
Many of the small teams that I work with engage in rapid application development; CM and ALM practices help make this happen. Continuous integration is the most common practice associated with agile development, but there are other practices that help teams develop software and systems, too. This includes automated build and release packaging as well as deployment. It is essential to have the code ready to deploy and have a controlled environment.
Environments and Monitoring
Software that is built and packaged needs to be deployed; first to a test environment and then, of course, to production. There are usually several levels of testing, including development, integration, and User Acceptance Testing. The release must be promoted from one environment to the next. The environments themselves must also be built and controlled. Environment monitoring is a key practice that is essential for supporting a stable test environment. These are basic IT controls that need to be established, often in compliance with regulatory requirements.
The Unique Qualities of Small Team
I started this article with the premise that most small teams exist within a larger organization, even if only because they interface with outside suppliers. Most small teams do not exist in isolation. Still, small teams have their own unique requirements, which may impact how they handle all aspects of the application lifecycle. You need to understand these requirements and tailor ALM and CM best practices to the unique requirements of the team that you are working with.
Conclusion
CM and ALM for small teams help to establish essential IT controls. This includes source code management and build and release engineering, along with automated deployment. These practices are necessary for small teams every bit as much as larger teams. You need to employ these best practices as part of your efforts to support the application development lifecycle.
About the Author Bob Aiello is a consultant, editor-in-chief for CM Crossroads, and the author of Configuration Management Best Practices: Practical Methods that Work in the Real World, Addison-Wesley Professional ( http://cmbestpractices.com). Mr. Aiello has more than twenty-five years’ experience as a technical manager in several top NYC financial services firms where he had company-wide responsibility for CM, often providing hands-on technical support for enterprise source code management tools, SOX/Cobit compliance, build engineering, continuous integration, and automated application deployment. Bob has served as the vice chair of the IEEE 828 Standards working group (CM Planning) and is a member of the IEEE Software and Systems Engineering Standards Committee (S2ESC) management board. Mr. Aiello holds a Masters in industrial psychology from NYU and a B.S. in computer science and math from Hofstra University. You may contact Mr. Aiello at bob.aiello@cmcmedia.com, link with him at http://www.linkedin.com/in/bobaiello,or visit his corporate website http://yellowspiderinc.com.
Trackback(0)
Comments 
Write comment
 |