SlideShare uma empresa Scribd logo
1 de 48
Get Your Project
Back In Shape!
        How
 A Few Techniques
   Can Change
Your (Project’s) Life
About me
• Founder and director of objektfabrik
• Business Informatics (Banking)
• Smalltalk since 1996
  (VA Smalltalk,VisualWorks, Squeak/Pharo)
• jtuchel@objektfabrik.de,
  joachimtuchel.wordpress.com


                     2
Some projects
• Fat Client and Web Applications in Smalltalk
  and Java
• Project Planning and Controlling
• Customer Relationship Management
• Loan & Collateral Management
• Accounting for Small Businesses (Seaside)
• Migration of VA ST Projects to V6 & 7 & 8
                      3
About objektfabrik
• Founded 1999 in Ludwigsburg, Germany
• Training, Consulting, Professional Services
• Application and System architecture
• Software Development in Smalltalk, Java,
  Ruby, Scala and Objective-C
• Instantiations Business Partner since 2006
• IBM Business Partner before that
                      4
Training Offerings
• Object Technology Basics
• Smalltalk Basics
• VA Smalltalk Application Development
• Advanced VA Smalltalk workshops
  (Packaging, Config Management, SUnit...)
• Web Application Development with Seaside
                     5
A Typical Smalltalk
   Project 2010




         6
Started in the
early to mid 90‘ies




        7
Smalltalk and OO were „new“,
  cutting edge technologies




             8
Declared as legacy
 by management




           Soon to be replaced



                     Innovation happened
                        in new projects
                      9
Still in Daily Use
                     Stable
                     Reliable
               Supports Business




        10
Happy users




    11
The Replacement
Project   ** ** **

           ***




            a few years later
                     12
The Replacement
Project B**an** N**w
          r d e


           T echnology!
             ***




              a few years later
                          12
New features -
 No budget




                 13
The Feature
          Backlog



 After 5 years
of being legacy
            14
The
 Code
Quali
     ty
          15
What to do?




     16
Use the Best Tools
    You Can!




        17
Smalltalk has
         Great Tools!
• Refactoring Browser
 • Read into existing code by improving it's
    readability
• sUnit and sUnit Browser
 • Understand existing code and prove it
 • Make sure defects don't show up again
                     18
Refactoring
       and Unit Tests

• Are two sides of the same coin
• Both are powerful
• But as a team they are a secret weapon!

                     19
More Tools
• SmallLint
  • ships with Refactoring Browser
  • Learn about code quality and improve it
• Enhanced Debugger / StsDebugger
• VA Assist Pro
  • Many „small“ enhancements, esp. in
    configuration Management

                     20
Get Everything under
  Version Control!




         21
Everything?
•   Smalltalk code
•   External files
    •   Images, DLLs,
    •   Configuration: INI-Files etc.
    •   „Integration files“
        •   jar files
        •   XML shared with other projects
•   Documentation ...

                              22
Why?
•   Keep stuff in sync with application version
•   Keep track of deliverables
    •   Within your project
    •   Between projects
•   Defined gates for artefacts between
    •   Individual developers
    •   Projects
•   Oh wait! Seems you're missing my latest changes to the
    application .ini!


                                 23
Demo
             Real World Example:
Getting rid of troubles with the application .INI




                      24
Slaughter your
 Holy Images!




      25
Problems with
         „Holy Images“
•   It ran in my Image yesterday!
•   Oh, you just have to execute a few statements
    that I've got in a Workspace somewhere...
•   Markus is not here today, I have no idea how
    to initialize the database mappings
•   We want to migrate to the latest VAST
    Version, but we can't setup an image and load
    our code into it

                        26
One Click Loading
•   Bootstrapping from an empty image
•   Turn workspaces into classes
•   Clean up load order problems
    •   Cyclic dependencies
    •   Duplicate application / map dependencies
    •   No manual unload in step 14!
•   Class methods loaded / removing

                          27
Don't keep images
• Throw away your image frequently (daily)
• You'll see if bootstrapping still works
• If it doesn't - chances are packaging won't
  work either!
