Climate of Contradiction
Posted on Friday, July 17, 2009 ( Software Development )
"the climate of contradiction that Toyota uses to stimulate creativity and problem solving" (bellware)

Aside from being a reasonable tagline for my personality, that line alone has convinced me that I need to do a lot of reading about what people are calling, Lean Software Development.

Sorry for the ultra-short post .. I'm too busy reading to do much writing.

Resolve to Suffer
Posted on Tuesday, December 09, 2008 ( Sociology | Theology )

I don't make New Year's Resolutions. At least, I never have in the past. Literally, not ever. As a youngster I remember Lent being a big deal in the Roman Catholic church our family attended and my catechism teacher either forced or encouraged (don't remember) us to come up with something important to us that we would voluntarily deny ourselves for the 40 days leading up to Easter. I'm fairly certain I committed to (and quickly forgot about) giving up either M&Ms or Pepsi. I don't believe the tradition of Lent is biblically-based and I'm comfortable with letting it pass as a non-event in my life. However, I don't have a problem with the idea of Lent; self-denial can be a very effective means of refocusing our priorities and creating a very present and real reminder of what it means to suffer (though I'm not sure giving up M&Ms qualifies as real suffering.) What about that, then? Why do I need to know what it means to suffer? Let's start by asking a rich guy.

Years ago I read an interview with Larry Ellison, the founder of Oracle, where he said that he believed very few people achieve great success that haven't come out of a difficult childhood. I can't cite the source but a quick search will confirm that Mr Ellison is very forthcoming about his own impoverished early years and the impact he believes it had on his success. It seems to me that his statement isn't historically accurate, but then again the information available about the childhoods of some of the world's most accomplished people is sparse at best. Nonetheless, I think I can get behind the idea from a different perspective - that is, very few people accomplish great things that aren't willing to suffer for it.

I don't like to suffer. Intellectually I'm aware of suffering. Certainly I've witnessed the suffering of others both from afar and first hand. But me personally, I don't like to suffer. My childhood wasn't difficult. We weren't a wealthy family but always had plenty of food (and M&Ms) to eat and never went without at Christmas or Birthdays. My parents have been married longer than I've been alive and we've always had access to loving extended family. School was easy enough that for the most part I received good marks with minimal effort and since we never moved, I never had to deal with the stress of losing or making whole new sets of friends. It was about as far from a difficult childhood as one can probably imagine. I didn't complain much, either. I loved my comfortable life and I never wanted to grow up.

Crystal recently became (very) upset with me because I suggested that it was possible she wasn't losing weight as fast she thought she ought to be losing it because she wasn't committed enough to the cause. That was the closest I think I've ever been to sleeping on the couch involuntarily. She told her trainer about the conversation and he said, "Isn't this the husband who loses weight without dieting or working out? He doesn't understand." I can't deny it. He's right. Intellectually I think I understand, but the sad truth is I've rarely had to sacrifice much to get what I want. How can I possibly know what it means to suffer for a cause ... to suffer at all ... if I've never personally truly suffered?

But wouldn't a person have to be crazy to wish suffering upon himself? To voluntarily submit their mind, body, and/or spirit to torment and torture? Subconsciously I'm fairly certain that's how I think. And I'm now convinced it is wrong thinking. It's selfish. It's cowardly. It's a direct result of my fallen nature.

Jesus suffered. Oh how he suffered. You don't even have to believe he is God or that he rose from the dead to know that he lived a tortured life and died one of the most gruesome, horrific deaths imaginable. His death was dealt by professionals who used crucifixion as a warning to others about what could be their fate should they choose to stand up against Roman authority. Ironically, Jesus never broke any Roman laws, at least none that I know of. Nonetheless, there is no doubt even from purely historical record that Jesus of Nazareth suffered greatly for his cause.

The New Testament is filled with stories of how Jesus' followers suffered as well. Run out of town. Imprisoned. Stoned to death. All manner of cruelty inflicted on those who claimed Jesus to be God. They suffered for their cause.

Admittedly, that could also be said for any martyr, so I need to be careful to point out that martyrdom is not my point. I don't think one has to die in order to be committed. If God called me to physically die for him then I hope with all my heart that I would choose to willingly do so, but that call is statistically unlikely - and it's not the point. The point is that Jesus, and his apostles, they accomplished something great. And they only accomplished it because they were willing to suffer.

Where my viewpoint differs from that attributed to Mr. Ellison earlier is in the need to actually suffer in order to achieve. I believe all that is really necessary is a willingness to suffer. Although the metaphor brakes down quickly, I see it like the risk/reward proposition of casino gambling. Take Blackjack for example. I know that on any given deal I have something approaching 50% odds to win or lose. As a result, I also know that in order to beat the house over time I have to bet small when I lose and bet big when I win. The larger the bet I make, the higher the risk of losing a lot of money but at the same time, the higher the reward if I win. If I'm preparing my bet before a deal and I feel very confident (for whatever crazy reason) that I'm going to win, I have to weigh my desire for the big reward against my willingness to accept the consequences - to suffer - if I lose. So far I've never bet more than my hourly pay rate on a single hand. I already said why... I don't like to suffer.

Last Sunday I was half listening and half lost in thought during a wonderful sermon by our senior pastor. It wasn't online when I last checked, but when it is it will be here and it is titled "The Light of the World." If I remember correctly it had almost nothing to do with suffering. I think God was speaking to me during that sermon. Otherwise, I have no explanation for why I went into that room the same as I do every week yet came out feeling utterly convicted about something that wasn't the subject of the sermon and had hardly received a second thought from me before that day.

image During that sermon I resolved to ask God to make me willing to suffer. Actually if I remember accurately I simply resolved to suffer, but in hindsight I know that's something I need to leave in God's hands. Suffering intentionally just to prove that I'm willing would be for my benefit, not for God's, and that's not the point. I wrote it down, on the Communication Card they insert into the bulletin each week. I wrote it down so I wouldn't forget. Then I committed to writing it down in a public place where my friends and family (and perfect strangers) could see it and hold me accountable for it - and pray for me. This is important to me. God made this important to me.

So this year I am going to have a New Year's Resolution. The first one ever in my life. This year, I will resolve to be willing to suffer. I don't think I can do it on my own, though. I think Mr. Ellison knew that only people who have truly suffered in the past can willingly accept suffering in the future - at least on their own power. That's why I'm asking God to make me willing. I can't do it alone, but with God all things are possible.

Certifiable
Posted on Friday, June 13, 2008 ( Ergology | Software Development )

MCP LogoMy mother has been telling me this for as long as I can remember, but now Microsoft has joined the ranks of those who believe that I am "certifiable". How do I know? Well, like most of my posts, it's a painfully long story.

Throughout my career I've had opportunities to work directly and indirectly with a number of very impressive developers and developer managers. Of course, along the way there have also been those who were; well, less impressive. One thing that seemed surprising to me at first was that the possession of a certification did not appear in practice to be a good indicator of whether someone would fit best in the very impressive or less impressive category. That realization was my first clue that perhaps this certification business was just that, business, and had little to do with actual development skill or quality of experience.

Skepticism comes easily to me, so that bit of anecdotal evidence was enough to turn me off of certifications entirely. More recently it began to negatively skew my evaluation of job applicants who have multiple certifications due to suspicion that they spend more time reading and memorizing than they do applying what they've read. That suspicion plays off an assumption that certification exams only do one thing: evaluate how well a person has memorized the study material targeted for the exam. Here's the problem, without having ever studied for or taken one of these exams, that was a pretty big assumption to make.

Enter Tech•Ed. As recently mentioned, I was given the opportunity by my employer to attend this year's Microsoft Tech•Ed Developers conference. All in all it was a very enjoyable and personally beneficial experience. What's interesting for this story is that included in the materials emailed to me in preparation for the conference was a coupon to take a Microsoft Certification exam on site for only $50. Normally those exams will set you back $125 so that's a 60% discount. Definitely a good deal, if you're into that kind of thing.

