SlideShare une entreprise Scribd logo
1  sur  37
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

Contenu connexe

Tendances

When develpment met test(shift left testing)
When develpment met test(shift left testing)When develpment met test(shift left testing)
When develpment met test(shift left testing)SangIn Choung
 
TDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaTDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaEddy Reyes
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017Xavi Hidalgo
 
Google test training
Google test trainingGoogle test training
Google test trainingThierry Gayet
 
Civilized Git Process
Civilized Git ProcessCivilized Git Process
Civilized Git ProcessTu Hoang
 
Lessons learned on software testing automation
Lessons learned on software testing automationLessons learned on software testing automation
Lessons learned on software testing automationgaoliang641
 
Test Driven Development en Go con Ginkgo y Gomega
Test Driven Development en Go con Ginkgo y GomegaTest Driven Development en Go con Ginkgo y Gomega
Test Driven Development en Go con Ginkgo y GomegaSoftware Guru
 
РОМАН ЯКИМЧУК «Оптимізація QA процесів» Kyiv QADay 2021
РОМАН ЯКИМЧУК «Оптимізація QA процесів» Kyiv QADay 2021РОМАН ЯКИМЧУК «Оптимізація QA процесів» Kyiv QADay 2021
РОМАН ЯКИМЧУК «Оптимізація QA процесів» Kyiv QADay 2021GoQA
 
Good coding-style, a talk made in 2008 to encourage changes in MySQL coding s...
Good coding-style, a talk made in 2008 to encourage changes in MySQL coding s...Good coding-style, a talk made in 2008 to encourage changes in MySQL coding s...
Good coding-style, a talk made in 2008 to encourage changes in MySQL coding s...Kostja Osipov
 
TDD python ne-april-2014
TDD python ne-april-2014TDD python ne-april-2014
TDD python ne-april-2014Alex Kavanagh
 
The problem with tdd
The problem with tddThe problem with tdd
The problem with tddDror Helper
 
Test Driven Development in Python
Test Driven Development in PythonTest Driven Development in Python
Test Driven Development in PythonAnoop Thomas Mathew
 

Tendances (20)

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

En vedette

Arithmetic with measures on dynamically typed object oriented languages
Arithmetic with measures on dynamically typed object oriented languagesArithmetic with measures on dynamically typed object oriented languages
Arithmetic with measures on dynamically typed object oriented languagesHernan Wilkinson
 
Confianza+Participación+Transparencia= Refactorizando la empresa
Confianza+Participación+Transparencia= Refactorizando la empresaConfianza+Participación+Transparencia= Refactorizando la empresa
Confianza+Participación+Transparencia= Refactorizando la empresaHernan Wilkinson
 
Objects: The Misunderstood Paradigm
Objects: The Misunderstood ParadigmObjects: The Misunderstood Paradigm
Objects: The Misunderstood ParadigmHernan Wilkinson
 
Como hacer tdd y no morir en el intento
Como hacer tdd y no morir en el intentoComo hacer tdd y no morir en el intento
Como hacer tdd y no morir en el intentoHernan Wilkinson
 
Growing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust companyGrowing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust companyHernan Wilkinson
 
A new object oriented model of the gregorian calendar
A new object oriented model of the gregorian calendarA new object oriented model of the gregorian calendar
A new object oriented model of the gregorian calendarHernan Wilkinson
 
Augmenting Smalltalk Syntax
Augmenting Smalltalk SyntaxAugmenting Smalltalk Syntax
Augmenting Smalltalk SyntaxHernan Wilkinson
 
Técnicas y herramientas para que la computadora haga más y el programador m...
Técnicas y herramientas para que la computadora haga más y el programador m...Técnicas y herramientas para que la computadora haga más y el programador m...
Técnicas y herramientas para que la computadora haga más y el programador m...Hernan Wilkinson
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDHernan Wilkinson
 
Desarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agilesDesarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agilesHernan Wilkinson
 
Programming Languages and their influence in Thinking
Programming Languages and their influence in ThinkingProgramming Languages and their influence in Thinking
Programming Languages and their influence in ThinkingHernan Wilkinson
 
Reported cases on tungiasis
Reported cases on tungiasisReported cases on tungiasis
Reported cases on tungiasisSabila Azam
 
일본 경제를 알면 한국 미래가 보인다.
일본 경제를 알면 한국 미래가 보인다. 일본 경제를 알면 한국 미래가 보인다.
일본 경제를 알면 한국 미래가 보인다. a7309dcb
 
Eliminando la brecha entre clientes y desarrolladores mediante BDD
Eliminando la brecha entre clientes y desarrolladores mediante BDDEliminando la brecha entre clientes y desarrolladores mediante BDD
Eliminando la brecha entre clientes y desarrolladores mediante BDDJorge Gamba
 
Refactoring a Company - 2nd Presentation
Refactoring a Company - 2nd PresentationRefactoring a Company - 2nd Presentation
Refactoring a Company - 2nd PresentationHernan Wilkinson
 
Cómo Java afecta nuestros Diseños
Cómo Java afecta nuestros DiseñosCómo Java afecta nuestros Diseños
Cómo Java afecta nuestros DiseñosHernan Wilkinson
 
Encadenamiento de refactorings para generar cambios Agiles de Diseño
Encadenamiento de refactorings para generar cambios Agiles de DiseñoEncadenamiento de refactorings para generar cambios Agiles de Diseño
Encadenamiento de refactorings para generar cambios Agiles de DiseñoHernan Wilkinson
 
