Friday, August 3, 2012

Software Design, or not?

During my career, I saw many people who write good pieces of software.  My goal has always been pursuing this.  To write a good software like these people.  But, here is an interesting thing to bring up.

So many of great software developers don't prepare separate time for designing!
In my case, I need time to design what I will write.  My design process is roughly like this:

1. Gather requirements.  And list what should happen.
2. Divide out inputs and outputs.  This eventually determines "interface".
3. Organize internal or intermediate data that I will handle in my system.  And see if I have to store anything.  (Store in memory for session, or store in DB for persistence).  These will contribute a lot to concrete functions or classes.  And key to the solutions.

Yep.. No UML, but my own way of listing and diagrams to represent. And this takes time.  So much time, actually.
I saw, and I am working with many great and smart developers.  And I know they write close to flawless codes in a shot.  My conclusion is "They also design, but they all do in their brain.  Therefore, design process is fast, and sometimes it looks missing from outside."  To be thorough, I need to check one by one through paper.  So, I am solving problem case by case.  This is inefficient, but so far this brings out my best quality.  I wish I could do these check step in brain so that I can produce software faster.
The key skill here is "memory", which is very hard to improve.

Thursday, August 2, 2012

Passing by a bird

On the way to work this morning, I was driving my truck on 400 south at 60 mph.  I saw a bird from a distance.  He was flying -- entering low to cross the road from the right.  This bird, interestingly, tried to turn the direction, right in front of my lane.  While approaching to him(or her?), I recognized that it was an eagle by his slow but strong wing flap.  Since he just began to take off, he couldn’t fly high enough to clear height of my truck.  Initially, I wasn’t bothered slowing down because birds are quick to fly away.  But, the eagle seemed to stay still in front of me trying to turn around.  I put on a break a little bit and paid big attention to the distance to him.  After my second slow down for the elevated alerting level, the eagle finally finished turning.
When we were close, the
eagle made a big wing-flap.  I saw him very close through the top right corner of my front windshield.  He missed me.  Although, it was an alerting situation, his final wing flap (flying away) looked beautiful.  He made total of 4 or 5 strong flaps during this incident, but 60 mph was a fast speed for natural creatures.  I felt so relieved that I didn’t harm this beautiful bird.