At first I just archived the message (perhaps there's a future post in me on why I've stopped deleting) and ignored it. A few days later, though, as I was trying to think of things I could do on airplanes and in airports while traveling just about as far across the continental United States as you can travel, I remembered that email. "Hey, I could study for an exam on the plane, then take the exam at the conference." But if I thought those certifications were so silly, why bother taking an exam?

Simple, really. I needed to validate my assumptions. It has never sat right with me that I criticize certifications while knowing that I don't have any first hand experience at trying to earn one. From everything I had heard, the tests were quite difficult - and I believed it. So the only thing I needed to validate was that they don't prove anything beyond your ability to memorize (short-term) the specific subject material on the exam. Beyond that, it also gave me a specific goal for my time on the plane which I knew would be needed or I'd fall into my typical trap of reading valueless articles in whatever magazines I happened to bring along (seriously, when am I ever going to build new storage under my stairs? Our house doesn't even have stairs! Thank you, Popular Mechanics.)

Off to Microsoft.com I went to decide which test I should take. Then off to Buy.com to purchase the study kit. I did study on the plane for a few hours (though I underestimated how challenging that would be) and for a few more hours Monday and Tuesday evening after the conference sessions ended. In total, though, I would guess it was no more than 6 hours studying and some of that was likely through osmosis while my head lay prone on the open book.

The test I took (and passed) was 70-536: Microsoft .NET Framework, Application Development Foundation. It took me a little over an hour, and it was fairly challenging. What does passing that test get me? In day-to-day tangible items: absolutely nothing. In grander terms, it indicates that I'm eligible to pursue a variety of MCTS certifications by taking any number of additional exams (e.g. becoming a "MCTS: .NET Framework 3.5, Windows Presentation Foundation Applications" requires that I also take and pass 70-502.) Since I'm not actually certified without taking more exams, when someone asks me "what do you get for passing the test?" My best answer is, "it means I'm certifiable!"

Now that I've actually gone through the experience of studying (sort of), taking, and passing a Microsoft Certification exam, I feel better about applying my biases toward the program. There were some positive takeaways, though, such as the realization that in preparation for the test I studied a very broad array of topics (within the specific subject matter of the exam.) So although I still believe these certifications only prove a person's ability to memorize (short-term) the study material, at least I know that the material has exposed them to a fairly wide range of information. Whether or not I think they can effectively apply that knowledge in a real world environment, however, will remain strictly on a "show me" basis.

Face it, I'm a twit
Posted on Tuesday, June 03, 2008 ( Hempology )
I'm on a break here at TechEd in Orlando. Next session starting soon, so this will be a short post.

I just wanted to let everyone (all zero of you who read this) know that I decided to record my thoughts throughout this conference - and I'm using Twitter to do it.

So, if you like, feel free to follow me.

If you think my blog posts are random then my tweets (that's really what they're called) promise to be even more so... No idea if I'll continue my tweeting after the conference ends, but for the time being it's a fun way for me to communicate without actually having anyone I know around to talk to!

Actually there is at least one person I know here, a former colleague named Carlos, but amongst the moving mass of 6,000 geeks - it's a little tricky to pick one out. I assure you, though, if I do manage to hook up with he or anyone else, Twitter will let you know.
Trip It, Trip it Good
Posted on Wednesday, May 14, 2008 ( Technology )

