I’ve recently become slowly more aware that its starting to take me longer and longer to respond to people who contact me, look into resolving issues that people bring to my attention, complete tasks within deadlines that I’ve committed to, and otherwise meet my obligations to others.
As I started to think about why this might be, I began to consider the sheer number of things that I’m attempting to concurrently make progress on and I thought it might help me to try to just use this blog post as a means to try to organize a comprehensive list of my current in-progress tasks.
Speaking Engagements, User Groups, et. al.
One category of things that I’m committed to are several upcoming speaking engagements, user group meetings, and related ‘community engagement’ efforts. Anyone who has ever tried to prepare to give presentation to any group knows that its a humbling responsibility.
A group of people will come together and offer you their (hopefully!) undivided attention for some arbitrary period of time. In exchange for that oh-so-valuable thing as their free time, you have an obligation as a presenter to ensure that you do everything in your power to make the attendees’ experience a valuable one. This means some serious dedication to planning, research, preparation, refinement, practice, and rehearsal.
I’ve been to talks (fortunately not all that many) given by speakers who didn’t take this obligation terribly seriously and it shows. They either aren’t well-rehearsed, aren’t well-planned, or sometimes clearly don’t know much more about the topic than many of the attendees. If they manage to stay ‘on-script’ they can sort of fumble along, but if anyone asks an unexpected question not in the script they stumble and choke.
This kind of presentation is an affront to the unwritten contract between presenter and attendee: you give me your attention and I will give you something valuable for it in return. And I expect my speakers to know more about the subject than the audience; this doesn’t seem all that outrageous an expectation to me.
So for my several upcoming events this Autumn, I’ve got some serious time-commitments in re: getting ready to deliver the quality I hope those in attendance will expect of me. So far, this is how my schedule is shaping up…
- September 22, 2009: ALT.NET NYC User Group meeting: Background Introduction, ASP.NET MVC Patterns & Anti-Patterns
- October 17, 2009: Philadelphia .NET CodeCamp: Presentation, Refactoring to a S.O.L.I.D. Foundation
- November 2-6, 2009: Oredev 2009, Malmo, Sweden: 1/2-day workshop, NHibernate: Principle to Practice and presentation, Exploring the NHibernate Extensions Ecosystem
- Sometime (TBD) in September or October, 2009: Philadelphia ALT.NET User Group: presentation: NHibernate: from Principle to Practice redux (the talk content minus the exercises from the upcoming Oredev workshop)
In addition to the above, there’s some talk amongst those of us that organized the Agile Firestarter event back in June of holding another such event sometime this Fall, perhaps in October. Add to that the need to help plan the October, November, and December ALT.NET NYC meetings, and that’s a pretty full schedule.
Not nearly as full as for some of those that speak at such things for a living, but I’m not (nor do I ever want to become!) a professional speaker — I’m much happier (and, I believe, more valuable) being a professional who happens to speak rather than being a professional speaker.
Open-Source Projects Underway
Another category of things that occupies my time are various open-source efforts to which I either contribute or lead the development effort. Some of these are as follows…
- Complete the development of the Oracle database connector for NDbUnit; this was recently both complicated and simplified by Microsoft’s abandonment of its own ADO.NET provider for Oracle (complicated because it means I now need to reset my partially-completed efforts on the NDbUnit adapter for Oracle to not use this deprecated driver and simplified because now I don’t have to try to support both the Microsoft ADO.NET driver for Oracle and the Oracle DataProvider for .NET – ODP.NET – from Oracle)
- Complete the development of the WinForms GUI ‘NDbUnitDataEditor’ application that supports editing of NDbUnit XSD schemas and XML testdata from within a simple user interface; this will obviate the need to rely upon the clunky Visual Studio dataset designer to interact with dataset definitions (XSD) and update related test data (XML) for use with NDbUnit
- Implement the re-engineering efforts for the v2 redesign detailed in these past posts here, here, and here; this in turn will free up the application to be extended to address some of the other outstanding requests for enhancements, features, etc. that are presently on-hold due to their being just entirely too ‘messy’ to implement within the existing v1 architecture
- actually implement some of the enhanced features that others have suggested for the tool
Open-Source Projects on the Drawingboard
Still another category of projects are those that haven’t yet graduated from the conceptual level (in my head) to the coding level but are under serious consideration for near-term action on my part…
- currently just an idea at the concept level, this plugin for CodeRush + Refactor! Pro would mimic the TDD-related refactorings that are detailed in this fine set of extensions for ReSharper as designed by Eric Hexter
- Also presently just a gleam in my mind’s-eye right now, this would be a Visual Studio tool window (also built atop the DXCore infrastructure, really for no other reason than that it makes integration with Visual Studio so damned trivial) that would permit developers easy and quick access to tasks assigned them in the JIRA bug tracking application. JIRA offers a webservices API that would seemingly make this a relatively straight-forward task to wire up a simple window that would make it easy to manage tasks, close assignments, etc. in JIRA from within Visual Studio, eliminating the developer’s need to launch YABW (yet-another-browser-window) to get their work done.
- This one is an outgrowth of my ideas about how to solve a common problem that I often experience when wading into an unfamiliar codebase: that of trying to identify dead methods, classes, etc. as I evaluate the existing code. Currently CodeRush can already identify unused variables and parameters in methods, but this would extend that idea to take into account the entire codebase rather than just one class or method at a time.
- I’m imagining this as a CodeRush plugin that integrates with the existing CodeRush ‘code issues provider’ infrastructure (that can presently report things like ‘unused variable detected’, ‘undisposed local detected’, etc.) that has some kind of extensibility points exposed into which this thing could hook to report its analysis results.
This last category is for things to which I am presently committed but which don’t fit neatly into software (and no, I’m not talking about mowing the lawn or taking out the garbage 🙂 ). As some of you are aware, my wife is presently between jobs (like many in the US and around the world) so she has taken advantage of this downtime to dig into her musical career and has managed to cut a CD album of classic jazz tunes for which I have been producing the graphic design of the album case, the disc face, etc.
I need to wrap this up within the next two weeks so that I can move on to work on her website design which will have info about her project, links to purchase the CD, upcoming performances, etc. and so I need to get that kicking pretty soon too so the website is ready to go when the album is done being pressed (I guess ‘burned’ is the right word nowadays?).
A Great Case-Study in Serial vs. Parallel Tasking
This is all, in the end, a great example of how parallel tasking is really all crap. Trying to do all of these things at once is clearly not a possibility. And of course nowhere in all this list of commitments are any of the obvious still on-going commitments of ‘go to work’, ‘do the laundry’, ‘walk the dog’, etc. The overhead of trying to context-switch between all of these tasks in parallel is an overwhelming burden that takes up so much effort that no progress could possibly be made on any of the real work if trying to juggle this many balls at once.
So my tack will have to be to try that ever-so-hard thing: choose to set some priorities and stick with them in the order assigned until each in turn is completed 🙂
Let’s see how that goes…
Be careful Steve, you don’t have 20 anymore and your heart is *may be* fragile but is agile 😉
An “Autumn of Overcommitment?” Your plate looks pretty full. I saw on the FNH board that someone suggested that you do a “Fall of Fluent NHibernate.” 🙂
That is a lot of things to juggle, I sure appreciate your contributions to the community. Thank you.
as a member of the ALT.NET NYC community and having watched your training materials i want to thank you for your time and contributions. thank you!
Your contributions to community are exemplary and very inspiring and much appreciated. Hopefully Sweden will give you some needed chill time 🙂
Hopefully I can survive; as I get older I find I need progressively *less* sleep so there’s a hope that as I age I will be able to achieve MORE than when I was younger…though this is a presently UNTESTED theory 🙂
AutumnOfOverComittment? I *love* it! Yes, some time ago I too saw the same post on the FNH board and had a chuckle about it myself. But “Fall of FluentNHibernate” sounds too much like “Fall of Rome” or similar 🙂
Yes, I’m looking very forward to that conference — I’ve always admired its past years (from afar since Sweden is a bit off my beaten path) and I’m very excited about the opportunity to speak at such a great event (as well as attend it for free 🙂 )
thanks for the feedback; community volunteerism doesn’t really come with any other compensation than people’s thanks so I really appreciate the comments~!
Ditto’s all around. I’m curious about what you’re doing for your wife. Are you building something custom for her? Or are you using something more canned.
I’m trying something custom, but may fall back to something more canned if the effort for custom gets out of control.
Why? You know a good web UI designer looking for a chance to work for free in exchange for some publicity–? 😉
Wow, that is a pretty packed “to-do” list. I’m surprised you had time to write up a blog post about it. 🙂
lol; yeah — good pt 🙂 This blog post was really mostly about my own attempts to compile a comprehensive to-do list all in one place as I find writing this kind of stuff down somehow makes getting it done easier (for me, at least).
I find having a clear roadmap about where I’m going makes it easier to tell how far I’ve come and how far I still have to go.
We’ll see if that helps in this case or not, but in the time between this post and now I have actually ADDED another task (in the form of a comittment to speak at the upcoming ASP.NET MVC Firestarter event in NYC on October 3rd) so I’m not really sure this is working in quite the way I had hoped in helping me manage my comittments… 🙁
[…] sooner had I completed this post about the somewhat unmanageable list of things I had committed to for Autumn, than I was contacted […]