Simplicity — the art of maximizing the amount of work not done — is essential.

One of the biggest problems with developing enterprise systems is the amount of needless complexity that inevitably is added by well-meaning engineers. For various reasons, they will add tons of code and features that aren’t absolutely necessary. Some of it will be speculative, some of it will be out of ignorance, but all of it will cause headaches down the road. And it’s sad, really, because much of that pain could have been avoided.
A simpler system is almost always better. There’s less code, and therefore fewer things to go wrong. Being simpler, it’s easier to fully understand, which helps to prevent logic errors. It also requires fewer tests to cover.
To get a simpler system, build only what you need for the current requirement. Don’t speculate about possible future features. Don’t add extra parameters to the API unless they are absolutely called for. Keep it as simple as possible. Write tests to cover the requirement. Write code to satisfy the tests. Clean up the code. Then stop.
Additionally, use your framework and libraries instead of writing your own code whenever possible. This requires a thorough knowledge of the capabilities of your tools. It’s a challenge at times, but anytime you can replace some complex in-house code with a call to a well-supported library, it improves your code. And whatever you do, never invent your own frameworks.