Should a private course that's being booked run for 2 days or 3? Or on a longer subject for 5 days or 4? I'm often left having to make a recommendation. Budget constraints, and more critically the constraints on the length of time that people can be released from their other tasks, favor a shorter course. The ability to go into things deeper, the ability to have time to go off the immediate topic and fill in associated subjects, the chance to re-explain some of the topics that are hard to grasp in their full glory in one bite, and the ability to release delegates to check email / do other daily tasks also come in to play.
But if a course is "rounded up" rather than "rounded down", it also allows for longer practical sessions - allowing the students to really try out the things we're talking about, and to do so thoroughly. Now you may suggest that's making my life easier as they're working on their own - but actually they're not. I'm then spending time with delegates on a one on one basis, helping them through their own specific questions, issues. For those who finish quickly, it's also a change to talk through there own data, or for me to show them extras and other useful things I can optionally include with the course for the more advanced candidates.
Last week's course was "rounded up". And it made for a much more relaxed course from which the delegates gained a very great deal. It also gave me a chance to conclude the course with something which is a bit of a luxury - the icing on the cake ...
... we concluded the course with a "put it all together" practical.
If you have come across "Extreme programming", you'll have heard all about things like spike solutions
and multiple stories
. And you'll be familiar with frequent testing and integration
and perhaps pair programming
. And this end-of-course exercise was an excellent vehicle to apply these, as well as helping my delegates get to grips with the application of Lua.
With eight widely varied delegates, how could I set them all the same practical? How could I manage / tutor all 8? Easy - I turn them into four pairs, and set up four projects not eight:
• The weaker one types, the stronger one advises.
• Two programmers discuss, plan and iron out issues early.
• The specifications and stories are robust.
• Multiple inputs ensure that 'way out' solutions do not prevail.
• One plays Devil's advocate to the others hypotheses
• Test data comes from two minds not one - obvious doesn't get missed.
• I have more time to give per project.
and in real life
• The customer has an author available for backup and support rather than finding that (s)he is on holiday / maternity / off sick / left!
I'm delighted to report it went really
well! The room was abuzz with conversations between the various pairs and code was thought out so well ahead of time that it worked crisply and cleanly - very few experimental "spike" solutions were actually needed.
The story(ies) set related to the customer's requirements and so what they were doing was really very much their necessary thing. "We came on a course, and the exercise turned into learning on the real job".
I was really chuffed when the delegates carefully copied their final session's work onto memory sticks - with that session being the spike solution that will be refactored and reworked into their real data extraction task. (written 2010-09-11, updated 2010-09-14)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesQ907 - Object Orientation and General technical topics - Object Orientation: Design Techniques 
OO - real benefits - (2004-10-09) 
Tapping in on resources - (2005-03-05) 
Introduction to Object Oriented Programming - (2005-11-27) 
Design - one name, one action - (2005-12-19) 
Think about your design even if you don't use full UML - (2006-03-24) 
The Fag Packet Design Methodology - (2006-06-06) 
Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13) 
Build on what you already have with OO - (2006-08-17) 
Maintainable code - some positive advice - (2007-01-21) 
What are factory and singleton classes? - (2007-06-04) 
Object Relation Mapping (ORM) - (2007-06-09) 
Object Oriented Programming in Perl - Course - (2007-11-18) 
Object Oriented Tcl - (2008-02-02) 
Teaching Object Oriented Java with Students and Ice Cream - (2008-02-12) 
When should I use OO techniques? - (2009-05-11) 
Designing a heirarcy of classes - getting inheritance right - (2009-05-11) 
Planning! - (2009-08-08) 
Object Oriented programming - a practical design example - (2009-08-27) 
Simples - (2009-11-12) 
Plan your application before you start - (2009-12-02) 
The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11) 
What is a factory? - (2010-04-26) 
Containment, Associative Objects, Inheritance, packages and modules - (2010-04-30) 
The Light bulb moment when people see how Object Orientation works in real use - (2010-05-28) 
Relationships between Java classes - inheritance, packaging and others - (2010-07-10) 
Program for reliability and efficiency - do not duplicate, but rather share and re-use - (2010-07-19) 
Should Python classes each be in their own file? - (2010-07-27) 
What is a factory method and why use one? - Example in Ruby - (2010-09-30) 
Comments in and on Perl - a case for extreme OO programming - (2010-11-21) 
Object Oriented Programming for Structured Programmers - conversion training - (2010-12-14) 
Ruby - a training example that puts many language elements together to demonstrate the whole - (2011-04-23) 
Your PHP website - how to factor and refactor to reduce growing pains - (2011-09-24) 
Designing your application - using UML techniques - (2012-02-11) 
Why you should use objects even for short data manipulation programs in Ruby - (2012-06-10) 
Spike solutions and refactoring - a Python example - (2012-06-13) 
When you should use Object Orientation even in a short program - Python example - (2012-07-06) 
Rooms ready for guests - each time, every time, thanks to good system design - (2012-08-20) 
From Structured to Object Oriented Programming. - (2012-10-02) 
Inheritance, Composition and Associated objects - when to use which - Python example - (2012-10-10) 
Storing your intermediate data - what format should you you choose? - (2012-11-20) 
Teaching OO - how to avoid lots of window switching early on - (2013-01-17) 
Using object orientation for non-physical objects - (2013-05-22) 
Test driven development, and class design, from first principles (using C++) - (2014-12-30) 
The spirit of Java - delegating to classes - (2015-02-18) 
Spike solution, refactoring into encapsulated object methods - good design practise - (2015-03-05) 
Associative objects - one object within another. - (2016-01-20)G400 - Well House Consultants - Private course 
Maximum number of trainees on a course - (2005-01-18) 
Sales - the alternative close - (2005-05-23) 
Training course plans for 2006 - (2005-07-23) 
Training on Cascading Style Sheets - (2006-12-17) 
Tcl training - often for a larger group - (2007-02-24) 
What we teach - expained for the non-technical - (2007-10-28) 
Advanced Python, Perl, PHP and Tcl training courses / classes - (2008-02-25) 
2009 - Hotel, Meeting, Training Course prices - (2008-12-07) 
Review of 2008 - (2008-12-31) 
After the Perl course in Nurnberg - (2010-06-11) 
Tailoring of courses to meet customers needs - how it works - (2010-07-21) 
Public (scheduled) or private course? Book direct, or through a third party? - (2010-08-19) 
Testimonials - Well House Consultants Open Source courses - (2010-09-21) 
Well House Price list, January to March 2011 - (2010-11-25) 
Running a course ... what if the tutor isn't well? - (2010-11-29) 
Training around the world - easy payment in pounds Sterling - (2013-05-10) 
A brilliant finish to 2014 training and business guests, and a look to 2015 - (2014-12-20)
Some other Articles
Welcome to Countrywides new Melksham storeOn site course - travel and accommodation expensesMelksham Railway Station - new information pointRailway meetings, trips and meetups this autumnTurning an exercise into the real thing with extreme programmingConcluding the interview processLots of way of converting 3 letter month abbreviations to numbersCamilla, Duchess of Cornwall, turns first sod in Melksham Link CanalLua - variable function arguments and selectMelksham shamefully makes the national headlines