Software Defined Interviews: DevOps, bikes and what happened with version control the last 15 years
Michael Coté, host of some of the best podcasts on Digital Transformation, Cloud-based software development and other topics, interviewed Pablo Santos, founder and CTO of Plastic SCM. The conversation was, as the self-explanatory title reads, fun. This is a brief summary of it.
Is Version Control still a thing?
Version control is the operating system of software development, whether we like it or not. A lot has happened since the early ages of version control in which CVS and Subversion were a thing. During that period, they were merely a delivery mechanism. No one really enjoyed them or extracted much value form them.
But since 2005, things have changed. Plastic SCM was born and two months later Git came to live too. What has basically happened since then is a new generation of version controls has risen. They have popularized the democratize somehow branching and merging and that's key for collaboration. Going from branching and merging is a nightmare to embracing both, adopting distributed programming, pull requests and so has absolutely changed the landscape of software development. So yes, Version Control, is still a thing.
Is Version Control cool finally?
Branching and merging all of a sudden were available for every one and they expanded like crazy. All the distributed programming hype sparked then but the reality is more complex, needless to say that branching and merging could be performed with a centralized approach.
In essence, branching and merging was not at all easy and they didn't define at all the way a team should work with their source code. That has been Plastic's main mission these years: to make these innovations easy, accessible and versatile for each team to decide which way to collaborate without any hassle. Plastic SCM provides correct merge tracking, three-way merge interfaces, semantic version control.
Being semantic is indeed an innovation that no one in the market yet has paralleled. As basic as it may sound, if you ask any programmer how diff and merge should work, they would reply semantically. In other words, merge tools should parse the code, calculate the difference line by line and attribute the changes appropriately. But that doesn't happen with any merge tool nowadays, and the generates an awful amount of conflicts especially in teams that merge a lot of code. Semantic Merge knows the structure of the code, and matches differences between methods, classes... instead of line per line, so that it can merge the changes in a method that has been moved and or modified, for example. It works even across files! That's a huge productivity boost for the aforementioned situation. Think of Hubspot.com delivering 170 live changes each day or Google with 15000 devs committing changes on one branch 20 times a minute.
Developers tend to avoid situations in which a refactor would clearly help performance and scalability because they don't there is a tool that can solve these problems. To proof so we did a merge rerun with a few thousand repos hosted in GitHub and redid all merges. We found that up to 30% of PRs (branch merges) that did generate conflicts and thus require manual intervention, where processed seamlessly with Semantic Merge.
Where is Version Control heading to?
We focus on being an enabler of the entire DevOps process which is something that no other version control is doing. Think of it as Git on steroids: it speaks the same language and performs the same basic operations but with better merging, native GUIs with branch explorer, and able to handle easily big files and huge repos.
If teams want to deploy a continuous flow of stable changes, version control automation and integration with the CI / CD pipeline is fundamental. It takes the development side of DevOps to another level. Task branches merged by the thousands, distributed or on premises, is what the Googles the Hubspots are doing every day. Plastic SCM is connecting and automating task branches to CI / CD tools to have a real complete DevOps toolset that really enables programmers to craft their code.
Plastic in fact takes responsibility of the whole process. Mergebots polls the entire repo for conditions to trigger the whole build merge and CI process. Independent of the CI system you use, mergebots allow you to control the build process from version control. mergebots will be able to merge the code, run the tests, trigger the build and, if conflict less, deploy the changes. Plastic shelves this operation until all conditions are met. Once the deploy has finished it updated the status where required: branch status, issue tracker, Slack...
It's, in essence, a way to finish with the integrator role. They run in the background and control and automate the pull request cycle, in GitHub terms, for that workflow to run smoothly and independently freeing tons of creative work. It allows teams to move things forward on a continuous flow.
Own your path and deliver value
It was crazy to start Plastic SCM from scratch especially since Git expanded like crazy just two months later. It's also as crazy not to base our innovative technology on Git like others, which would have given us access to a huge market. We own the whole stack and thus we can deliver a roadmap that is actually leading the version control landscape with innovations such as mergebots and others to come.
In hindsight, it is reassuring that we had a vision for modern version control and that we are providing it to the market growingly. More and more developers and industry are requesting these innovations and others and we are happy to move in that direction.
Listen to the complete interview here and don't forget to subscribe to Software Defined Talk.
0 comentarios: