SlideShare a Scribd company logo
agile software development & services
OOSCM
Object Oriented SCM
SCM Next Generation
We’d like to declare…
Barcelona
The SCM Conference
Why?
▶ Colin Putney’s Monticello 2
– “Merging is the most important feature of an SCM”
▶ Veronica Urquillaz-Gomez
– Torch: Code review before integration
▶ Fernando Olivero
– Reify the programmer an his “unit of work”
▶ Dale Henrichs and Mariano Martinez Peck
– Metacello
▶ And at the same time as this talk Alan Knigth
– Taking about Store
We NEED a BETTER SCM tool
What are we going to talk about
OOSCM
▶ A new SCM concept
▶ WHY?
– Current tools do not fulfill our goals
– Current tools have conceptually different approaches to
solve SCM that our idea
– We want to promote Smalltalk
Motivation 1
▶ I want to know
– where a change was integrated
– By who and when
– On what versions
– What were the changes made to that code during
integration
– Provide feedback to the programmer at all levels
(method, class, etc)
Motivation 2
▶ Did all the test run after implementing that
change?
– The programmer should run all tests before submitting
the change to integration
▶ Does the change provide new tests?
Motivation 3
▶ We don’t want this to be an integration conflict
Object subclass: #Class1
instanceVariableNames: ‘’
Object subclass: #Class1
instanceVariableNames: ‘a’
Object subclass: #Class1
instanceVariableNames: ‘b’
V1
V1.1 V1.2
Integration Conflict!
Motivation 4
▶ I want the decisions I made during the pre-
integration code review to be applied during
integration
– Reformat the code
– Do not integrate this method
Motivation 5
Baseline
Integration
1.2
-unit
-amount
-asMeters
-convertTo: aDistanceUnit
DistanceMeasure
1.0.0
-unit
-amount
-asMeters
-convertTo: aDistanceUnit
Measure
1.0
-unit
-amount
-asMeters
Measure
1.1
-unit
-amount
-asMeters
DistanceMeasure
method added
class renamed
Motivation 6
▶ Seaside releases version 3.1 that includes lots of
method renames
– I want the system to tell me there is a new version
– I decided Patagonia should work with seaside 3.1!!
• I can’t because I have to do the rename
myself in Patagonia!
• Why not applying those renames to
Patagonia automatically?
Motivation 7
▶ How do I know if programmers are doing TDD or
just testing?
– Writing the test first really
▶ How do I know the system architecture and its
evolution?
– Maven in Java, but can not see its evolution or internal
architecture, only dependencies.
What can we do with the current
tools?
Traditional SCM
Requirements Traditional SCM (SVN, Git, etc)
MANAGE CHANGE LIFECYCLE NO
CHANGE QUALITY NO
SMART AUTOMATIC INTEGRATION NO
PRE-INTEGRATION TOOLS NO
AUTOMATIC REFACTORING INTEGRATION NO
AUTOMATIC UPGRADE NO
QUERY THE REPOSITORY NO (there is no model)
Traditional SCM
▶ Archive oriented: Archive is the minimun
trackeable item
– Between commit changes are lost! (lost of information)
– Not easy to track group of changes
▶ No reification of what a module is, what a system
is, etc. Just files and directories
▶ Not easy to model the development process
– It has to be defined from outside the tool
▶ Good for versioning files, not so for OO
development
▶ Advantages:
– Simple interface
– Can work offline
Monticello/Metacello
Requirements Monticello/Metacello
MANAGE CHANGE LIFECYCLE NO
CHANGE QUALITY NO
SMART AUTOMATIC INTEGRATION Medium
PRE-INTEGRATION TOOLS Torch
AUTOMATIC REFACTORING INTEGRATION NO
AUTOMATIC UPGRADE NO
QUERY THE REPOSITORY Yes (But limited to the info it stores)
Monticello / Metacello
▶ As traditional SCM, only “commits” are saved
– Between commit changes are lost
▶ Metacello helps to model the system architecture
▶ But it does not help to
– model the development group
– Integrate different development lines
– See the integration history (evolution)
▶ Advantages:
– Simple
– Can be use offline
– Metacello provides tools that allow to use it easily
Store *
Requirements Store
MANAGE CHANGE LIFECYCLE NO
CHANGE QUALITY NO (could be added)
SMART AUTOMATIC INTEGRATION Not sure
PRE-INTEGRATION TOOLS Medium
AUTOMATIC REFACTORING INTEGRATION NO
AUTOMATIC UPGRADE NO
QUERY THE REPOSITORY Yes (But limited to the info it stores)
* We do not have experience with Store, so this could be wrong
ENVY
Requirements ENVY
MANAGE CHANGE LIFECYCLE NO
CHANGE QUALITY NO (could be added, in fact we did it)
SMART AUTOMATIC INTEGRATION NO (we did it)
PRE-INTEGRATION TOOLS Three way Differences
AUTOMATIC REFACTORING INTEGRATION NO
AUTOMATIC UPGRADE NO
QUERY THE REPOSITORY Yes *
▶ New objects can be added to the repository
ENVY
▶ Trackable items are methods, classes, modules
(application) and systems (configuration maps)
▶ Between commit (versioning) changes are saved
▶ Easy to see method, class and module history
▶ Not so easy to see the system history
▶ Kind of difficult for agile development (unless you
remove security, etc)
▶ No reification of programmers changes
▶ No automatic integration (unless you develop it)
ENVY
▶ Disadvantages:
– Proprietary
– Old server technology
– Complex implementation
– Only for Smalltalk
▶ The best one we have used so far
OOSCM
Proof of concept
Manage change lifecycle
Manage change lifecycle
Manage change lifecycle
Change Quality
Change Quality
Change Quality
Smart Automatic Integration
Smart Automatic Integration
Smart Automatic Integration
OOSCM
The solution…
OOSCM Goals
▶ SCM oriented to development with Objects
– Paradigm shift from traditional SCM
▶ Easy to track programmers work
▶ Easy to track system evolution
– Be able to model system architecture
▶ Automatic Integration
– Smart
– Easy to integrate complex changes (i.e. refactorings)
▶ Upgrades
– Automatic upgrading
▶ Not only for Smalltalk:
– Planned: Java with Eclipse
– Open to other languages
Architecture
▶ Client-Server
▶ REST
▶ Multi-repository
▶ Offline support
▶ IDE Client: Plug-In Architecture
▶ WebBrowser support
Details
▶ Technology:
– Developed with Pharo
– Production: GLASS
▶ Project:
– Subsidy of the Argentine Ministry of Technology (USD 38 K)
– Total time: 13 months (with out refactoring integration)
– We just started
▶ License:
– Not sure, open client, close server?
– Open for Smalltalk, paid for other languages?
– Based on projects, customers, SaaS?
Suggestions – Help – Support - Ideas
agile software development & services
Thank you!
info@10pines.com
www.10Pines.com
twitter: @10Pines
Hernan Wilkinson
hernan.wilkinson@10pines.com
Jorge Silva
jorge.silva@10pines.com

More Related Content

PPT
Los diez mandamientos de TDD
PPT
The ten commandments of TDD
PDF
Introduction to test automation in java and php
PPTX
Exceptions: Why, When, How and Where!
ODP
Presentation Unit Testing process
PDF
PHPUnit with Magento
PPTX
Test driven development in .Net - 2010 + Eclipse
DOCX
Test driven development and unit testing with examples in C++
Los diez mandamientos de TDD
The ten commandments of TDD
Introduction to test automation in java and php
Exceptions: Why, When, How and Where!
Presentation Unit Testing process
PHPUnit with Magento
Test driven development in .Net - 2010 + Eclipse
Test driven development and unit testing with examples in C++

What's hot (20)

PDF
When develpment met test(shift left testing)
PPTX
TDD in Go with Ginkgo and Gomega
PPTX
Unit Testing and TDD 2017
PPT
Google test training
PDF
Civilized Git Process
PPTX
Clean Code, Resumen Capítulo 1.
PDF
User story workflow (eng)
PPT
Lessons learned on software testing automation
PPTX
Unit testing
PPTX
Selenium TestNG
PDF
Test Driven Development en Go con Ginkgo y Gomega
PPTX
Joomla! JavaScript Testing
PPTX
РОМАН ЯКИМЧУК «Оптимізація QA процесів» Kyiv QADay 2021
ODP
Good coding-style, a talk made in 2008 to encourage changes in MySQL coding s...
PPTX
Podstawy testowania oprogramowania
PDF
Codzienna praca testerki oprogramowania
PDF
TDD python ne-april-2014
PDF
Python and test
PPTX
The problem with tdd
PDF
Test Driven Development in Python
When develpment met test(shift left testing)
TDD in Go with Ginkgo and Gomega
Unit Testing and TDD 2017
Google test training
Civilized Git Process
Clean Code, Resumen Capítulo 1.
User story workflow (eng)
Lessons learned on software testing automation
Unit testing
Selenium TestNG
Test Driven Development en Go con Ginkgo y Gomega
Joomla! JavaScript Testing
РОМАН ЯКИМЧУК «Оптимізація QA процесів» Kyiv QADay 2021
Good coding-style, a talk made in 2008 to encourage changes in MySQL coding s...
Podstawy testowania oprogramowania
Codzienna praca testerki oprogramowania
TDD python ne-april-2014
Python and test
The problem with tdd
Test Driven Development in Python
Ad

