18 minutes from alarm to door. A business process engineering exercise

Someone was showing me how to categorize waste in business process engineering (BPE) and mentioned an example about listing every little thing you do getting ready for work in the morning.  I think the idea is to think about every little step and look for waste.  While I’m a morning person, I don’t like to get up earlier than I need to for work.  And that morning person bit starts about an hour after I wake up.  Here’s a stab at the exercise:

My morning ritual

  1. minute 0 – alarm rings, hit snooze, sit up, shut alarm and stand up (the point of hitting snooze isn’t to go back to sleep, it’s to stop the ringing so I can collect myself.)
  2. minutes 1-2- pee, wash hands
  3. minute 3 – turn on radio to CBS 880, take juice and milk out of fridge, put box of cereal on table
  4. minutes 4-5 – drink juice and make bowl of cereal while listening to “traffic and weather on the 8’s”.  Also listen to news headlines if got up at :25 or :55.
  5. minutes 6-9 – finish breakfast
  6. minute 10 – wash dishes
  7. minutes 11-14 – brush teeth, wash up, brush hair
  8. minutes 15-17 – get dressed
  9. minute 18 – grab watch, BlackBerry, id and keys.  Take out Metrocard.  Put on backpack and go.

Assumptions:

  1. I wake up via the alarm.  If I wake up on my own, I am a bit more leisurely about getting ready or check my e-mail on the iPad during my extra minutes.
  2. It’s not my “female time” of month.  It takes another couple of minutes then.
  3. I wake up on the 5 (:05, :15, :25, etc)

Human interaction

I’m only able to be this fast because I don’t have to get ready at the same time as anyone else nor be responsible for another person/pet.  When I lived with my parents, my father and I got ready at the same time.  It took a little longer, but we had a system where neither of us would need to be in the bathroom at the same time.  That bathroom always had someone in there and was definitely the critical resource!

Waste

I suppose having breakfast at home is a form of waste.  I value eating breakfast to be alert over saving a few more minutes.  Other than that, I think I’ve tuned this process to get rid of all waste.  See any?

is two people pairing better in a training class?

This girl and her coworker are pairing together in this class. She said to the instructor pairing is pointless. Her partner in crime said its distracting and silly.

Someone e-mailed me this story suggesting it would make a good blog.  I feel for both sides of the story here so I’m going to present an argument for both points of view.  I bet the e-mailer didn’t see that coming!

Pair programming on a project

On an actual task, I think pair programming is great.  It is faster, higher quality, both people know the code and provides a great way to learn from each other.  In a $5,000 training class, I have mixed feelings.

Pros – why two students per computer in class rocks

I’ve never actually done this so it is more hypothetical.

  1. You get stuck less because there are two minds.
  2. You go down less dead ends completing the labs faster.
  3. Your partner can point out when you aren’t getting something or doing it the longer way.
  4. One person can explain to the other when it takes longer for one person to grasp a concept.
  5. You can learn tricks from the other person like how to use the IDE better.
  6. You don’t have to ask the instructor for help as often – which is a big benefit if a lot of people in the class have questions.

Cons – why two students per computer in class is a waste of time

  1. I want to make as many mistakes as humanly possible while in class so I don’t on the job.
  2. I want to get hands on experience *doing* each step rather than just watching.  I’m a tactile learner and I’m going to retain more by doing.
  3. I want to gain experience with debugging/troubleshooting in a controlled setting where the instructor can bail me out as needed.
  4. I think faster than the average person and always finish labs very early.  I want to use that time to explore the subject matter rather than have the whole lab take longer.
  5. Sometimes asking the instructor a question sparks a good discussion.
  6. Sometimes I want to try something that isn’t strictly covered in class so I can ask the instructor/expert when I get stuck.  Can’t do this with a partner.

The ideal in my mind

Having one computer for each student and asking the person next to you when you have a question.  Benefits:

  1. Frees up the instructor for the hard questions
  2. Lets you see the mistakes of two people rather than just your own
  3. Gain practice trying to explain things

What do you think?  Do you prefer pairing with someone else in class?   Ultimately, I think it depends on the learning style of both people.  For my style, having my own computer is more conducive to learning a technology.

a sql quiz + is a lower hourly rate cheaper?

Suppose you have a task to write some JDBC code and you need to do so in the cheapest way possible.  Having your people grow should not be considered here, just the rate.

Person A

Charges 3X per hour and can write working code on the first shot, test it and complete it within an hour

Person B

Charges X per hour, but needs to multiple cycles to fix once the code is typed.  (This includes the time to identify what the problem is for each, build cycles and fix time.) For the SQL quiz , see how many errors you can find in the following code. I’ll post the answers as a comment. See if you can spot any I didn’t insert on purpose.

PreparedStatement stmt = null;
ResultSet rs = null;
try {
  String sql = "select count(*) from table" + "where column = ?";
  stmt = conn.prepareStatement(sql);
  stmt.setString(1, "test");
  rs = stmt.executeQuery();
  System.out.println(rs.getInt(1));
  sql = "select count(*) from table2" + "where column = ?";
  stmt = conn.prepareStatement(sql2);
  stmt.setString(1, "test");
  rs = stmt.executeQuery();
  System.out.println(rs.getInt(1));
} finally {
  stmt.close();
  rs.close();
}

Which is better

In today’s economy, driving down costs is a hot topic.  One phrase service providers consider is “how can we lower the rate.”  This is the wrong question.  The question should be how to lower costs overall.  Person A is going to be cheaper overall even though the hourly rate is three times as high.  We’ve all heard the comment that a good developer is many times more productive than an average one.

Granted, my example is extreme.  It shows the difference between an experienced person and an someone new to JDBC.  The point is to use the extreme to emphasize that it’s not all about the hourly rate.  In the real world, training the entry level person has value too of course.

Another view

This reminds me of the methodologies that ask you to estimate how many hours/days/weeks a task will take without saying who will do the work.  Well, if I do it, the work will take a week.  If an entry level person is doing it, it may take four.  If someone experienced is doing it who doesn’t know the system, it may take two.  How do we balance the differences in people when estimating?