Many software developers think they are paid to write code. I used to think that some time ago but I finally figure out that it is not a software developers job to simply write code. Rather software developers are paid to provide solutions in the form of software. The code should not be our focus. The software solution should be our focus. Too many developers get caught up in writing code that sometimes they forget to focus on the problem the solution is trying to solve. This leads to a "solution" that has plenty of code but fails to provide a working solution.
Take the time to understand the "problem" before you try and code a "solution".
Focus on the problem and be sure you understand the request before writing any code. Be sure you have a good clear detailed solution before you start implementing it. If you need to prototype then be sure to throw away your first implementation. Usually your first implementation is really bad because at the time you didn't fully understand the problem. If you don't throw away the prototype then be sure to go back and refactor the solution. It's very easy to forget about dead code and poorly name members. Make sure you provide a good reliable clean product as your final solution.
Please do not forget that code is important!
Yes I have been down playing the importance of the "coding" portion of software development but please don't misunderstand me. The code is very important. Code is like the paint and canvas of a beautiful piece of art. I actually think all developers are artist and the code they write is their art. The experienced developer can and will provide some beautiful pieces of art during their career as a software developer. Code should be elegant, clean, reusable and very maintainable. However do not get caught up in writing code that you lose sight of the target. Do not over engineer the solution with "maybes" and "one days". Many engineers get caught up in the idea that "one day the customer may want to..." or "maybe one day we may want to". That's for another blog post.
If you want to provide the best solution then simply focus on the specifics of the problem and solve it as you understand it today. Do not try to predict the future for none of us know what is to come. We must act only on what we know today. Software developers should be solving problems with the least about of code possible. Do not over complicated the solution. If it's a small problem then you should be offering a small solution. You'll write less code which will result is less bugs. Less code gives you more time to provide the correct solution.