28
© 2013 Codice Software How DVCS can reduce your development costs and enhance productivity Francisco Monteverde CEO Codice Software [email protected] @plasticscm www.plasticscm.com David Anderson Business Developer Codice Software danderson@codicesoftware .com

How dvcs can reduce your development costs and enhance productivity

Embed Size (px)

DESCRIPTION

Software development is today more complex than ever, tools like Version Control, mainly a commodity few years ago, are becoming not only essential but strategic to be able to cope with development and application delivery challenges. For example: to build and deliver applications to any device or UI and in a continuous delivery mode, integrating components coming from different sources to build your application or service, etc. This presentation will help you understand how the Distributed Version Control Systems (DVCS) are helping to respond to these challenges while increasing productivity, reduce cost and enhancing software quality. Watch the recorded webinar :http://bit.ly/16kA08K

Citation preview

Page 1: How dvcs can reduce your development costs and enhance productivity

© 2013 Codice Software

How DVCS can reduce your development costs

and enhance productivity

Francisco Monteverde

CEO Codice [email protected]

@plasticscm www.plasticscm.com

David AndersonBusiness Developer

Codice [email protected]

Page 2: How dvcs can reduce your development costs and enhance productivity

© 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

Page 3: How dvcs can reduce your development costs and enhance productivity

© 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… …

Page 4: How dvcs can reduce your development costs and enhance productivity

© 2013 Codice Software

VERSION CONTROL IS AN ESSENTIAL FUNCTION WITHIN SOFTWARE DEVELOPMENT

Page 5: How dvcs can reduce your development costs and enhance productivity

© 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)

Page 6: How dvcs can reduce your development costs and enhance productivity

© 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

Page 7: How dvcs can reduce your development costs and enhance productivity

© 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

Page 8: How dvcs can reduce your development costs and enhance productivity

© 2013 Codice Software

WHAT’S THE PROBLEM WITH VERSION CONTROL?

Page 9: How dvcs can reduce your development costs and enhance productivity

© 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

Page 10: How dvcs can reduce your development costs and enhance productivity

© 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

Page 11: How dvcs can reduce your development costs and enhance productivity

© 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

Page 12: How dvcs can reduce your development costs and enhance productivity

© 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

Page 13: How dvcs can reduce your development costs and enhance productivity

© 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

Page 14: How dvcs can reduce your development costs and enhance productivity

© 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

Page 15: How dvcs can reduce your development costs and enhance productivity

© 2013 Codice Software

REDUCING COSTS, INCREASING PRODUCTIVITY & QUALITY

Page 16: How dvcs can reduce your development costs and enhance productivity

© 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

Page 17: How dvcs can reduce your development costs and enhance productivity

© 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

Page 18: How dvcs can reduce your development costs and enhance productivity

© 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

Page 19: How dvcs can reduce your development costs and enhance productivity

© 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

Page 20: How dvcs can reduce your development costs and enhance productivity

© 2013 Codice Software

INTRODUCING PLASTIC SCM: THE DVCS FOR THE ENTERPRISE

Page 21: How dvcs can reduce your development costs and enhance productivity

© 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

Page 22: How dvcs can reduce your development costs and enhance productivity

© 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

Page 23: How dvcs can reduce your development costs and enhance productivity

© 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

Page 24: How dvcs can reduce your development costs and enhance productivity

© 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

Page 25: How dvcs can reduce your development costs and enhance productivity

© 2013 Codice Software

Some Customers Worldwide

Page 26: How dvcs can reduce your development costs and enhance productivity

© 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

Page 27: How dvcs can reduce your development costs and enhance productivity

© 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.

Page 28: How dvcs can reduce your development costs and enhance productivity

© 2013 Codice Software

Thank you…

You may contact us at [email protected]

Francisco MonteverdeCEO Codice [email protected]