08 January 2013

My Friend Brian

My best friend passed away in 2012.  It was sudden since he was only 44 years old.  I remember having a conversation with him on the couch one Sunday while watching the Steelers play.  We were 35 at the time.  We talked about how the life expectancy of people in America is roughly 70 years and that we were about half done.  What did we want to do with the next 35 years.  None of us know when our time is up and I wish we would have done more things together.

I'm not regretting how the next 9 years played out because he and I had such a wonderful friendship and I am realizing now how much he meant to me.  I think about him daily it seems.  He would say that's a little weird and let go of my ears!  He and I talked seriously for bits and pieces, but never stayed serious for long.

For his funeral service, his mom and step dad asked some of us to talk.  It was supposed to be a party but there were many tears shed that day by everyone around.  I tried to keep my talk light in spite of how I really felt and wanted to finally share my notes with the internets.  Here they are:


I remember the day I met Brian.  Harpos. 3 fluids of life: milk, water and beer.  We were enjoying one of them at the time.  I think I’ll go to Harpos after the service.

First meatcake.  It was SuperBowl Sunday when the Seahawks were playing the Steelers and it was his birthday. He couldn’t eat sweets anymore so cake was off the menu.  So we made him meatcake.  Using wax candles on the cake was a lesson in chemistry/physics.

Isaac’s first haircut.  We celebrated touchdowns with tequila shots and during halftime of one of the games we decided to cut Isaac’s hair.  I still have that hair.

He was uncle Brian to my kids and kept a picture of them on his desk that he could focus on when – in his words: he wanted to kill someone.

There were a lot of firsts with my friend Brian and I miss him.

02 January 2013

Actual Hours

In my world, we do lots of estimating and I wonder why when I see a header in a spreadsheet that says "actual hours" for a card/task/project my feathers are ruffled. 

I think it's because my first love is mathematics and in that world, there is no guessing.  It either is or isn't.  Coming from that world and seeing actual hours leads me to think of the impossiblity of the accuracy of that data. 

No one is using a timer to get the task done and even if they are, they are seldom working just on that one thing the entire time.  Think about having to use the restroom during said exercise; you'd now be required to track the time of two things: your project and your time away using the restroom.  We're not timing the projects/tasks very well - if at all - to begin with, so what makes us think we can time two things or one thing with an interrupt any better?

Keeping track of actual hours just seems to be an exercise in futility or a grand waste of time.

19 November 2012

What does sharing get you?

A new recipe!  I shared my starter with a friend and she is already experimenting with it.  Her recipe for rolls appears below.  Jacque and I are going to try it...soon!

YAY!


1 cup starter
3/4 cup milk (heated approximately 1 minute in microwave)
2 tablespoons butter melted
1 egg
1 teaspoon salt
1/4 cup granulated sugar
3 1/4 cups bread flour or unbleached all-purpose flour
1 teaspoon instant active dry yeast

 

Active yeast with milk (between 105-110 deg). Stir in everything but the flour. Add flour 1 cup at a time until dough begins to form. Knead 3-5 min.

Cover and let rise 2 hours.

 

Lightly flour surface and roll dough out to a 12”X9” rectangle.

Brush with 1 Tbsp melted butter. Then spread with a mixture of 2 Tbsp white sugar, 2 Tbsp brown sugar and 1 Tbsp cinnamon.

 

Refrigerate overnight.

 

Bake at 350 degrees for 20-25 minutes or until they reach an internal temperature of 180 degrees.

Cover with a powdered sugar/ water glaze.

comfort food

I've been lucky being given a sourdough starter that is more than 40 years old.  I'd like to share the recipe with you.


Day 1

To start the yeast:

In a mixing bowl, mix together

2C warm water

2C Flour

1C starter

Mix well, but gently.

Cover and set aside until mixture bubbles.  Depending on ambient temp, this could take up to 12 hours.

 

Replenish starter with ¾ C cold water and ¾ C flour.

Mix well, cover with lid (not airtight) and let sit in the back of the fridge until it is time to make more.

 

Day 2

To make the dough:

3.5 – 4.5 Cups of flour

3 Tablespoons of sugar

3+1 Tablespoons of Vegetable oil

1 teaspoon of salt

 

Optional ingredients:

2 Tablespoons Flax seed

2 Tablespoons millet

2 Tablespoons quinoa

2 Tablespoons unsalted sunflower seeds

 

Begin by adding 3 tablespoons each of sugar and oil, the salt and mix well. Optional ingredients should be added at this time.

