Monday, April 07, 2014

Looking for many solutions

Last week I compared software development with homeschooling. The point of the post was that with both it is important to step back and consider your goals.

Over this weekend a couple things happened to me which reminded me a basic principle in software development that is good to teach our children: Look for more than one solution.

Many problems in life have more than one possible solution. For example we can hand water our lawn. But this takes a lot of our time. We had pay a neighbor child to hand water the lawn. This saves our time, but would be fairly expensive. Another option is we get a sprinkler. Now we can turn on the sprinkler, go off and do something else for a half hour, then come back and turn off the sprinkler. This takes very little of our time and isn’t that expensive. Another possible solution is we put in a sprinkler system with an automatic timer. This takes a significant amount of time and money up front, but then it will take very little time in the months to come.

A month ago I started a new job. I’ve been taking the train. The new job has been a lot of fun, but we’re still learning new rhythms and patterns.

Last Friday Janine took the girls up to the big city to see some art. My new job is about half way between our home and the big city. I wanted to take the family out to a nice restaurant in the evening, since our oldest daughter is will be leaving our home next week for a mission. Scheduling was a bit challenging. The first solution we came up with was for Janine to pick me up at a train stop close to our home or another one somewhat near the restaurant. Then I thought maybe Janine should just pick me up from work. But she pointed out that for her to pop off the highway into where my new office would cost her about a half hour. Then I thought about taking the train up to the big city. The down side for this was I’d have to leave work much earlier. As I’m still new on the job I’m trying to be very focused and get off to a good start. Friday morning Janine had an idea just before I was about to get on the train to head off to work. She would leave one of our cars at the train station near the restaurant. She would take another and go off to the big city afterwards she pick up our son and head directly for the restaurant. In parallel I could leave work, head for the station near the restaurant, pick up the car and go to the restaurant. It worked out just fine. It was the fourth solution we came up with which made things go smoothly.

This morning I learned the lesson again. I was taking the train to work again. My sister sometimes take the same train. I wanted to take my children over to my parents tonight, so I was going to have my children pick me up at the train station and then we would go to my parents. My sister said I could catch the train home with her and she could drop me off at our parents. This would allow my children to leave earlier and spend more time with the grand parents. Here the second solution was much better than the first.

This is something we often find in software development. Often it is the second, third or fourth solution we think of which does a better job of solving a problem.

And it is a good lesson to teach our children.

No comments: