Best practices for system development