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,Vi...
Some projects
• Fat Client and Web Applications in Smalltalk
  and Java
• Project Planning and Controlling
• Customer Rela...
About objektfabrik
• Founded 1999 in Ludwigsburg, Germany
• Training, Consulting, Professional Services
• Application and ...
Training Offerings
• Object Technology Basics
• Smalltalk Basics
• VA Smalltalk Application Development
• Advanced VA Smal...
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
         ...
Still in Daily Use
                     Stable
                     Reliable
               Supports Business




        ...
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 ye...
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
• s...
Refactoring
       and Unit Tests

• Are two sides of the same coin
• Both are powerful
• But as a team they are a secret ...
More Tools
• SmallLint
  • ships with Refactoring Browser
  • Learn about code quality and improve it
• Enhanced Debugger ...
Get Everything under
  Version Control!




         21
Everything?
•   Smalltalk code
•   External files
    •   Images, DLLs,
    •   Configuration: INI-Files etc.
    •   „Integ...
Why?
•   Keep stuff in sync with application version
•   Keep track of deliverables
    •   Within your project
    •   Be...
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
 ...
One Click Loading
•   Bootstrapping from an empty image
•   Turn workspaces into classes
•   Clean up load order problems
...
Don't keep images
• Throw away your image frequently (daily)
• You'll see if bootstrapping still works
• If it doesn't - c...
Adopt A
Stream Concept




      29
Streams to enable
       Parallelism
• You typically work on at least two versions
  at a time
• V2.4 currently in product...
Parallelism?
•   Fixes to one version potentially relevant for
    other versions
    •   Individual changes for every ver...
Streams: Goals
•   Isolate product versions from each other
•   But Allow „cross-release“ of Code changes
•   Keep code cl...
How?
•   Dedicated Image per Stream
    •   Commandline parameter or abt.ini
•   Developers accept using stream concepts
•...
Tools for Streams
•   Differences Browsers
    •   What has changed in my Image compared to the
        Stream
    •   Rel...
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
                         ...
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
           ...
Get Help
Most Problems have been solved before




                 45
VA Smalltalk advanced
Programming Techniques
•   5 days intensive training and practice
    •   Monday: Programming an exa...
Questions?



                                  chel
                           im Tu g 1
                      oach erwe
...
Upcoming SlideShare
Loading in …5
×

Get your Project back in Shape!

632 views
588 views

Published on

This talk, given at the VA Smalltalk Forum Europe 2010 in Stuttgart, gives an overview of techniques and tools to get existing Smalltalk projects back to speed and productivity.
The talk included some demos of tools we created for some of our customers to make their project life much easier.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
632
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
















































  • Get your Project back in Shape!

    1. 1. Get Your Project Back In Shape! How A Few Techniques Can Change Your (Project’s) Life
    2. 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. 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. 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. 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. 6. A Typical Smalltalk Project 2010 6
    7. 7. Started in the early to mid 90‘ies 7
    8. 8. Smalltalk and OO were „new“, cutting edge technologies 8
    9. 9. Declared as legacy by management Soon to be replaced Innovation happened in new projects 9
    10. 10. Still in Daily Use Stable Reliable Supports Business 10
    11. 11. Happy users 11
    12. 12. The Replacement Project ** ** ** *** a few years later 12
    13. 13. The Replacement Project B**an** N**w r d e T echnology! *** a few years later 12
    14. 14. New features - No budget 13
    15. 15. The Feature Backlog After 5 years of being legacy 14
    16. 16. The Code Quali ty 15
    17. 17. What to do? 16
    18. 18. Use the Best Tools You Can! 17
    19. 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. 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. 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. 22. Get Everything under Version Control! 21
    23. 23. Everything? • Smalltalk code • External files • Images, DLLs, • Configuration: INI-Files etc. • „Integration files“ • jar files • XML shared with other projects • Documentation ... 22
    24. 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. 25. Demo Real World Example: Getting rid of troubles with the application .INI 24
    26. 26. Slaughter your Holy Images! 25
    27. 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. 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. 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
    30. 30. Adopt A Stream Concept 29
    31. 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. 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. 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. 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. 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. 36. Demo Real World Example of A Stream Environment 35
    37. 37. Automate As Much As Possible! 36
    38. 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
    39. 39. Demo Automatic Packaging and Deployment 38
    40. 40. Continuous Integration These tools are the building Blocks for a CI environment
    41. 41. Some Tips 40
    42. 42. Find your own pace! 41
    43. 43. Just Do It Many projects don't start because they fear they'll never reach the end. 42
    44. 44. They simply Won't anyways! Because there's always more that you can do! 43
    45. 45. Keep everybody on board It won't work if some team members don't follow the same rules and principles 44
    46. 46. Get Help Most Problems have been solved before 45
    47. 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. 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

    ×