The Shade Tree Developer
Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at codebetter.com/jeremymiller.Upcoming posts…
How I'm using StoryTeller to test FubuMVC
Building a "Lookup" html convention w/ FubuMVC
FubuMVC's Configuration Model "Special Sauce"
Managing Script dependencies with FubuMVC
Authorization and FubuMVC
Continuations
Composing Views with FubuMVC
Extensible Model Binding with FubuMVC
Introducing "Bottles"
Modular Packaging with FubuMVC
Self-Installing Apps w/ FubuMVC
Routing and Behavioral Conventions with FubuMVC
What Should I Learn?Blogroll
- Follow me on Twitter
- FubuMVC on GitHub
- My GitHub Page
- StoryTeller on GitHub
- StructureMap on GitHub
Thank you CodeBetter, and my new blog
I’ve had a great 7 year run at CodeBetter, but I’ve decided to start my own little blog at jeremydmiller.com (RSS is jeremydmiller.com/feed/).
Thank you to Brendan and everybody I’ve met through the CodeBetter community over the years for a great experience.
A very few thoughts on the MVP program
TL;DR: I don’t think there’s any need to give in to paranoia about the MVP program or look at it as a conspiracy or believe that it either damages or enhances your credibility as a developer.
A couple folks that are fairly visible and arguably very valuable OSS leaders or contributors didn’t get renewed as Microsoft MVP’s this year and it’s caused a minor fuss online. After 5 straight years of receiving the MVP award for C#, I didn’t either. No big deal, but a couple thoughts anyway:
- I was on 4-5 podcasts and spoke at CodeMash last year, but I didn’t do much writing and speaking otherwise. I think I made it to one NUG meeting just because a colleague was speaking, but that was it. The point is, I didn’t really do anything to meet the criteria as I understand it for being an MVP — plus I was distracted and didn’t get around to filling out the “why I deserve to be an MVP” form anyway. I’m not exactly Mr. “Good at doing paperwork”
- I did spend a very large amount of time devoted to OSS efforts last year, but as you probably know, the MVP program doesn’t really recognize OSS contributions. That’s an old complaint and one that I’ve raised myself in years past. Nuget notwithstanding, Microsoft has never really embraced OSS development on the .Net platform.* I don’t think this will ever really change so we might as well just stop getting upset about it.**
- MS apparently does have a program going where OSS contributors can get MSDN licenses and I’ll be getting myself hooked up at some point. At some point this year I think we might be completely switched over to developing on Mono and MonoDevelop, but for now I want a working copy of VS.Net and ReSharper and I’ve got both.
- I have no entitlement to any sort of reward or recognition from Microsoft. It’s their program and they can do whatever they want with it using any criteria they come up with.
- I really don’t need vindication or recognition from Microsoft. You shouldn’t either.
- My personal experience interacting with Microsoft teams is mixed. I can point to a few things in Microsoft tools that were influenced by OSS work that I’m involved in, but I don’t think that the direct feedback I’ve given over the years has ever made any difference.
- At no point did I ever feel pressured to self-censure my opinions online or at development events just because of my MVP award (probably should have anyway;)). Neither did I particularly feel forced to toe the Microsoft line or push Microsoft tooling. Heck, I got the MVP several times after helping author the silly EF Vote of No Confidence thing (I do think that my original verbiage was a lot less eye-poking than what got in there). A couple people told me that I would be able to be a lot more honest and open with my opinions after losing the MVP. I plan to do the opposite and stay out of nerd rage events like, say, claiming that FubuMVC is better than Rails just because someone did something dumb with ActiveRecord one time.
* Yes, someone is going to rightfully say that Nuget has been a huge boon for .Net OSS development, but I’ll automatically respond by reminding you that Nuget effectively trashed a pair of ongoing OSS efforts from the community. You might also say that Microsoft has embraced jQuery and I’ll tell you that they had absolutely no chance of competing with jQuery’s ecosystem and had to do that. You’ll also remind me that the Azure team is suddenly really active in supporting Node.js and I’ll tell you that I think the Azure team had to do that for the sake of Azure adoption and remind you that Node.js didn’t originate from the Microsoft development community at all.
** As an aside, I’m no expert on Microsoft internal politics but it definitely seems to me that the Windows team has more or less put DevDiv under its thumb in the pecking order. I think this could help developers on the Windows platform by shifting the focus squarely towards making Windows a good platform to develop software for versus trying to push a pure Microsoft created development ecosystem from DevDiv. If that means supporting tools like Node.js or Nginx or PHP or even Rails on Windows instead of just pushing their own tools, we the developers can only win. Again, I’m no Mary Jo Foley, just my 2 cents.
Moving On
After 3+ good years at Dovetail I’m finally moving on to a new opportunity in a couple weeks. I’d like to thank my colleagues at Dovetail for being so much fun to work with and Stephen Lynn for creating a good company culture to work in. I’ll be interested to see where you guys go with all the energy and ideas I see happening in the team room these days.
It’s been a crazy year of change for me. I moved, got married to a wonderful woman, finally had my completely shot left knee replaced, and got my first “duh, Dad!” moment from my son. Topping it off with a new opportunity suddenly seems fitting.
Where I’m Going
Starting in mid-October I’ll be joining my friends and former/future co-workers Josh Arnold and Roy Moore at Surgery Logistics. It’s an exciting business and technical opportunity for me. Lots of potential new stuff like NoSQL persistence, finally using Spark, Mono hosting, and a dizzying array of new JavaScript tools for me to dig into.
FubuMVC, StructureMap, and StoryTeller
I’ve already been asked what’s going to happen with the fubu projects now that I’m leaving Dovetail. First off, the fubu community is now much, much more than just me hacking away and has been for quite awhile. Secondly, I’ll still be using the whole fubu stack so I’ll be just as involved as ever.
I think that the pace of fubu development will increase quite a bit and it’ll definitely be easier to keep coordinated with Josh once we’re working together. This will be my second big system built with FubuMVC, but the challenges seem to be quite different than Dovetail’s (heavier scaling requirements, maybe going into multi-tenancy). I do think I’ll go re-read Fred Brooks’ essay on the second system effect before I take off on lots of new stuff though
As it is, I think StoryTeller is borderline unusable, but I refuse to give up on the dream of executable requirements and development will continue with a focus on a brand new Html5 UI to replace the current WPF montrosity.
StructureMap 3 is still on the table and I’m hoping to re-start work on it before Christmas. I think some serious changes to StructureMap are warranted to make it behave better in high demand situations. It’s 7+ years old now and its internals definitely show their age.
Both projects will be folded under the overall fubu projects umbrella just because it makes it easier to support both.
FubuMVC Webinar Next Week
Mike Murray is giving a webinar introduction to FubuMVC next week as part of JP’s Develop with Passion series. Sign up here.
Automated Web Testing at Oredev 2010 and on Pluralsight Podcast
For the past 3 years, our team at Dovetail has spent a lot of time and energy towards building a large suite of automated tests that exercise our web application end to end. I think we’ve reaped enough benefits to justify our effort, but at the same time the effort we’ve expended and continue to expend has been daunting and we still have some unresolved problems.
In November of 2010 I gave a talk at Oredev entitled Automated Testing of Web Applications that about our lessons learned at Dovetail. After the talk I felt that:
- The content matter was important and potentially very useful to other teams
- The content was really hard to explain in an hour from scratch
I thought I would try to piece together a braindump blog post about the subject, but it was way too much work. David Starr was nice enough to record a podcast with me on automated web testing that I thought went well. As I recall, we talked about:
- How to address the screen
- My undying dream of executable specifications
- Separating the expression of a specification from the screen driver bits
- Standardizing the UI mechanics to make testing easier
- Data Population (this is crucial)
- Making automated tests be less brittle
- Organizing tests