Six Rules to keep in mind when you are beginning a software
Even after a long and fascinating experience we have had while programming software, there are things we often forget, which usually leads to complicated problems and highly complicated solutions.
So here i am presenting to you a list of some rules i keep in mind while beginning a to work on a project.
1. Develop tests before doing the coding.
It is essentially necessary before you begin to work on a problem. Analyze the use cases, determine the problem, look for other methods to solve it. If you can solve the problem before starting to code, you will definitely write more efficient code.
2. Design before coding.
This is similar to what i mentioned above, but this involves writing an efficient algorithm on the paper, use a pencil or something to write it, then design the flow of it. This way you will be able to solve many problems earlier instead of after the coding or when you are writing it. This takes sometime but saves more.
3. Keep Integration in Mind
If you don't do a system architectural design with well-defined interfaces, integration will be a big mess.
Using the methods i mentioned above, design a good system architecture, again before you write single line of code. Also make a Database ERD (Entity Relationship Diagram) and Application Flow Diagram. So that you and other team members will be easily able to work on different modules and will always be ready to adapt to a change.
4. Design for change/variability.
It is no surprise that software requirements always change. Sometimes a feature is added and sometimes a feature is removed and sometimes there are subtle changes in it. So make sure that each part of your application is not tightly connected/depended on other part, use a modular structure, such as MVC.
5. The average newly hired employee is about as productive as an experienced employee
This is a thing which most people usually outlook, but it is true, at least i have seen it working. An average new employee will work as hard as he can to secure his/her position -- provided that he is a little experienced. Use it to your advantage although don't hire new employees for every new project.
6. Using better and fewer people is more productive than using more less qualified people
It is a common concept (specially in non-technical bosses) that increasing the number of people on a project reduces its development time, which is not true (at least in software development). It is better to select fewer but more productive and experienced people to develop a project than to select a large number of less productive or inexperienced people. Why? simply they will need more supervision and more help.