- Start with a minimum set of frameworks, libraries and technologies. So start with plain Java SE, extend if needed to Java EE, use another frameworks afterwards.
- Minimize the amount of design and architecture patterns.
- Define constraints for the used patterns - or do not allow variations.
- Use coding and naming conventions.
- Always rely on standards first.
- Explain design decisions in short (list of items) and unambigous way.
- Take everything away from your design, what is not needed.
- Do not follow hypes - use reasonable arguments.
- Always document political decisions (they are rarely reasonable).
- Separate business logic from technology.
- Think about errorhandling, logging, monitoring because the coding begins
- Create a lean, and expresive project or architecture documentation (<=20 pages).
- ...be pragmatic. Theory does not work in the practice :-).
NEW: Effective Java EE 7 -- Available For Streaming