When you start to work as developer you simply takes tasks from ticket system, code it in the best way you can. Your biggest question is "when" tasks should be done.
Latter, you starts to see that some tickets are not described too well, and you start to ask questions "how" something should work.
Next, you starts to see that some features may not make sense. Your simple "how"'s change to full investigations where you try to find "why" something should be done.
Do we need it?
At some moment you start to question existence of some of features. And you starts to asks "do we need it?".
During "when" phase you think mainly about code you wrote, most important is to write it in clean way.
In "how" you starts to think about this how users will use it, important for you is creating something logical.
"Why" means that you tries to understand why users are doing some things in given way.
Most important becomes how you can help users.
Finally in "do we need it" you look on whole product and see it as a tool which helps users, and tries to eliminate everything what will work as obstacle for user.
What sux in G1?
OOo2GD 1.5.0 - we can download spreadsheets :-)
Coding time means often waiting/reading time ;-)
Programming languages uncanny valley ;-)
My road to automation ;-)