For whom to write software :
– Users : Please think of the fellow human who’ll be using the software. Let’s make his life better.
– Fellow developers: Compliers can parse the worse of our code but software is written in a certain way for the fellow developers – someone showing us our code after 5 years shouldn’t cause us embarrassment. Or let’s try to minimize it .
– Company : Someone is paying you to write this , to solve a certain problem. Think of them as well – how can you add more value. Many a times, it can be different than just writing code – a suggestion about what’s possible.
Things to consider in mind:
– Don’t cause bugs.
– Think of the larger architecture. Try to understand how various things interact with each other. I have found it to be key in problem solving – having a higher level complete picture makes us focus on areas where handshaking happens or corner cases arise where most of the difficult issues arise.