Software engineering principles for massive projects