Rediscovering the Obvious

…stumbling in the footsteps of greatness

Archive for January, 2008

Kanban: Critical realization

without comments

Read this today, and it’s something that I’ve known for a long time, but have never really articulated. 

Kanban smooths out the aggregate, but the individual work request may still vary widely.
– Corey Ladas, here.

The entire thread (2 posts currently) is worth a read, but the main point does boil down to that quote… There is nothing that eliminates variance entirely in software development, and the cone of uncertainty is always a reality. What the methodologies with smaller batch sizes accomplishes is to reduce the overall impact of any one piece hitting the high end of its variance.

Written by erwilleke

January 31st, 2008 at 9:22 am

Posted in Uncategorized

Revisiting a classic

without comments

One of the things I like to do for my personal learning is revisiting some of the articles and papers that had an impact on me to see if they come across differently after months or years. I forget how I got there today I’ve had Eric Sink’s Career Calculus post in a tab all day and have been chatting about it in various directions. The whole article is GREAT, and I highly recommend a careful reading to anybody in a professional role of any sort.

However, one paragraph jumps out at me and makes me realize how lucky I’ve been in my direct managers throughout my career:

The second risk is the possibility that your manager will become afraid
of you.  Some managers really prefer to have a zero-derivative team. 
Whether consciously or not, they stack their team with stagnant people
who are not likely to threaten their position.  If you are on just such
a team and you suddenly become a “first derivative developer”, you are
upsetting a very delicate balance.  Your manager may react
unpredictably.  You may be labeled a troublemaker.  He may even
contrive some excuse to fire you.

I’ve NEVER felt threatened about making honest mistakes. Even when a client could raise hell about it, I’ve always had amazing support from my managers (thanks Raman, Chris, Chris, James, and Jim) and know that they had support from above. More and more, the advice I give people asking about their companies is whether they want to work someplace where they’re not allowed to do the right thing ™. There’s always arguments about what’s right, but a culture where it’s a bad thing to “Stop the Line” isn’t a place I want to work. Thus, when Eric said “Don’t work for a manager who is actively hindering your practice of constant learning.  Just don’t do it.” it really didn’t apply to me and I just moved on, but he is deadly accurate. Now, with more experience under my belt (and folding out over it in places), I recognize his wisdom so much more.

As an aside in the context of the calculus article, I think people should also look around them for a “High ambient L”. If you work with people that learn a lot, you’ll learn a lot. If you help the people around you learn, the collective C raises for your organization, and you have more fun at work. Easy! Right now, I’m very happy because I’m surrounded by the best meshed, most experienced overall team I’ve ever worked with. I’ve worked with many individuals that are higher L or higher G than here, and even individuals with much higher C than here, but the overall average C around me is so much better, and it all meshes. This is a thing to be savored and valued.


Written by erwilleke

January 24th, 2008 at 2:52 pm

Posted in Uncategorized

ASP.NET MVC Framework – first impression

without comments

I’ve read the lengthy articles that Guthrie posted, and I’ve followed the buzz with interest, but tonight I finally sat down and gave it a shot. First impression: the “default” application is among the most useful I’ve seen of any templated project. Most projects have a “default.aspx” or some such… this one has a default presenter for your home page that suggests an architectural approach (HomeController handles all the basic, built-in pages), a semantically correct menu implementation in the master page,  and a decent style sheet encouraging a proper approach to styling. 

To whom it may concern: Well Done!

Written by erwilleke

January 22nd, 2008 at 10:04 pm

Posted in Uncategorized

Agile vs. lean – My fourteen cents

with one comment

(Metaphor: groups of explorers seeking a fabled place) 

Agile and Lean are indeed different.

They are two different paths taken by different groups in an effort to arrive at the same place.

We do not yet know what that place is, nor what it will look like when we’re there.

However, both groups are getting closer to that place.

Both groups are therefore following nearly the same path at this point. 

Thus, they are adopting the same practices and approaches.

And, they are near enough that some people spend time with both groups. 

The group that stops innovating will “make camp” and die off over time.

If the two groups fully merge, a portion of the combined group will go their own way and make a new path (“post-agile”?)

Nobody in either group argues that the journey isn’t worth taking, only that the paths are different.

The “journey map” for each group starts at Port Waterfall, but they went very different ways to get to where they are today.

Each group has highly intelligent and intuitive leaders.

Each group values different things in their members.

Written by erwilleke

January 16th, 2008 at 12:34 pm

Posted in Uncategorized

In my inbox…

without comments

Subject: “Today’s scrums will be held in front of the kanban board.”

