Let's get this Agile Version Control (AVC) series started with a little discussion...
It is important right off the bat to look at the definition of Agile versus the definition of Scrum. We'll talk about Agile and Scrum (and even more things) later on, so it's worth looking at these in more detail.
Agile itself is not a specific way of working, it is generic set of principles or priorities which are outlined in the Agile Manifesto. These are listed as:
- Individual interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
In brief, this is Agile. There are a dozen or so additional principles you can add on that are important, like self-organizing teams, sustainable working pace, but these are also covered in the individual Agile flavors so not as important to list here as I can get into those details later.
Scrum is a specific flavor of Agile, specifically it is referred to as an agile project management framework. It draws on the principles of the Agile Manifesto but goes into detail to define day-to-day activities and how to manage a project in a specific way.
Agile is not about just having daily standup meetings or deciding to swap one feature for another during a development cycle based on customer demands. These actions do exist in Scrum but you are not scrumming if you just have daily standup meetings, there is a lot more to Scrum and perhaps the most important aspect is how teams are managed and organized, in short they manage and organize themselves, there is no project or product manager anymore and teams are empowered to make decisions and solve problems on their own as opposed to being micromanaged. It is the first thing I noticed about Scrum.
..but why is this important?
Because in the design and construction of PureCM there are facets of the product which will mesh with principles of Agile and will therefore be applicable to many different flavors of Agile, but because my flavor of choice is Scrum that is where I will go into details (though I will try to mention others here and there).
There is a vast multitude of SCM and version control systems available today. Many of them will claim to be Agile. Many of these will cite specific features or points of interest like code reviews and continuous integration. Often these are features the tools had before claiming to be agile but are now being marketed as 'Agile' capabilities retroactively. With PureCM what we will show is how you can follow the principles of the Agile Manifesto first and then second how nicely PureCM adapts to Scrum and how this is a ground up effort that makes PureCM truly Agile and Scrum compatible and not just offering rebranded legacy features here and there and calling it agile.
So we've properly started the series - I look forward to continuing our journey!