As discussed previously, my (relatively) new employer is very interested in allowing and helping each of us stay on top of the latest tech and trends in the software industry. So much so that my manager actually sent out an email, unprovoked, in January of this year which included a list of conferences of particular interest and asked which, if any, we would each like to attend. Not being one to look a gift horse in the mouth, I quickly submitted a request to attend Microsoft Tech-Ed North America 2008 Developers (that's a mouth full, I know.)

Since then, permission has been granted; tickets purchased; rooms reserved, and I am on my way in June to spend a week in sunny Orlando, FL. However, as any one who has handled the logistics for booking a week long trip knows, it wasn't quite that easy.

First there was the tedious process of finding and selecting the cheapest flights whose timing and accommodations fit both personal and business requirements. That has become a lot easier to do in recent years with the abundance of quality online reservation sites (I used a combination of Expedia, Travelocity, Delta, and ultimately booked through Orbitz.)

Finding a hotel wasn't any less challenging as I needed to select from the list of hotels which had arranged with conference organizers to provide discounts and shuttle services to/from the events. Not only that, but because I stalled into April on booking a room, most of the closest hotels had already filled up. And of course, being a long-time Hilton Honors member, I wanted to make sure I could cash in on my 5-night stay for points! The Hilton family includes all: Hilton, Conrad, DoubleTree, Embassy Suits, Hampton, Homewood Suites, and Waldorf=Astoria hotels; so that's a pretty wide selection, but it can be surprisingly difficult to find one when I need it. Nonetheless, this time I was not only successful in finding one, but actually a bit excited as I will be staying at the Hilton Garden Inn at SeaWorld! That's right - me, the dolphins, and the killer whales, snoozing together in perfect harmony.

That doesn't seem so bad, right? I only have two flights and a hotel stay. Actually, those flights both have lay overs, so it's actually four flights. Plus each flight and the hotel stay have confirmation numbers of which I need to keep track. I've never been very good with memory recall, so clearly I need to keep all of this information somewhere safe and easily accessible. And that is where TripIt enters the picture.

My TripIt Itinerary See it on the left there? That's the picture.

TripIt is absolutely awesome. Partially because of what it does, but much more so because of how incredibly easy it is to use and how well it works. I love software that just works.

Creating a new trip itinerary was as simple as forwarding the email confirmation I received from Orbitz to a special email address: plans@tripit.com. TripIt knows who I am because I previously registered my email address, and simply parses the information provided in the confirmation email to create a new trip and add in all of my flight information including Dates, Times, Locations, Airlines, Flight Numbers, Seat Assignments, and of course, Confirmation Numbers. I did not manually enter one bit of it!

Unfortunately, in this case (because I had to go through the conference's reservation system) I didn't get a typical confirmation email for my hotel booking, so I did have to manually enter my hotel stay details. However, that process was very simple to do via their web site.

TripIt took the liberty of automatically looking up directions from the airport to my hotel (Google Maps) and included that in my itinerary. Had I rented a car I could have also forwarded my confirmation email from Avis (or whatever service used) to get that information into my itinerary as well.

The end result? All of my trip details, at least everything I care to include, recorded and easily accessible in one place. The picture I have above is actually the "Printable Itinerary" which is much more compact than what you see on the normal pages, and is perfect for stuffing in a pocket or carry-on the day before a trip.

If you haven't used TripIt before, I strongly recommend trying it out when planning your next adventure. Certainly it is optimized for arrangements made through online reservation systems, but the manual web interface will allow you to enter just about any type of travel/stay/activity conceivable.

Oh, and I almost left out one of my favorite features. Not only can you add other people as viewers and/or co-travelers on your trip (giving them access to view all the details), but you can also automatically show your TripIt trips on your Google (or other) Calendar as I'm showing off below:

GCal showing my TripIt itinerary

I wasn't sure what to think of TripIt the first time I checked it out. After having used it now for several trips I can say with confidence that it is a perfect fit for someone like me who relies heavily on mechanisms to keep organized and, at the same time, can not stand having to enter the same information in multiple places and keep it all updated.

Not the Momma!
Posted on Monday, March 31, 2008 ( Theology )

I used to watch a lot of TV. OK, I still watch a lot of TV. (Ever notice that allowing someone to form a false assumption and then correcting it can be quite effective in taking their attention away from the judgement they would have normally levied against a character flaw?) Lately I've been thinking a fair bit about a rule of logic theory and how it can be more easily explained and it occurred to me that we experience similar issues all the time and have little trouble resolving them - so this is my attempt at working out an example.

imageOne of the shows I used to watch and really enjoyed was called Dinosaurs, a sitcom on ABC in the early 90's. The show ended in July '94, so I would have been between my sophomore and junior year in high school (pointed out partly to explain why I thought so fondly of such a silly show, but also to make you feel old.) If you remember the show, then you most certainly remember the star character, Baby Sinclair.  Baby was best know for two things: A) his predilection for beating his father (Earl) over the head with blunt objects, and B) his total loyalty to and preference for his mother (Fran), demonstrated by frequent use of the phrase "not the momma" directed toward others trying to care for him. If you're having trouble recalling the show, watch this clip courtesy of YouTube:

But here's a thought... What if Baby Sinclair took that phrase "not the momma" and directed it toward Fran, his mother - would that be a contradiction? Odds are your gut response would be "yes", since the common understanding of contradiction is asserting that something is not what it is (or is what it is not.) However, what that definition fails to take into account is relationships. Not necessarily familial relation (though that certainly applies here), but rather any form of relationship: how X relates to Y.

Logicians have a rule that states, in essence, that a statement cannot be both true and false in the same sense at the same time with reference to the same moment. The key phrase I want to pick out is "in the same sense" - another way to say that is "in the same relationship". Using the example of Baby Sinclair, Fran is indeed Baby's "momma", but what if Baby's nest was swapped before birth and he actually was the biological child of a different couple that was delivering nesting at the same time? I'm not pulling this scenario out of my cloaca, either, as it happens to be the basis for Season 2, Episode 11 titled "Switched at Birth" (the same episode from which the previous clip was clipped.) In this episode, Fran has been Baby's mother since before birth, but it is discovered that she is not his biological mother. So in fact the same thing (mother) is both true and false at the same time, but it is being applied to two different relationships: child -> "not the momma" (biological) vs child -> "momma" (adoptive). And because it is two different relationships, the paradox is (according to the rules of logic) not a contradiction.

Why bother bringing this up (besides being a great excuse to talk about an old TV show)? Because this is a similar paradox to the one we face when the Bible proclaims that Jesus is both human and God at the same time with reference to the same moment. Many people, myself included, have a hard time initially with the Christian belief (as affirmed by the Nicene Creed) that the one true God is the Father and the Son and the Holy Ghost, three distinct persons, but of one and the same divine essence (The Lutheran Church).

For many, the biggest stumbling block is our difficulty comprehending how something can be both one and three at the same time. But as I've (hopefully) laid out, we accept similar apparent contradictions all the time with little or no difficulty. In this case, the exact "sense" or "relationship" involved in the two truths of God are not explicitly and entirely described in the Bible so any attempts to explain them are largely speculative. However, what is of most importance is that the relationships are, in fact, distinct and therefore, no contradiction exists.

So my hope is that the next time you, or someone you know, struggles with the logical validity of a triune God, you'll think of Baby Sinclair and his mother, or not his mother - now I'm confused...

Helmut Bakaitis
Posted on Friday, February 29, 2008 ( Ergology | Software Development )

If you've never heard the name Helmut Bakaitis before, I'm not surprised. Until a few minutes ago, I hadn't either. In fact it wasn't until I decided to look up the actor who played one of the most pivotal characters in The Matrix trilogy that I stumbled upon his name. I also discovered that even though Helmut is an actor, outside of his performance in The Matrix he's not particularly well known.

Neo meets The Architect

This isn't really a post about an obscure actor, though. In fact, it's not even really about his character. Oh, that! I almost forgot. Yes, the pivotal character I mentioned but failed to name before is, of course, "The Architect" who reveals himself to Neo in the second film as the creator of the Matrix. "Creator" - now that word has a nice ring to it, don't you think? I have another related word, though. One which I prefer to apply to my work: designer.

Software architecture in its pure form is a very cerebral exercise. Essentially you are the person responsible for taking the overall goals and coming up with the plans or blue-prints which the implementers will use to build a solution. In that (overly simplistic) model, one person writes no code and another person does nothing but write code. Obviously the reality is something far less delineated in most environments, including mine.

However, I have noticed something which relates back to a post I made recently with regard to my productivity. What I noticed is that I seem to have far less issue with productivity when my work on any given day is balanced between architecture and coding. While in that mode I don't consider myself an architect nor a programmer, but rather a designer. It's that sweet spot wherein I'm able to take some time thinking heavily about my next steps and then immediately move to implement the plan I've devised, all the while identifying areas where the design may be weak or could be improved and quickly able to adjust the plans or completely re-architect them as needed. When I get into these cycles, those are the days when I'm most likely to get a call from Crystal saying "are you coming home tonight, or just sleeping there?" Even more telling is that I have to consider the options before responding...

