most of my coding time is actually figuring out the right way to do something. breaking the problem down right and then another big chunk is identifying (& 'fixing') interactions with external components. I know those are important things but at some level it feels as if I am not being productive. still I justify it by thinking about the opportunity cost of doing it the wrong way.