Philosophy
Massively concurrent software development is a hard problem with many conflicting requirements:
On the one hand, you want to isolate individual changes to allow reliable verification and debugging.
On the other hand, you want fast communication of changes between cooperating developers.
On the one hand, you wish to provide instant patches to existing releases, and you want to propagate these fixes forward to current developments.
On the other hand, you don't want to waste development time to backport or manually redo those changes.
On the one hand, you want to minimize the risk of changes made to the upcoming release.
On the other hand you find it hard to predict the risk involved in every change, and you end up missing opportunities to include features which turn out to be easy, or worse: you delay your release because a seemingly easy feature turns out to be hard.
Many software development shops find themselves unprepared to deal with these requirements. As the deadline for release looms, they find they have no time to experiment and evolve the necessary procedures. Too often, the shop ends up in permanent fire fighting mode.
Break the Fire Fighting Cycle
CG software design does not sell software. All the tools we use are available for download, free of cost.
CG software design sells training, service and knowledge. We believe that software development process is mainly a people thing. This doesn't mean that a good tool set can't help, but contrary to the claims made by most SCM tool vendors, a good tool is not sufficient by any means.
CG software design will assist you in adopting and customizing your SCM tool of choice to work for you.
Focus on the Developer
Most commercial change management systems epitomize red tape and bureaucracy and are wildly unpopular with developers. Change review boards perceived as change prevention boards and change tracking systems perceived as performance tracking systems frustrate and stifle developer creativity.
Version control should really be seen as an enabling technology. Since it is possible to revert, to undo and to pick and choose changes, developers should feel empowered to experiment and try out various implementations and methods.
CG software design encapsulates and highlights those capabilities of your SCM tool, thereby emulating the processes used by some of the most successful and proficient open source development projects.
Delay Commitment
By emphasizing the pick and choose aspect of CM, you can now delay the moment when you need to commit to providing a specific feature in a specific release. You can observe the development process and assess the risk with much more useful data than if you had to commit to the task at the beginning.
Preserve Accountablility
The pick and choose model will not impede on accountability. Our custom made bug tracking system will track changes and fixes as they propagate from one branch to another. Every redo or undo will be registered, and generating the final release notes for a new release is a snap.
Automate as Much as Possible
CG software design's motto is: "every non-branching sequence of steps shall be collapsed into one single step". We have observed how developers, testers and release managers operate for many years. Every itch and every tedious repetition has prompted us to re-evaluate the process and to attempt to collapse lengthy procedures into simple, single steps.
We now provide extensive automation and reporting tools, among them:
- Total build automation;
- Recommended change propagations (redoes);
- Automated merging;
- Pending change deliveries;
The automation process is ongoing and customer-driven. By using our services, you subscribe to the pool of experience gained by all our customers.