Programming Language Technical debt and their influence in Thinking and Desgin
Programming Language Technical debt and their influence in Thinking and DesginProgramming Language Technical debt and their influence in Thinking and Desgin
Programming Language Technical debt and their influence in Thinking and DesginHernan Wilkinson
 

En vedette (20)

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

Similaire à Obejct Oriented SCM - OOSCM

OOSCM. Object Oriented SCM
OOSCM. Object Oriented SCMOOSCM. Object Oriented SCM
OOSCM. Object Oriented SCMESUG
 
The magic ingredient for successful automation - Chapter 2
The magic ingredient for successful automation - Chapter 2The magic ingredient for successful automation - Chapter 2
The magic ingredient for successful automation - Chapter 2Bonitasoft
 
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporaçõesLuiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporaçõesAgile Trends
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Mirco Hering
 
TomaszPoszytek_ALM-Fundamentals_SS2023.pdf
TomaszPoszytek_ALM-Fundamentals_SS2023.pdfTomaszPoszytek_ALM-Fundamentals_SS2023.pdf
TomaszPoszytek_ALM-Fundamentals_SS2023.pdfTomasz Poszytek
 
Software archiecture lecture08
Software archiecture   lecture08Software archiecture   lecture08
Software archiecture lecture08Luktalja
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process ModelsNana Sarpong
 
Building an OpenMRS Distribution - Lessons from KenyaEMR
Building an OpenMRS Distribution - Lessons from KenyaEMRBuilding an OpenMRS Distribution - Lessons from KenyaEMR
Building an OpenMRS Distribution - Lessons from KenyaEMRrowanseymour
 
Singapore MuleSoft Meetup - 23 Nov 2022
Singapore MuleSoft Meetup - 23 Nov 2022Singapore MuleSoft Meetup - 23 Nov 2022
Singapore MuleSoft Meetup - 23 Nov 2022Royston Lobo
 
Life cycle models cccccccccccccccccccccccccccccccccccccccccccccccc.pdf
Life cycle models cccccccccccccccccccccccccccccccccccccccccccccccc.pdfLife cycle models cccccccccccccccccccccccccccccccccccccccccccccccc.pdf
Life cycle models cccccccccccccccccccccccccccccccccccccccccccccccc.pdfSohamChatterjee47
 
System Development Life Cycle ( Sdlc )
System Development Life Cycle ( Sdlc )System Development Life Cycle ( Sdlc )
System Development Life Cycle ( Sdlc )Jennifer Wright
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
Tools and practices to use in a Continuous Delivery pipeline
Tools and practices to use in a Continuous Delivery pipelineTools and practices to use in a Continuous Delivery pipeline
Tools and practices to use in a Continuous Delivery pipelineMatteo Emili
 
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...Codemotion
 
Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCCarlo Bonamico
 
Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)Nicholas Bowman
 

Similaire à Obejct Oriented SCM - OOSCM (20)

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

Plus de Hernan Wilkinson

Hacia una síntesis de diseño a partir de entender qué es modelar con software
Hacia una síntesis de diseño a partir de entender qué es modelar con softwareHacia una síntesis de diseño a partir de entender qué es modelar con software
Hacia una síntesis de diseño a partir de entender qué es modelar con softwareHernan Wilkinson
 
Live Typing - California Smalltalkers
Live Typing - California SmalltalkersLive Typing - California Smalltalkers
Live Typing - California SmalltalkersHernan Wilkinson
 
Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020Hernan Wilkinson
 
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicosLiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicosHernan Wilkinson
 
LiveTyping: Update and What is next
LiveTyping: Update and What is nextLiveTyping: Update and What is next
LiveTyping: Update and What is nextHernan Wilkinson
 
Cuis smalltalk past present and future
Cuis smalltalk past present and futureCuis smalltalk past present and future
Cuis smalltalk past present and futureHernan Wilkinson
 
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
Live Typing- Automatic Type Annotation that improves the Programming eXperie...Live Typing- Automatic Type Annotation that improves the Programming eXperie...
Live Typing - Automatic Type Annotation that improves the Programming eXperie...Hernan Wilkinson
 
El Desarrollo de Software como debería Ser - PyConAr 2018
El Desarrollo de Software como debería Ser - PyConAr 2018El Desarrollo de Software como debería Ser - PyConAr 2018
El Desarrollo de Software como debería Ser - PyConAr 2018Hernan Wilkinson
 
Lessons Learned Implementing Refactorings
Lessons Learned Implementing RefactoringsLessons Learned Implementing Refactorings
Lessons Learned Implementing RefactoringsHernan Wilkinson
 
El Desarrollo de Software como debería Ser - Nerdear.la 2018
El Desarrollo de Software como debería Ser - Nerdear.la 2018El Desarrollo de Software como debería Ser - Nerdear.la 2018
El Desarrollo de Software como debería Ser - Nerdear.la 2018Hernan Wilkinson
 
El Desarrollo de Software como debería Ser
El Desarrollo de Software como debería SerEl Desarrollo de Software como debería Ser
El Desarrollo de Software como debería SerHernan Wilkinson
 
Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?Hernan Wilkinson
 

Plus de Hernan Wilkinson (16)

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

Dernier

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 

Dernier (20)

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 

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