• To prevent load times: provide a
  bootstrapped image every morning
• More To Come!
                      28
Adopt A
Stream Concept




      29
Streams to enable
       Parallelism
• You typically work on at least two versions
  at a time
• V2.4 currently in production – maintenance
• V2.5 beta-test at a few customers -
  maintenance
• V2.6 next release – under development
• V3.0 next major release – prototyping
                     30
Parallelism?
•   Fixes to one version potentially relevant for
    other versions
    •   Individual changes for every version
    •   Individual unit tests for every version
    •   Individual code dependencies, packaging
        requirements, external dependencies etc.
•   Separate development teams for different
    product versions

                           31
Streams: Goals
•   Isolate product versions from each other
•   But Allow „cross-release“ of Code changes
•   Keep code close together
•   All code in one Library
•   Provides context for their current work
    •   „I am currently working on 2.5“
•   „Changes Inbox“

                          32
How?
•   Dedicated Image per Stream
    •   Commandline parameter or abt.ini
•   Developers accept using stream concepts
•   Clean and easy loading of code
    •   One-Click-Loading
•   Based on Configuration Maps
    •   Required maps
    •   Top-Level Map as Inbox and entry point for loading

                             33
Tools for Streams
•   Differences Browsers
    •   What has changed in my Image compared to the
        Stream
    •   Releasing into the stream or
    •   Discard changes (load back stream version)
•   Load a Stream
    •   Current edition
    •   Selected version

                            34
Demo
Real World Example of A Stream Environment




                   35
Automate As Much As
     Possible!




         36
What can be
                 automated?
•   Loading a Stream                •   Deployment of an
                                        Application
•   Packaging an Application
                                        •   Copy stuff to/from
•   Preloading a developer                  dierectories / servers
    image
                                        •   Prepare complete
•   Unit Tests                              application folder

•   Code Quality Checks             •   Lots more...



                               37
Demo
Automatic Packaging and Deployment




               38
Continuous Integration
  These tools are the building Blocks for a CI
                 environment
Some Tips




    40
Find your own pace!




         41
Just Do It
         Many projects don't start
because they fear they'll never reach the end.




                     42
They simply Won't
    anyways!

    Because there's
 always more that you
        can do!



        43
Keep everybody
    on board



  It won't work if some team members
don't follow the same rules and principles
                   44
Get Help
Most Problems have been solved before




                 45
VA Smalltalk advanced
Programming Techniques
•   5 days intensive training and practice
    •   Monday: Programming an example application,
        Testing with sUnit
    •   Tuesday: Refactoring and sUnit, Test Driven
        Development
    •   Wednesday: Configuration Management with Envy,
        Stream concepts
    •   Thursday: Packaging a VA Smalltalk Application
    •   Friday: Questions and Answers, Wrapping Up

                             46
Questions?



                                  chel
                           im Tu g 1
                      oach erwe
                     J
                        Flied rmany
                           g, Ge ik.de
                      sbur tfabr
                 dwig bjek
            40 Lu el@o
         716 tuch              tfabr ik.de
              j          bjek
                  w ww.o
    47

Mais conteúdo relacionado

Mais procurados

Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
mfrancis
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008
rajivmordani
 

Mais procurados (20)

The Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial InstitutionThe Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial Institution
 
Discover Qt Learning and Certification
Discover Qt Learning and CertificationDiscover Qt Learning and Certification
Discover Qt Learning and Certification
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
 
Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics
 
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
 
TDD anche su iOS
TDD anche su iOSTDD anche su iOS
TDD anche su iOS
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and Infrastructure
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
 
No, we can't do continuous delivery
No, we can't do continuous deliveryNo, we can't do continuous delivery
No, we can't do continuous delivery
 
Programmer Anarchy and Managerless Processes
Programmer Anarchy and Managerless ProcessesProgrammer Anarchy and Managerless Processes
Programmer Anarchy and Managerless Processes
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Run stuff, Deploy Stuff
Run stuff, Deploy StuffRun stuff, Deploy Stuff
Run stuff, Deploy Stuff
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid Innovation
 
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFIBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
 
