Agile evangelism for my own team

So about once every quarter we try to get our entire geospatial development staff together in the same room for a couple of hours to catch up with everybody.  It's a "dinner-n-learn" type of thing after hours where we might cover new projects and developments within the company, recognize heroic acts by team members, and one member of the team will give a presentation on new technology or some hot topic that they care about.  Well it was my turn at the pulpit this week and so I worked up a presentation introducing agile software development approaches focusing on Scrum

Read the rest of this post »

Multi-threading musings

Recently, my team and I have been working on an SOA implementation that uses some relatively "expensive" ESRI COM objects within the services tier.  For example, instantiating an IWorkspace can take a long time, relatively speaking.  Since ArcObjects are COM-based, clearly multi-threading isn't going to solve all of our problems due to the thread affinity of STA objects, however if there is a long running WCF service that uses these expensive objects, we can create a "pool" of service connections complete with cached objects and have them ready for use by consumers of the service...effectively front-loading the performance hit to the service startup process. So what we wanted was a managed thread pool...separate from the default thread pool so we're not stealing resources from the core application...and nobody really relishes the opportunity to build their own thread pool from scratch.  At least I don't. For info on when not to use the default system thread pool, check out Chris Mullins' excellent post over here.  Here's a couple of options we explored in the hopes that someone may find them useful.

Read the rest of this post »