The most common principle must be the underlying business problem and being agile. It means open to consistent changes without re-building the entire system.
One must understand the problem that we are trying to solve and focus on it. One must consider Domain-Driven Design Principles and pattern for development.
The accuracy and 100% reliance or 100% problem resolution is key to the business problem. The problem we are trying to solve it is it the right problem and are we taking correct steps to resolve it.
If we are making changes to any problem or refactoring the code which was not solved or designed correctly is a waste of time. You are trying to solve a bad problem. You must establish or agree on the business requirements with the product owner and then start design or implementation. Making enhancement to the bad problem and trying to automate to solve the problem is bad engineering practice and must be avoided. The business problem, Business Process and Business delivery should go hand to hand.
Final point is that you must have full and 100% understanding of the problem before even executing one line of code.
We always try to understand what problem customer is facing and try to solve the problem rather than getting engagement for enhancement. One must get the requirement full understood and fully agreed with the stakeholders and product owner before indulging into any development.
Please visit Business Integration Software to see various products for security.
Assessment Management Software
Multiple Choice Question Software