Moby is killing your devops efforts
Moby is killing your devops effortsMoby is killing your devops efforts
Moby is killing your devops efforts
 
Simple Pure Java
Simple Pure JavaSimple Pure Java
Simple Pure Java
 
Devops 101 QA with Kris Buytaert
Devops 101 QA  with Kris BuytaertDevops 101 QA  with Kris Buytaert
Devops 101 QA with Kris Buytaert
 
Continous Delivery of your Infrastructure
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your Infrastructure
 

Destaque

Motivational presentation
Motivational presentationMotivational presentation
Motivational presentation
EUMADI1443
 
Parcial 2 articanaba cinthia
Parcial 2 articanaba cinthiaParcial 2 articanaba cinthia
Parcial 2 articanaba cinthia
cinthiaarticanaba
 
Aprendizaje colaborativo 2
Aprendizaje colaborativo 2Aprendizaje colaborativo 2
Aprendizaje colaborativo 2
Rodrigo Benitez
 

Destaque (20)

Motivational presentation
Motivational presentationMotivational presentation
Motivational presentation
 
Medidas de dispersion
Medidas de dispersionMedidas de dispersion
Medidas de dispersion
 
PR im Social Web
PR im Social WebPR im Social Web
PR im Social Web
 
Конвенция между Италией и СССР 1979 года и признание в странах бывшего СССР р...
Конвенция между Италией и СССР 1979 года и признание в странах бывшего СССР р...Конвенция между Италией и СССР 1979 года и признание в странах бывшего СССР р...
Конвенция между Италией и СССР 1979 года и признание в странах бывшего СССР р...
 
Science Exchange opening plenary: Helen Scott-Orr
Science Exchange opening plenary: Helen Scott-OrrScience Exchange opening plenary: Helen Scott-Orr
Science Exchange opening plenary: Helen Scott-Orr
 
Yet already
Yet alreadyYet already
Yet already
 
Convegno17aprile
Convegno17aprileConvegno17aprile
Convegno17aprile
 
Parcial 2 articanaba cinthia
Parcial 2 articanaba cinthiaParcial 2 articanaba cinthia
Parcial 2 articanaba cinthia
 
científicos
científicos científicos
científicos
 
Article The
Article TheArticle The
Article The
 
715 2216-1-pb
715 2216-1-pb715 2216-1-pb
715 2216-1-pb
 
Cherry Festival
Cherry Festival Cherry Festival
Cherry Festival
 
Liceo Primo Levi 2015
Liceo Primo Levi 2015Liceo Primo Levi 2015
Liceo Primo Levi 2015
 
Aprendizaje colaborativo 2
Aprendizaje colaborativo 2Aprendizaje colaborativo 2
Aprendizaje colaborativo 2
 
Il Viaggio strumento del sapere - Erasmus Plus
Il Viaggio strumento del sapere - Erasmus PlusIl Viaggio strumento del sapere - Erasmus Plus
Il Viaggio strumento del sapere - Erasmus Plus
 
Una mappa concettuale sull'Erasmus VET
Una mappa concettuale sull'Erasmus VETUna mappa concettuale sull'Erasmus VET
Una mappa concettuale sull'Erasmus VET
 
Squline Mandarin Beginner 1 Lesson 14
Squline Mandarin Beginner 1 Lesson 14Squline Mandarin Beginner 1 Lesson 14
Squline Mandarin Beginner 1 Lesson 14
 
Interazione Uomo Macchina
Interazione Uomo MacchinaInterazione Uomo Macchina
Interazione Uomo Macchina
 
Probioticos, prebioticos y simbioticos
Probioticos, prebioticos y simbioticosProbioticos, prebioticos y simbioticos
Probioticos, prebioticos y simbioticos
 
Folleto: El plato del buen comer
Folleto: El plato del buen comerFolleto: El plato del buen comer
Folleto: El plato del buen comer
 

