Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Get your Project back in Shape!

770 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
  • Be the first to comment

  • Be the first to like this

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

×