Viewers also liked (20)

PPT
Arithmetic with measures on dynamically typed object oriented languages
PPT
Confianza+Participación+Transparencia= Refactorizando la empresa
PPT
Objects: The Misunderstood Paradigm
PPT
Como hacer tdd y no morir en el intento
PDF
Growing an open participative horizontal and based on trust company
PPT
A new object oriented model of the gregorian calendar
PPT
Augmenting Smalltalk Syntax
PPT
Técnicas y herramientas para que la computadora haga más y el programador m...
PDF
Como escribir buenos tests al hacer TDD
PPT
Desarrollando sistemas con metodologías y técnicas agiles
PPT
Programming Languages and their influence in Thinking
PPTX
Reported cases on tungiasis
PDF
일본 경제를 알면 한국 미래가 보인다.
PPTX
Eliminando la brecha entre clientes y desarrolladores mediante BDD
PPT
Tdd on the rocks
PPTX
Tdd con Angular y jasmine
PPT
Refactoring a Company - 2nd Presentation
PPT
Cómo Java afecta nuestros Diseños
PPT
Encadenamiento de refactorings para generar cambios Agiles de Diseño
PPT
Programming Language Technical debt and their influence in Thinking and Desgin
Arithmetic with measures on dynamically typed object oriented languages
Confianza+Participación+Transparencia= Refactorizando la empresa
Objects: The Misunderstood Paradigm
Como hacer tdd y no morir en el intento
Growing an open participative horizontal and based on trust company
A new object oriented model of the gregorian calendar
Augmenting Smalltalk Syntax
Técnicas y herramientas para que la computadora haga más y el programador m...
Como escribir buenos tests al hacer TDD
Desarrollando sistemas con metodologías y técnicas agiles
Programming Languages and their influence in Thinking
Reported cases on tungiasis
일본 경제를 알면 한국 미래가 보인다.
Eliminando la brecha entre clientes y desarrolladores mediante BDD
Tdd on the rocks
Tdd con Angular y jasmine
Refactoring a Company - 2nd Presentation
Cómo Java afecta nuestros Diseños
Encadenamiento de refactorings para generar cambios Agiles de Diseño
Programming Language Technical debt and their influence in Thinking and Desgin
Ad

Similar to Obejct Oriented SCM - OOSCM (20)

PPTX
OOSCM. Object Oriented SCM
PDF
The magic ingredient for successful automation - Chapter 2
PDF
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
PPTX
Dev Ops for systems of record - Talk at Agile Australia 2015
PDF
Best Informatica Training Form myTectra in Bangalore
PDF
TomaszPoszytek_ALM-Fundamentals_SS2023.pdf
PPTX
Best Practices for Enterprise Continuous Delivery of Oracle Fusion Middlewa...
PDF
Software archiecture lecture08
PPTX
SDLC and Software Process Models
PPTX
Building an OpenMRS Distribution - Lessons from KenyaEMR
PDF
Singapore MuleSoft Meetup - 23 Nov 2022
PDF
Life cycle models cccccccccccccccccccccccccccccccccccccccccccccccc.pdf
PDF
System Development Life Cycle ( Sdlc )
PDF
Software Process Models
PDF
Online examination management system..pdf
PPTX
India Agile Week 2015
PPTX
Tools and practices to use in a Continuous Delivery pipeline
PDF
Real World AngularJS recipes: beyond TodoMVC
PDF
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
PPTX
Mule soft meetup__adelaide_october_2020_final (2)
OOSCM. Object Oriented SCM
The magic ingredient for successful automation - Chapter 2
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Dev Ops for systems of record - Talk at Agile Australia 2015
Best Informatica Training Form myTectra in Bangalore
TomaszPoszytek_ALM-Fundamentals_SS2023.pdf
Best Practices for Enterprise Continuous Delivery of Oracle Fusion Middlewa...
Software archiecture lecture08
SDLC and Software Process Models
Building an OpenMRS Distribution - Lessons from KenyaEMR
Singapore MuleSoft Meetup - 23 Nov 2022
Life cycle models cccccccccccccccccccccccccccccccccccccccccccccccc.pdf
System Development Life Cycle ( Sdlc )
Software Process Models
Online examination management system..pdf
India Agile Week 2015
Tools and practices to use in a Continuous Delivery pipeline
Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
Mule soft meetup__adelaide_october_2020_final (2)

More from Hernan Wilkinson (16)

PDF
Hacia una síntesis de diseño a partir de entender qué es modelar con software
PDF
Live Typing - California Smalltalkers
PDF
Buenos Aires vs. (London vs. Chicago) Agiles 2020
PPTX
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
PPTX
LiveTyping: Update and What is next
PPTX
Cuis smalltalk past present and future
PPTX
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
PPTX
El Desarrollo de Software como debería Ser - PyConAr 2018
PPTX
Lessons Learned Implementing Refactorings
PPTX
Dynamic Type Information
PPTX
El Desarrollo de Software como debería Ser - Nerdear.la 2018
PDF
El Desarrollo de Software como debería Ser
PPTX
TDD & Refactoring
PPTX
Go/Ruby/Java: What's next?
PPTX
CuisUniversity
PPTX
Oop is not Dead
Hacia una síntesis de diseño a partir de entender qué es modelar con software
Live Typing - California Smalltalkers
Buenos Aires vs. (London vs. Chicago) Agiles 2020
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping: Update and What is next
Cuis smalltalk past present and future
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
El Desarrollo de Software como debería Ser - PyConAr 2018
Lessons Learned Implementing Refactorings
Dynamic Type Information
El Desarrollo de Software como debería Ser - Nerdear.la 2018
El Desarrollo de Software como debería Ser
TDD & Refactoring
Go/Ruby/Java: What's next?
CuisUniversity
Oop is not Dead

Recently uploaded (20)

PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PDF
Nekopoi APK 2025 free lastest update
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Complete Guide to Website Development in Malaysia for SMEs
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
AutoCAD Professional Crack 2025 With License Key
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Operating system designcfffgfgggggggvggggggggg
Oracle Fusion HCM Cloud Demo for Beginners
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Nekopoi APK 2025 free lastest update
Salesforce Agentforce AI Implementation.pdf
Download FL Studio Crack Latest version 2025 ?
Design an Analysis of Algorithms II-SECS-1021-03
Designing Intelligence for the Shop Floor.pdf
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
Wondershare Filmora 15 Crack With Activation Key [2025
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Reimagine Home Health with the Power of Agentic AI​
Advanced SystemCare Ultimate Crack + Portable (2025)
Complete Guide to Website Development in Malaysia for SMEs
How to Choose the Right IT Partner for Your Business in Malaysia
AutoCAD Professional Crack 2025 With License Key

Obejct Oriented SCM - OOSCM

  • 1. agile software development & services OOSCM Object Oriented SCM SCM Next Generation
  • 2. We’d like to declare… Barcelona The SCM Conference
  • 3. Why? ▶ Colin Putney’s Monticello 2 – “Merging is the most important feature of an SCM” ▶ Veronica Urquillaz-Gomez – Torch: Code review before integration ▶ Fernando Olivero – Reify the programmer an his “unit of work” ▶ Dale Henrichs and Mariano Martinez Peck – Metacello ▶ And at the same time as this talk Alan Knigth – Taking about Store
  • 4. We NEED a BETTER SCM tool
  • 5. What are we going to talk about OOSCM ▶ A new SCM concept ▶ WHY? – Current tools do not fulfill our goals – Current tools have conceptually different approaches to solve SCM that our idea – We want to promote Smalltalk
  • 6. Motivation 1 ▶ I want to know – where a change was integrated – By who and when – On what versions – What were the changes made to that code during integration – Provide feedback to the programmer at all levels (method, class, etc)
  • 7. Motivation 2 ▶ Did all the test run after implementing that change? – The programmer should run all tests before submitting the change to integration ▶ Does the change provide new tests?
  • 8. Motivation 3 ▶ We don’t want this to be an integration conflict Object subclass: #Class1 instanceVariableNames: ‘’ Object subclass: #Class1 instanceVariableNames: ‘a’ Object subclass: #Class1 instanceVariableNames: ‘b’ V1 V1.1 V1.2 Integration Conflict!
  • 9. Motivation 4 ▶ I want the decisions I made during the pre- integration code review to be applied during integration – Reformat the code – Do not integrate this method
  • 10. Motivation 5 Baseline Integration 1.2 -unit -amount -asMeters -convertTo: aDistanceUnit DistanceMeasure 1.0.0 -unit -amount -asMeters -convertTo: aDistanceUnit Measure 1.0 -unit -amount -asMeters Measure 1.1 -unit -amount -asMeters DistanceMeasure method added class renamed
  • 11. Motivation 6 ▶ Seaside releases version 3.1 that includes lots of method renames – I want the system to tell me there is a new version – I decided Patagonia should work with seaside 3.1!! • I can’t because I have to do the rename myself in Patagonia! • Why not applying those renames to Patagonia automatically?
  • 12. Motivation 7 ▶ How do I know if programmers are doing TDD or just testing? – Writing the test first really ▶ How do I know the system architecture and its evolution? – Maven in Java, but can not see its evolution or internal architecture, only dependencies.
  • 13. What can we do with the current tools?
  • 14. Traditional SCM Requirements Traditional SCM (SVN, Git, etc) MANAGE CHANGE LIFECYCLE NO CHANGE QUALITY NO SMART AUTOMATIC INTEGRATION NO PRE-INTEGRATION TOOLS NO AUTOMATIC REFACTORING INTEGRATION NO AUTOMATIC UPGRADE NO QUERY THE REPOSITORY NO (there is no model)
  • 15. Traditional SCM ▶ Archive oriented: Archive is the minimun trackeable item – Between commit changes are lost! (lost of information) – Not easy to track group of changes ▶ No reification of what a module is, what a system is, etc. Just files and directories ▶ Not easy to model the development process – It has to be defined from outside the tool ▶ Good for versioning files, not so for OO development ▶ Advantages: – Simple interface – Can work offline
  • 16. Monticello/Metacello Requirements Monticello/Metacello MANAGE CHANGE LIFECYCLE NO CHANGE QUALITY NO SMART AUTOMATIC INTEGRATION Medium PRE-INTEGRATION TOOLS Torch AUTOMATIC REFACTORING INTEGRATION NO AUTOMATIC UPGRADE NO QUERY THE REPOSITORY Yes (But limited to the info it stores)
  • 17. Monticello / Metacello ▶ As traditional SCM, only “commits” are saved – Between commit changes are lost ▶ Metacello helps to model the system architecture ▶ But it does not help to – model the development group – Integrate different development lines – See the integration history (evolution) ▶ Advantages: – Simple – Can be use offline – Metacello provides tools that allow to use it easily
  • 18. Store * Requirements Store MANAGE CHANGE LIFECYCLE NO CHANGE QUALITY NO (could be added) SMART AUTOMATIC INTEGRATION Not sure PRE-INTEGRATION TOOLS Medium AUTOMATIC REFACTORING INTEGRATION NO AUTOMATIC UPGRADE NO QUERY THE REPOSITORY Yes (But limited to the info it stores) * We do not have experience with Store, so this could be wrong
  • 19. ENVY Requirements ENVY MANAGE CHANGE LIFECYCLE NO CHANGE QUALITY NO (could be added, in fact we did it) SMART AUTOMATIC INTEGRATION NO (we did it) PRE-INTEGRATION TOOLS Three way Differences AUTOMATIC REFACTORING INTEGRATION NO AUTOMATIC UPGRADE NO QUERY THE REPOSITORY Yes * ▶ New objects can be added to the repository
  • 20. ENVY ▶ Trackable items are methods, classes, modules (application) and systems (configuration maps) ▶ Between commit (versioning) changes are saved ▶ Easy to see method, class and module history ▶ Not so easy to see the system history ▶ Kind of difficult for agile development (unless you remove security, etc) ▶ No reification of programmers changes ▶ No automatic integration (unless you develop it)
  • 21. ENVY ▶ Disadvantages: – Proprietary – Old server technology – Complex implementation – Only for Smalltalk ▶ The best one we have used so far
  • 33. OOSCM Goals ▶ SCM oriented to development with Objects – Paradigm shift from traditional SCM ▶ Easy to track programmers work ▶ Easy to track system evolution – Be able to model system architecture ▶ Automatic Integration – Smart – Easy to integrate complex changes (i.e. refactorings) ▶ Upgrades – Automatic upgrading ▶ Not only for Smalltalk: – Planned: Java with Eclipse – Open to other languages
  • 34. Architecture ▶ Client-Server ▶ REST ▶ Multi-repository ▶ Offline support ▶ IDE Client: Plug-In Architecture ▶ WebBrowser support
  • 35. Details ▶ Technology: – Developed with Pharo – Production: GLASS ▶ Project: – Subsidy of the Argentine Ministry of Technology (USD 38 K) – Total time: 13 months (with out refactoring integration) – We just started ▶ License: – Not sure, open client, close server? – Open for Smalltalk, paid for other languages? – Based on projects, customers, SaaS?
  • 36. Suggestions – Help – Support - Ideas
  • 37. agile software development & services Thank you! info@10pines.com www.10Pines.com twitter: @10Pines Hernan Wilkinson hernan.wilkinson@10pines.com Jorge Silva jorge.silva@10pines.com