It's one thing to identify these types of motivators, but I think the harder task is to find ways to use them for gain. For instance, having realized this about myself I've considered that rather than cramming all of my design-oriented work into one or two days, I may be better off to try spreading that work over several days or weeks if the task is large enough. In some cases that won't really be feasible, but I think the majority of the time it should be possible.

Determining whether or not this tactic actually produces a noticeable improvement in productivity would be difficult without some sort of metrics. That, of course, leads right back into my afore-mentioned post and the oh-so-loveable NPT form.

What do NPT and TPS have in common?
Posted on Monday, January 21, 2008 ( Ergology )

As I've mentioned previously, my first professional job was for LP which began in earnest in 2001. During my three year stint there I received a fairly thorough introduction into the world of corporate Human Resources (HR). That was partly because I frequently worked with the department while supporting and building applications they used, but also because LP was a fortune 500 company and you simply can't be a giant public company without a significant HR presence.

Unfortunately, like most HR departments LP's spent a lot of time assuring us meager employees that their goal was to make our jobs and lives better; while their actions showed that they primarily wanted our managers (and thus, their managers) to be happy. To that end, many a form was devised and unleashed upon us, which we were instructed how and when to fill out and (of course) made to believe would make our jobs and/or lives better. They had one particularly interesting form called the "Non-Productive Time" or "NPT" form.Personal productivity?

Now, I don't know about you, but filling out a form and submitting it to my manager and then to HR which is designed to track my "non-productive time" just doesn't sound like a good idea. The only times I ever remember actually using that form were to report vacation hours. However, I remember many more times that would likely qualify as non-productive, at least from LP's perspective, which were never recorded.

I bring this up now, over three years after leaving LP, because I find myself spending a significant amount of time at work feeling rather unproductive. It isn't because I don't want to work. I love what I do and am exceedingly happy with my employer and coworkers. Nonetheless, there are times when I eagerly head to work, excited about the day to come, only to find myself without any desire to work on the tasks at hand.

This isn't the first time, either. Days like these have come and gone throughout my whole career. I suspect it is a cyclical thing - such that if I kept track with enough detail and context, I could eventually identify a pattern. That's what I was thinking about when I remembered the good ol' NPT form.

Then it occurred to me: tracking my productivity sounds like a dangerous proposition. What if my employer found the data and saw that only a certain (surprisingly low) percentage of the time I spend at work is actually productive? On one hand, I'm a salaried employee so my pay isn't directly tied to the number of hours I work, but still - that data is probably not going to help me at my next annual review!

At this point I probably better answer the obvious next question, "What in the world do you do with all that non-productive time?" It actually varies quite a bit, but the short answer is that virtually all of my time is spent doing something that is productive in someway for someone. While I'm at work but not "working", I tend to do a lot of reading and research online. Some of it is entirely unrelated to my job, like looking at product reviews for lawn mowers and home theater equipment, but the majority of it is work-related either directly or indirectly.

I read a lot of tech blogs from which I often learn new things that benefit me professionally and ultimately benefit my employer. I also dig around for new software that's interesting or potentially useful. Occasionally I'll take some time to help a family member with their web page. That may not sound like it's work related, but if my boss decides someday that he needs me to start work on a web-based application it will be quite helpful that I've kept my skills up in that area. There are a few forums and an IRC channel that I frequent as well. Those are more social in nature, but it's amazing how a little inter-disciplinary networking can provide access to very useful information when I need it most.

So it's been a few days now where I've been less motivated to accomplish my tasks and more inclined to dink around. My internal work-ethic-meter is telling me I need to make some changes and get back into the groove. The first step is to get more sleep as deprivation seems to have an obvious, observable correlation. The second step is to, well, just put my head down and get to work. It is amazing how getting one task finished can motivate me to push on to the next.

I'm curious, though. Have you ever tracked your "non-productive time"? Would you? If you did, would you report the results?

All content © 2010, Shawn Hempel