(continued in futuer Posts)
Continuous Integration is the practice of integrating early and often, so as to avoid the pitfalls of "integration hell". The ultimate goal is to reduce timely rework and thus reduce cost and time to market an application.
How to start process in Organization
It was started with an idea that company should get maximum benefit from Continuous Integration. But very first challenge is how to start it? There are a number of tools and each with different capabilities and scripting code need to understand. On other hand it was a challenge that company run verity of .NET languages, with almost all flavors of .NET frameworks and all type of applications from small projects to long term maintenance projects. It could be enterprise applications, web-based, windows/form-based and network applications etc. We are using verity of source code repositories like TFS, VSS, some use SOS because their code ownership is on client premises. Some use VPN connection to do remote coding and does not interact with our local network. DMZs and further considerations etc.
Our lead then decided to develop a plan for this project. A road map to define the milestones at each level.
- Define Mission Statement
- Define Tasks
§ Value Addition
§ Success CriteriaThe Process
We wanted to create a simple running process that is
- Should not involve extra cost to company (should be mostly open source or in place already in the company)
- Should be easy to adapt to various teams in the company
- Should have minimum effort involve to pluggin the process in existing projects and new coming projects (Avoid unnecessary scripting, coding and configurations)
- Should use well tested and stable set of tools so that running maintenance cost of process should be less.
- Should perform less customization, until its necessary and first focus on start a process.
- Once up and running in place, then enhance gradually by adding more areas/tools etc.
Defined tasks and their breakdown
Start Survey across Organization
We started survey across the organization. Purpose was to collect necessary information to define the feasibility criteria, tools selection and maturing the process.
(To be continued ...)