Eugene’s Software Development Principles
From my own personal experiences as a software developer.
- Keep It Simple. Keep software design as simple as possible. Do not over engineer. The maintaining of the software later should be just as easy as writing the software itself.
- Divide and Conquer. No task or project is too big or impossible to accomplish if you divide it up into components and tackle them one piece at a time.
- Listen to the Customer. Listen, listen, and listen. You are writing the software for your customer, listen to what they have to say and work with them throughout the software development process. In the end, if the customer are happy, then you have done your job as a software developer.
- Think Outside of the Box. Just because a certain process works for others or has always been done in a certain way, doesn’t mean the same process will also work for you. Don’t do something just for the sake of doing something. Do it because it works for you.
- Be Flexible and Move Fast. Build your software in a way that can be easily modified or changed. Business requirements change quickly, so should the software you write.
- Nothing is Perfect. Don’t expect to get all the business requirements all at once or not make any mistakes along the way. Mistakes will happen and nothing is perfect. Correct the mistake quickly and move on. Perfection is probably going to be your biggest mistake.
- Build a Strong Foundation. Take the time to lay down the foundation first. Build a strong core foundation and then build everything else you need around it.
- Stay Focus and Prioritize. Follow the 80/20 rule. Stay focus on the high value targets and come back later with revisions to tackle the remaining tasks. Get it working first and come back to make it better.
- Manufacture Code. Use the cookie cutter approach and reuse code as much as possible. Standardize on a way to do something and keep it consistence. Not only will it help you to reuse code but also gives your user that consistence user experience.