Semelhante a Get your Project back in Shape!

Stop Worrying! And love the workflow
Stop Worrying! And love the workflowStop Worrying! And love the workflow
Stop Worrying! And love the workflow
Atlassian
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
rsebbe
 

Semelhante a Get your Project back in Shape! (20)

Core Principles Of Ci
Core Principles Of CiCore Principles Of Ci
Core Principles Of Ci
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deployment
 
Refactor your code: when, why and how?
Refactor your code: when, why and how?Refactor your code: when, why and how?
Refactor your code: when, why and how?
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big company
 
Stop Worrying! And love the workflow
Stop Worrying! And love the workflowStop Worrying! And love the workflow
Stop Worrying! And love the workflow
 
Agile Software Development in practice: Experience, Tips and Tools from the T...
Agile Software Development in practice: Experience, Tips and Tools from the T...Agile Software Development in practice: Experience, Tips and Tools from the T...
Agile Software Development in practice: Experience, Tips and Tools from the T...
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
 
Designing for Tomorrow, Delivering Today
Designing for Tomorrow, Delivering TodayDesigning for Tomorrow, Delivering Today
Designing for Tomorrow, Delivering Today
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
FLIGHT Amsterdam Presentation - From Protex to Hub
FLIGHT Amsterdam Presentation - From Protex to Hub FLIGHT Amsterdam Presentation - From Protex to Hub
FLIGHT Amsterdam Presentation - From Protex to Hub
 
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit EbnerThe NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
 