Begin adding 1C of flour at a time to the mixture and stirring until thoroughly incorporated.  When you can remove the mixture from the bowl and knead by hand, do so.  On a floured kneading surface, knead the dough adding flour a little at time.  You are done kneading when the dough is no longer “too” sticky and bounces back from a poke.

Add 1 Tablespoon oil to a large bowl.  Drop the dough in the bowl and coat it with the oil.  Cover and let rise until doubled in size.

After the dough has proofed, split into half.  Place each have in its own greased baking pan.  Using a sharp knife, cut three slits in the top of each loaf.  Place in the oven and let rise for one hour. 

 

Turn on oven to 350 degrees and bake for 50 minutes.  Bread is done when there is hollow sound from thumping it with your finger.  Set on rack and cover with dish towels until completely cool.

 

That’s it!  Enjoy your bread.

 

 

Some things I have learned:

·         Under no circumstance should you use any stainless steel products for this process.  No mixing bowls, measuring cups or spoons that are metal are allowed.  I use either plastic or wood.

·         The amount of water at the starting stage determines how much bread you will end up with.  It could be more than 2 full loaves or just one little one.  You can pick.

·         When I feed the starter, I use a new mason jar – I have 2 in my rotation.  Reusing the same jar over time is only asking for trouble; mold will get in and thrive in the jar…and that’s gross.  Right now, one jar is in my fridge with the starter and the other is being sterilized either by hand washing or running through the dishwasher.

·         I quit really measuring the flour when it’s time to make the dough.  Add a cup at a time and mix well.  When it will hold together enough, take it out of the starter mixing bowl and add more flour as needed.  It should not be too sticky when you are done and will spring back when you poke it.

·         Kneading the dough by hand is the trick.  It takes at least two songs to get the correct consistency.

·         It is ok to throw starter away when you either don’t have the time to make it or just aren’t in the mood.  You get a chance to make more in a week or two.

·         Don’t rush it.  This bread is lovely and deserves the time it takes to make it.  When done deliberately and with attention, it is one of the best breads I have ever had.

15 June 2012

The fallacy of better estimates

One of my teams is struggling with its customers who want something that can’t happen: getting better at estimating. It feels like they are asking for a precise definition of how long a story will take. What they don’t understand is that because of the work we do, it is nearly impossible to accurately estimate the work we do.



We have discovered - and one of the benefits of Agile (xP) is - that we understand relative sizing between stories. We know that when we say it will cost X units to produce feature A, and feature B looks similar to A then it will cost roughly the same effort to produce B: the cost is X. If however, feature C looks harder than A or B, we know we can estimate C at a cost of 2X (or 3X, or nX).



We also know that there will be no direct correlation between time and estimate because a story with an X estimate may take ½ day, 1 day or 2 days. Overall, though this makes no difference because as we build an estimate history with our velocity, we will see that stories estimated at X units fit in all three time buckets.



Oh the humanity! How will we plan?



The beauty of estimates is when they are aggregated together, they give a good (some would say the best) way of saying with a high degree of confidence that we can get this amount of work done in one iteration. A team that on average produces features that cost 10X every iteration can plan cards that when totaled add up to that number – whatever 10X is. Programmers also are acutely aware that neither planning 20 - ½X sized stories nor one 10X sized story in an iteration is a good idea. There is a Goldilock’s zone somewhere in between that we find the most success.



Estimates are not taken lightly




We have a feel for how difficult it is to produce something because we know it is relative in difficulty to something else we have already produced. We build a history with our velocity so that customers who drive business value can decide which cards to put in the queue and in what order they should be done. Beyond this, the estimate for individual cards is meaningless. And striving to get better (more accurate) at individual estimates is a waste of time.

03 March 2012

Switch

I'm trying to encourage people to read/learn/share more at work.  I just finished a book called "Switch: how to change things when change is hard".  It's a wonderful book.  It ties much of the things I have been learning together.
The ironic thing is that I can't seem to get a good presentation together.  My hope is that someone (ANYONE) will be motivated to read this book and have the same conscious-raising I experienced.

Maybe I'm scared that no one will be that inspired and maybe I fear that situation will be viewed in my eyes as a failure. hmmmm.

Well, to the book.

For a long time we have looked at the person as two disparate selves: Our rational self and our emotional self.  Someone came up with the metaphor that each part can be represented by an elephant (emotional) and its rider (rational).  The interaction between the two are surprising.  When the elephant is denied something it wants or needs, the rider has less chance to control the self for unrelated things.  Willpower diminishes.  Awareness evaporates.

