Given that these courses are so mature and well-received, what do I add as the guy responsible for making the experience compelling, fun and, most importantly, conducive to great learning? Well apart from my incredible personality (ahem…) I also add a whole bunch of additional content, techniques and information that hopefully makes these courses even better than they manifestly are.
Here’s a small sample of the sorts of things I add:
- I demystify the subject completely. No one wants their technology to be ‘magical’, and so I do my best to remove all magic from the equation!
- I dish out best practices galore (those “you just do it!” things) from Best Opinions (more like “these work in these circumstances, for me”).
- I work hard to make sure I tell the attendees when NOT to use a particular technology. These things are not all things to all men, or situations.
- I dish out design and architectural guidance as much as possible. I use my own Life Preserver pattern and tool to help answer the difficult questions (such as “what should my components do?”, and “where should my components go?” … and the nightmarish “how big should my component be?”) and make sure there are plenty of rules of thumb to impart as well.
- Emphasis on clean code and human comprehension all the way!
- I help people navigate one of the most problematic areas of software development: integration. I have three questions that I ponder with the attendees when doing this: “How loosely coupled do my components/systems need to be?”, “What do the components/systems need to know about each other to communicate?”, “What are the failure conditions I’ve just opened myself up to!?"
- The importance of testing, at least to document intent.
There’re probably other things I’m forgetting, but these are some of the highlights!
I hope to see you on one of my courses soon!
For a full list of my courses, check out SimplicityItself.com (it’s being updated at the moment so please be a little patient!).