Development Processes and Tooling
Development Processes and ToolingDevelopment Processes and Tooling
Development Processes and Tooling
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the Browser
 
Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Get your Project back in Shape!

  • 1. Get Your Project Back In Shape! How A Few Techniques Can Change Your (Project’s) Life
  • 2. About me • Founder and director of objektfabrik • Business Informatics (Banking) • Smalltalk since 1996 (VA Smalltalk,VisualWorks, Squeak/Pharo) • jtuchel@objektfabrik.de, joachimtuchel.wordpress.com 2
  • 3. Some projects • Fat Client and Web Applications in Smalltalk and Java • Project Planning and Controlling • Customer Relationship Management • Loan & Collateral Management • Accounting for Small Businesses (Seaside) • Migration of VA ST Projects to V6 & 7 & 8 3
  • 4. About objektfabrik • Founded 1999 in Ludwigsburg, Germany • Training, Consulting, Professional Services • Application and System architecture • Software Development in Smalltalk, Java, Ruby, Scala and Objective-C • Instantiations Business Partner since 2006 • IBM Business Partner before that 4
  • 5. Training Offerings • Object Technology Basics • Smalltalk Basics • VA Smalltalk Application Development • Advanced VA Smalltalk workshops (Packaging, Config Management, SUnit...) • Web Application Development with Seaside 5
  • 6. A Typical Smalltalk Project 2010 6
  • 7. Started in the early to mid 90‘ies 7
  • 8. Smalltalk and OO were „new“, cutting edge technologies 8
  • 9. Declared as legacy by management Soon to be replaced Innovation happened in new projects 9
  • 10. Still in Daily Use Stable Reliable Supports Business 10
  • 12. The Replacement Project ** ** ** *** a few years later 12
  • 13. The Replacement Project B**an** N**w r d e T echnology! *** a few years later 12
  • 14. New features - No budget 13
  • 15. The Feature Backlog After 5 years of being legacy 14
  • 16. The Code Quali ty 15
  • 18. Use the Best Tools You Can! 17
  • 19. Smalltalk has Great Tools! • Refactoring Browser • Read into existing code by improving it's readability • sUnit and sUnit Browser • Understand existing code and prove it • Make sure defects don't show up again 18
  • 20. Refactoring and Unit Tests • Are two sides of the same coin • Both are powerful • But as a team they are a secret weapon! 19
  • 21. More Tools • SmallLint • ships with Refactoring Browser • Learn about code quality and improve it • Enhanced Debugger / StsDebugger • VA Assist Pro • Many „small“ enhancements, esp. in configuration Management 20
  • 22. Get Everything under Version Control! 21
  • 23. Everything? • Smalltalk code • External files • Images, DLLs, • Configuration: INI-Files etc. • „Integration files“ • jar files • XML shared with other projects • Documentation ... 22
  • 24. Why? • Keep stuff in sync with application version • Keep track of deliverables • Within your project • Between projects • Defined gates for artefacts between • Individual developers • Projects • Oh wait! Seems you're missing my latest changes to the application .ini! 23
  • 25. Demo Real World Example: Getting rid of troubles with the application .INI 24
  • 26. Slaughter your Holy Images! 25
  • 27. Problems with „Holy Images“ • It ran in my Image yesterday! • Oh, you just have to execute a few statements that I've got in a Workspace somewhere... • Markus is not here today, I have no idea how to initialize the database mappings • We want to migrate to the latest VAST Version, but we can't setup an image and load our code into it 26
  • 28. One Click Loading • Bootstrapping from an empty image • Turn workspaces into classes • Clean up load order problems • Cyclic dependencies • Duplicate application / map dependencies • No manual unload in step 14! • Class methods loaded / removing 27
  • 29. Don't keep images • Throw away your image frequently (daily) • You'll see if bootstrapping still works • If it doesn't - chances are packaging won't work either! • To prevent load times: provide a bootstrapped image every morning • More To Come! 28
  • 31. Streams to enable Parallelism • You typically work on at least two versions at a time • V2.4 currently in production – maintenance • V2.5 beta-test at a few customers - maintenance • V2.6 next release – under development • V3.0 next major release – prototyping 30
  • 32. Parallelism? • Fixes to one version potentially relevant for other versions • Individual changes for every version • Individual unit tests for every version • Individual code dependencies, packaging requirements, external dependencies etc. • Separate development teams for different product versions 31
  • 33. Streams: Goals • Isolate product versions from each other • But Allow „cross-release“ of Code changes • Keep code close together • All code in one Library • Provides context for their current work • „I am currently working on 2.5“ • „Changes Inbox“ 32
  • 34. How? • Dedicated Image per Stream • Commandline parameter or abt.ini • Developers accept using stream concepts • Clean and easy loading of code • One-Click-Loading • Based on Configuration Maps • Required maps • Top-Level Map as Inbox and entry point for loading 33
  • 35. Tools for Streams • Differences Browsers • What has changed in my Image compared to the Stream • Releasing into the stream or • Discard changes (load back stream version) • Load a Stream • Current edition • Selected version 34
  • 36. Demo Real World Example of A Stream Environment 35
  • 37. Automate As Much As Possible! 36
  • 38. What can be automated? • Loading a Stream • Deployment of an Application • Packaging an Application • Copy stuff to/from • Preloading a developer dierectories / servers image • Prepare complete • Unit Tests application folder • Code Quality Checks • Lots more... 37
  • 40. Continuous Integration These tools are the building Blocks for a CI environment
  • 41. Some Tips 40
  • 42. Find your own pace! 41
  • 43. Just Do It Many projects don't start because they fear they'll never reach the end. 42
  • 44. They simply Won't anyways! Because there's always more that you can do! 43
  • 45. Keep everybody on board It won't work if some team members don't follow the same rules and principles 44
  • 46. Get Help Most Problems have been solved before 45
  • 47. VA Smalltalk advanced Programming Techniques • 5 days intensive training and practice • Monday: Programming an example application, Testing with sUnit • Tuesday: Refactoring and sUnit, Test Driven Development • Wednesday: Configuration Management with Envy, Stream concepts • Thursday: Packaging a VA Smalltalk Application • Friday: Questions and Answers, Wrapping Up 46
  • 48. Questions? chel im Tu g 1 oach erwe J Flied rmany g, Ge ik.de sbur tfabr dwig bjek 40 Lu el@o 716 tuch tfabr ik.de j bjek w ww.o 47

Notas do Editor