I’m reminded of an old, very geeky joke:
A mathematician, a scientist, and an engineer all take a room at a hotel. They each wake up separately to discover a small fire in their wastebaskets.
The scientist sits for a minute, calculates the amount of heat being created by the fire, determines the amount of water required to put it out, fills up his ice-bucket to that precise amount and tosses it on the fire, putting it out. There’s no excess water and the mess is minor so he goes back to sleep.
The engineer looks at the fire, grabs the ice-bucket fills it to the top with water, figures there’s more than enough water in it, toss it on the fire with a margin of water to spare. The fire goes out and he goes back to sleep.
The mathematician looks at the fire, looks at the ice-bucket, determines a solution exists and goes back to sleep.
When solving a problem, sometimes knowing a solution exists (or doesn’t exist) is half the battle.
I’m currently trying to win a programming contract to update a gentleman’s website. One of the requirements may be to integrate with some sort of payment service. So, some quick research showed such a solution “existed”. I had achieved the level of mathematician. The service suggested is Paypal’s https://www.paypal.com/ipn service.
But it’s one thing to show a solution exists, I had to actually work with the solution to make sure if the time comes, I can implement it. So, spent a few hours tonight working with the code example provided by Paypal and a database I created to test the proposed solution. After a couple of minor errors, I was able to use the test sandbox to call my callback URL and record the responses to the database. I had achieved the basics. But this was also the hardest part. So I have achieved the level of scientist here.
Now, if the customer gives me the go-ahead, I’ll have to expand the code to actually parse the request string and other details and integrate it with his code and database. That said, that part is actually fairly trivial in many ways as I will control the entire process there.
So I haven’t quite achieved the level of engineer, but if the time comes, I will.
So that fire is out. On to the next one.