The take away for me is that if we want to change something we have to make it meaningful to our elephant and give the rider some direction.

I think it will be better if I blog about specific AHA moments in the book as opposed to writing about it all at once.

If you're really interested in it, read it.  It's great.

MCTM math contest

My son is taking part in a math competition today.  I am so proud of him. It has been fun watching him interact with all of the kids he knows from his EEE classes.

Let's hope he knows that regardless of how he does today, he makes me proud.

27 December 2011

It doesn't matter what you do...

I'm cooking lunch for my coworkers this week. I asked who would want to join because the number of responses would dictate what I could and couldn't make here at work (or prepare at home the night before). There were enough positive responses that mandated something like soup. when I sent the menu I received two replies:


1. You guys are great!!!!
2. I’ve changed my mind



I think the second response is likely tongue in cheek (I've omitted the smiley face), but I wonder how many other people feel this way truly. There is a frame that you can't please everyone all of the time, and in my experience this has been true. No matter that I am doing something nice for the people working between Christmas and New Year's, there is someone dissatisfied.



03 October 2011

is faster really better?

I work in software development and we are constantly being asked to do things faster.  This doesn't sit well with me.  Let me explain.

There are many things we can think of that you (yes, You) don't want to do "faster".  Take a minute and think of a few.  The first ones I came up with are (in no particular order):
  • sleeping (imagine someone telling you to sleep faster. you would laugh at them.)
  • driving to work (the policeman may not like this)
  • taking vacation (woo-hoo! we took that vacation in record time!)
  • eating (besides the nutritional downsides...)
  • breathing (please, please do this)
  • playing games (whew, another speed round of cards.  now get back to your electronics, kids.)
  • writing a blog post (wait, what?)
There are more, I am sure.  the point is: when did it start making sense to develop software faster?  It seems that we are over-learning our days in track and field where faster/farther wins the race...I can also see when the product you are developing is directly affecting the bottom line of the company insofar as the competitor may be working on the same product and being first in the market is important.  Otherwise, it just drives me crazy.  Without substantiation, not all software should be developed faster. 

I would even propose that faster is not better in 99% of all cases.  Make it correctly and be efficient.  Minimize waste.  Maximize the work not done.  But faster just appears to me to be the moaning of someone not in tune with mature software development.

And what does faster mean?  Aren't we doing this fast enough?  Would you prefer more defects or shoddy code faster, if faster is all you are interested in?  Why aren't we asking for fewer or (gasp) zero defects?  Why aren't we as coders demanding well-formed code?  We should be creating something we are proud of, are you?  And if you ask me to do it faster, you strip me of my pride in my code.

I did it

The goal was to ride my bicycle from my garage to St. Charles in 2 days.  AND I did it.  As we rode and took breaks, I set texts to my sweetheart and my mom.

The first day went something like this:
September 6
8:39 am
Just left the house.  At Scott blvd, waiting for Brock.  Updates to follow...boy howdy it is cold on the bike!  :)

9:44 am
Passed coopers landing and it's warm enough to shed the extra shirt. :)

10:30 am
In hartsburg and we are having a snack.  It's really peaceful and quiet on a Tuesday....oooooo! and it is Brock's birthday!

11:24 am
Arrived in Jefferson city.  taking a break and having a snack.  It is very nice to have the wind at our backs!

12:25 pm
Now in Tebbet's.  Starting to feel like a real ride!  :)  47 miles down.

1:08 pm
Reached Mokane.  Resting and eating a bit.  Just 25 miles to get to Hermann.

2:02 pm
In Portland, MO.  This is the last stop before we get to Hermann.  Darn, my legs are tired.
BTW - that's 62 miles so far!  :)

7:40 pm
Made it to Hermann at 3:30.  We've had dinner and wine.  Now it's time for bed.

September 7th
10:12 am
Just rolled 100 miles on the odometer.  Left Hermann and have been riding for 16 miles and still no break.
Just found a stop and taking a break.  Still feeling good. Trelor is the stop.  :)

11:13 am
Stopping in Dutzhow.  34 miles to go, setting a goal of 2 pm arrival in St. Charles.

12:46 pm
Today seems to be going better...it could be the sorter distance or the fact that the end is in sight.  We are in Weldon Spring Site and only have 16 miles to go.
Thank you mom and Jacque for the words of encouragement and your willingness to listen to me prattle on.  I love you both.  :)

2:05 pm
Just reached St. Charles.