Understand the requirements:
It’s often the case that you (a developer) don’t gather requirements. It’s either project manager, lead or say module owner. Requirements are gathered and handed over to concerned engineer / developer. In this case, you should first understand the requirements. If you need more time to understand the requirements, ask for same. Get all the questions, doubts cleared before you further plan for development.
Plan the development:
After you have right and clear understanding of the requirement plan out the appropriate solution. This plan might be any thing like-
What changes I need to do (requirements)
What files, programs will be affected
What will be impact of this on entire system
What programs, pages or forms I need to design
What will be the validation criteria
If sorting needed, which algorithm to use
Where to apply sorting in database queries or after you gather required data.
Do I need pagination
There could be many more planning points but we should not put all our time in planning :).
If you are not planning well for your development, then there are pretty good chances that you might miss some thing and eventually land up doing re-work. Re-work is the one think an engineer should avoid doing.
While you are planning for requirement, share the requirement with the Quality Assurance engineer. Ask him/her to think of some test cases. Go through them. This will help you plan and implement the solution accordingly, thus assuring timely delivery of product/requirement.
While developing or implementing the solution, try to use functions, services that are already developed and can be used in your implementation. As the function you are using is already proven you don’t have to put your time in testing that.
If you could not find or use any ready functions and you are determined to develop it on your own, make sure you develop it in such a way that in future you or any one can easily use it. This is called CODE REUSE.
When you are done with the development, don’t forget to do the DEV TESTING. Dev testing is like unit testing. You may not find any issues as you already know the system and I bet you wont provide any inputs that will break your system