Yes, it was followed with:  “That’s
the one with all of the post-its.

But, this is a huge step towards better flow, which has been an issue for months.


Written by erwilleke

January 16th, 2008 at 8:45 am

Posted in Uncategorized

IDisposable.Dispose isn’t.

without comments

Ok – Rule #1 of .NET programming: If it’s Disposable, dispose it… wrap it in a using statement, call Dispose… SOMETHING!

Easy, once you think that way, nothing to worry about.

Except… when you declare a Mutex, try to dispose it, and get this message:

Error    ‘System.Threading.WaitHandle.Dispose(bool)’ is inaccessible due to its protection level

Now what? looking at the docs: shows that the method is indeed listed as protected. I was unaware that you COULD protect an interface implementation… that aside, it seems that it’s even worse that I’m not able to call Dispose on something.

Now that I’ve shared my confusion with the world, can anybody help me figure out what’s going on? If I had more time and energy, I’d pull up reflector, dig out the C# language and .NET runtime specs, and see what I could find. Tonight, however, I’ll leave this as an exercise for my two readers to figure out.

Written by erwilleke

January 9th, 2008 at 11:17 pm

Posted in Uncategorized

Sometimes art just speaks…

without comments

Other times it reaches out, grabs you, and makes you want to drive a thousand miles to feel the texture…


Written by erwilleke

January 4th, 2008 at 1:13 pm

Posted in Uncategorized

How do I keep up with my learning?

without comments


“From your 107 subscriptions, over the last 30 days you read 970 items, starred 10 items”

 Beyond that, there’s probably another 50 that I said “wow, this is good stuff, but I’ll search it if I want it”… I only use starred items for those that are worth revisiting in a moment of idleness… the ones that continue to generate value from rereading them (or, occasionally, ones that have HUGE lists of good links that I can randomly pick one and be rewarded).

Of these subscriptions, I think about 1/2 are technical, 1/10 are fun/gaming/enjoyment for me, 2/5 are leadership/process, and exactly ONE is the Indiana Legislative blog (mostly worthless, but humorously sad at the same time.

I’d get about 60 legitimate points for blog reading, based on a system I know of for measuring development.


At any given time I probably have 5-10 books in various stages of completion, scattered at various reading locations at my home and office. Usually, I have 2 leadership/business biography/Economics books going, 3 technical books (Chris Anderson’s WPF, Microformats, Petzold’s WPF 3d), 2 personal interest (an artful cookbook and a transit map history), and 1 fiction (just finished Piers Anthony’s Battle Circle trilogy) going at any given time.

The lead time on these books is usually 30-60 days, but I’m quite guilty of having silver bullets in that regard.. some books get read in days, others take most of a year. Overall, I probably read 20-30 full length books a year, although last year slacked off a bit, and before the blogging wave I used to read 60+ books a year.

This would work out to about 40 points a year, accounting for non-technical stuff.


I try to go to at least one event every other month. These days, I tend to go for the support it offers the organizers/speakers, as most events consist of entry level topics. However, I make a point of attending each of the ArcReady events, and I’m excited in Larry Clarkin’s efforts to start up an IASA chapter here in Indy, or what Paul Hacker suggested for doing something like the Silicon Prairie Social in Indy.

Overall, probably worth 10 points a year.


Besides all that stuff, I also maintain a network of people I consider my mentors and people that I attempt to provide mentoring for when appropriate. Sometimes, the same person’s on both sides of that relationship. This network contributes heavily to information flow and awareness, because these are mostly highly-technical individuals with a deep understanding of the industry and a recognition of my interests. Thus, when something exciting happens, I find out about it. Of what I do, this is probably the highest life value and payoff for effort put in.

Due to the utterly subjective nature, I can’t really score this.


I don’t really blog to learn, but several times I’ve found my own blog now, so that helps a lot, and it contributes indirectly to all of the other aspects, especially networking. 84 posts in the last year, probably 40 of them at least semi-technical.

~10 points based on the time-invested score.


All this said, what does this cost? Surprisingly little. Overall, I probably spend less than an hour a day on this sort of thing. Reading blogs becomes highly efficient with my current pattern (skim title, consume short posts of interest, pop interesting long ones to another window for consumption throughout the day).  Fifty posts usually takes about 4 minutes to triage, then longer posts get what they’re worth later. The book reading is hard to count up, but pleasure reading can consume anywhere from 10 minutes to three hours on a given day. Networking has real expenses, occasionally, but it’s almost always worth it.

Written by erwilleke

January 4th, 2008 at 11:03 am

Posted in Uncategorized