View
337
Download
3
Category
Tags:
Preview:
DESCRIPTION
Learn how dvcs can reduce your development costs and enhance productivity final
Citation preview
© 2013 Codice Software
How DVCS can reduce your development costs
and enhance productivity
Francisco Monteverde
CEO Codice Softwarefm@codicesoftware.com
@plasticscm www.plasticscm.com
David AndersonBusiness Developer
Codice Softwaredanderson@codicesoftware.com
© 2013 Codice Software
How DVCS can reduce your development costs and enhance productivity?
1. Why SCM matters?2. The problem with SCM’s today?3. Development trends driving DVCS adoption4. Main factors to reduce cost, increase
productivity and software quality5. Customer’s examples6. Intro Plastic SCM: The Enterprise DVCS
© 2013 Codice Software
TODAY SOFTWARE IS ALMOST EVERYWHERE….AND INCREASING
Computers, Mobile Phones, Tablets, Internet Services, Video Games, Consoles, Financial Services, Telecommunications, Automobiles, Transportation, Healthcare,
Commerce, Distribution, Industrial Manufacturing… …
© 2013 Codice Software
VERSION CONTROL IS AN ESSENTIAL FUNCTION WITHIN SOFTWARE DEVELOPMENT
© 2013 Codice Software
¿Why SCM Matters? (@ RIM)
RIM declared $500M lost in Jun’125,000 employees outBlackBerry 10 launch delayed 2013
http://www.wired.com/gadgetlab/2012/06/down-goes-rim-blackberry-10-delayed-until-2013-5000-job-cuts/http://www.cio.com/article/print/710295
”We weren’t able to merge fast enough”Research In Motion CEO Thorsten Heins
June 2012
BlackBerry 10 was launched +7 months later than expected (Jan 30th 2013)
© 2013 Codice Software
Working in parallell seems an obvious productivity gain…
:)
:)
:|
|:
t1
t2
total
:O
:S
?
1
32
64 5
Two developers need to work in
the same file
One works first and then the
next complete it
But what if the work in parallel
with a copy?
But now how can we merge both
jobs?
Total time used is the sum of
each indivicual’s time
Total time used is the largest of
one of the individuals
© 2013 Codice Software
… but you need to merge all work well
5
6
1. Manage every change and access2. Allow concurrent edits3. Guarantees merges are correct4. Enables coordination among
developers
Version Control makes all merges,
among other things
And it is a very complex operation when you have
hundreds of developers and tens of thousands files
© 2013 Codice Software
WHAT’S THE PROBLEM WITH VERSION CONTROL?
© 2013 Codice Software
Limited Productivity, Low Quality Code in Software Development today…
1. Development in serial mode (not parallel) creates many dependencies and continuous broken builds
2. Developers need to be connected to central server to use the Version Control tool
© 2013 Codice Software
The Vast Majority of Source Code is Developedin Serial Mode using a Centralized Repository
cset: 10474Fix core database query to retrieve customersdevel: pablo
cset: 10475Typo in about formdevel: john
cset: 10476New loading formdevel: pat
cset: 10478Fix a crash on the new loading formdevel: pat
cset: 10477Resource leak disposing GDI brushesdevel: pablo
main
Serial Development: Developing and Evolving in
One Code Line (Main, Dev…)Centralized
Code RepositoryOne single branch
One Central Repository
© 2013 Codice Software
Problems of Yesterday’s SCMsTechnology
1. Broken Builds: because
everyone is working in the main
line (or one line)
2. Branching Limitations: prevent
embracing of agile methods and
true parallel development
3. Arcane Branching Patterns:
Lock teams (SVN, Perforce)
4. Can’t work in a distributed
manner
5. Not a flexible release cycle
Business1. Long development cycles: high
cost, lost opportunities
2. Unstable releases – too many
bugs, poor quality - causing
delays to market
3. Difficult Cooperation: among
heterogeneous or de-located
teams and offices
They are ALL solved by DVCS
© 2013 Codice Software
Enabling Parallel and Distributed Development with DVCS *
/main/task113 fix core database query
devel: pablo
devel: john
/main/task115New loading form
devel: pat
devel: pablo
/main/task114Typo in about form
/main/task116GDI resource leak
main
BL130Released to customer
BL131Internal
Parallel Development Using Branching and Merging
Distributed Code Repositories
Multiple and Frequent Branches
and Merges (the green lines)
(*) a.k.a Distributed Version Control System
Distributed Repositories
© 2013 Codice Software
Main Development Trends Driving DVCS Adoption
DistributedDevelopment
Teams
SaaS /Cloud Services
AgileDevelopment
Complex ProductsComponent Reuse,
SmartPhones, Games, Embedded SW
DevOps
An Andorid Application needs 2,000 different versions. An iOS needs 40….still a lot! Component based development is essential.
Open SourceDevelopment
Implies faster development cycles, incremental releases, parallel development, branch per task
Teams are not longer centralized. Co-operation among 3rd parties is essential, Component based development and parallel development.
Many re-usable software and services, distributed across live repositories, loosely coupled. Continous Delivery of features
DevOps embraces agile principles and hence flexible and incremental release cycles are needed. Support for branch per task or parallel development is fundamental.
Cooperation among distributed teams as well as component reuse/development are inherent to OSS development
21
3 4
DVCSAdoption
© 2013 Codice Software
Distributed Versioning is at the peak of expectations in Application Development (*)
Hype Cycle for Application Development
(*) Source: Gartner Group, July 2012
Distributed Versioning
© 2013 Codice Software
REDUCING COSTS, INCREASING PRODUCTIVITY & QUALITY
© 2013 Codice Software
Main Drivers Reducing Costs, Increasing Productivity & Quality
A.- Reduce Cost B.- Increase Productivity C.- Enhance Quality
1. Licenses, Installation, Deployment and Training are lower than traditional Centralized SCM systems
1. Enabling parallel development reducing overall time to complete a release, moreover, it significant reduce broken builds
2. Merge efficacy reduces manual interventions
1. Flexible release cycles: allowing to select independently what changes need to be included (merged) in a particular release
2. Infrastructure: minimizes server horsepower since work can be distributed among servers not at a "Central Server"
3. Enables working remotely (or offline to a central server); from anywhere. Work can always continue regardless of the availability of the network
4. Experiences significant performance gains because work is done locally with no network latency issues or server bottlenecks
2. Permits the developer's work to be completed locally without affecting other users until the developer has completed all work
3. “Shifts" merge responsibility to the most knowledgeable developer or dedicated role, thus significantly reducing total merge effort
5. Works with your desired workflow, rather than dictating it
6. Enables point to point communication between developers, not requiring a "central server" to collaborate
3. Code Reviews and Unit Tests can be passed at a task-branch level, before merge is complete to the main line
© 2013 Codice Software
Customer Example
Software Manufacturer500 Fortune Company
• They use agile methodologies and branch per task in the development of large Operating System Components.
Increase Productivity & Ease of Adoption
1. Efficient: Plastic SCM requires 2-3 minutes a day of interaction with the developer, when other SCM’s tested required from 30-50 min per developer, only to include changes made outside de SCM tool. Plastic SCM detects changes made outside de SCM transparently.
2. Fast and efficient: Bad merges (not resolved automatically by the SCM tool) take 5min a day by the developers ,with previous system took 50min in average.
3. Easy of use and adoption: Plastic SCM Branch Explorer (the GUI) is one of the most valuable features in Plastic SCM: allows new developers to come on board, familiarize with the tools in 2-3 days, and then then do not want to work with any other one. But they thought beforehand, the previous tools they were using (/Perforce) was the best and only thing they wished to use.
Impact on Business
• In total, a project that could have last 6 months, saved 1 month. And Plastic SCM and automated processes implemented with the integration with the CI engine was the responsible.
• Developers saved more than 100min a day in just two operations made more efficient by Plastic SCM. That makes +$650K ROI in a year for 35 highly skilled developers
© 2013 Codice Software
Development Productivity gains translates into business metrics
- Time to Market • Less time to update/integrate device code -> More updated
devices to market• Delivering more updated Smartphones to operators
+ SLA with customers• Support to Parallel development for multiple customers• Flexible Change Management increasing quality and flexibility
.
COMPANY CONFIDENTIAL
© 2013 Codice Software
Some Customer Deployments
Pantech, Korea’s second-largest mobile phone manufacturer
Seeking to deliver better and faster releases of Android Phones to market. The company’s current SCM was expensive to maintain, too slow, and couldn’t scale with the company’s plans to double in size in the next year. Pantech decided to switch SCMs. With Plastic SCM, Pantech was able to manage huge merges with +250,000 files and thousands of directories in minutes, with minimal conflicts to resolve, and scale the distributed repository structure as the company grew with a master repository.
HP’s Healthcare Information System Software Division
Turned to Codice Software’s Plastic SCM to help manage the division’s four million lines of code and 50 active branches distributed among under several repositories and two different version control systems. Although the team could create branches with CVS, merging was cumbersome and prone to errors, therefore it was minimized. By implementing Plastic SCM, HP was able to integrate all of its repositories under one version control system and utilize effective branching and merging faster and more frequently.
Mobile Game Studio - Digital Legends Entertainment
Chose Codice Software’s Plastic SCM as the company struggled to manage a distributed team and to keep pace with the increasing numbers of game releases, formats and distribution channels that have become necessary to compete in the fast-growing gaming market. Codice Software and Digital Legends Entertainment worked together to create a version of Plastic SCM that was tailored to the needs of game developers. The end product, entitled Plastic SCM for Game Developers, combines efficient branching and merging capabilities with improved tools and capabilities, enabling designers, coders, and artists to work cooperatively and, ultimately, shorten development cycles so game projects can hit the market faster.
COMPANY CONFIDENTIAL
© 2013 Codice Software
INTRODUCING PLASTIC SCM: THE DVCS FOR THE ENTERPRISE
© 2013 Codice Software
The Only Commercial Enterprise Distributed
Version Control Systems (DVCS) for Teams of Any
Size, Enabling Parallel and Distributed
Development that works
Introducing Plastic SCMBranching and Merging is GOOD!
“The Cadillac of the SCM’s”eWeek editor Jeff Cogswell published on July 27, 2012Plastic SCM Pays Attention to Detail in Source Code Management
The Coolness that is Plastic SCM (MSDN Blog reference, December 5, 2011)http://blogs.msdn.com/b/saveenr/archive/2011/12/03/the-coolness-that-is-plastic-scm.aspx
“Codice provides a solid platform that supports DVCS and provides a strong set of tools for managing the source tree that is lacking in open-source solutions”Gartner Cool Vendors in Application Development -Apr. 2011
© 2013 Codice Software
Plastic SCM is Different Because…
1. Fully Distributed or Centralized Repositories2. Branching and Merging Made Simple & Powerful3. Rich Graphical User Interface or Straight CLI4. Security Management of the Source Code5. Reliable & Scalable Repositories Storage with the
RDBMS of Your Choice
© 2013 Codice Software
Plastic SCM embraces Open Standards and Drives Innovation
Initiative Explanation
Open: Plastic SCM GitSync
• Plastic SCM GitSync launched in March 2013, http://plasticscm.com/gitsync/index.htm
• Plastic SCM users can now interact natively with Git repositories, including direct connection with github, bitbucked or codeplex
Innovation: Plastic SCM is launching a “Semantic Merge”
• “Semantic Merge“ is a unique language aware merge technology (launched in April 2013) www.semanticmerge.com
• Semantic merge, among other benefits, will facilitate and automate software refactors, even the most complex ones that require today a lot of manual work.
Excellence: Plastic SCM has the strongest merge technology
• Plastic SCM provides the strongest merge technology, several steps ahead from competitors.
• No other version control, including ClearCase, Perforce and Git, can compare to the merge capabilities provided by Plastic SCM: this increase productivity and increase software quality
• http://www.plasticscm.com/mergemachine/index.html
© 2013 Codice Software
Providing Value to Different Roles
For developers who love the freedom of distributed and simple branching and merging
For managers who lead distributed teams, manage access and understand project status
For release builders who need to create stable software releases
© 2013 Codice Software
Some Customers Worldwide
© 2013 Codice Software
Codice Software in US Developer’s Press First Half of 2013
Jeff Cogswell
Plastic SCM is the Cadillac of the SCM’s
Adrian Bridgwater
Heavy Refactoring In Parallel? No Problem.
Semantic Merge World's: First 'Language-Aware' Source Code Merge Tool
Eric Caoili
Plastic SCM 4.0 solution for game developers, designed in
collaboration with Digital Legends Entertainment”
Anand Narayanaswamy
GitSync for Plastic SCM with Native Git Protocols and
Visual Studio 2012 SupportPlastic SCM to push and pull
code changes to not only GitHub but also Codeplex,
BitBucket or any Git server
Alex Handy
As GDC opened on March 25, Codice announced a new tool that allows this SCM system
to integrate with Git repositories
WireNews
Codice Software Launches First Language-Aware Source
Code Merge Tool
© 2013 Codice Software
Codice Software Core Values
1. Proven Technology• Leading DVCS implementation for Enterprises• 50 man years development • Key Enterprise references
2. Customer Focused• Flexible to customer improvement demands • Professional support and quick turn around • Assistance in the deployment and to improve
the development processes.
3. Strive for Excellence • Experienced, professional and passionate team fully dedicated to make the best DVCS.
© 2013 Codice Software
Thank you…
You may contact us at sales@codicesoftware.com
Francisco MonteverdeCEO Codice Softwarefm@codicesoftware.com
Recommended