Things every S/W architect should know
기억해두어야 할 좋은 이야기 ~ always back to basic!
Top 7 of 97 Things Every Software Architect Should Know: http://www.briandupreez.net/2010/10/top-7-of-97-things-every-software.html
해석
- 비즈니스 도메인을 이해하라. - 기술 뿐만아니라 개발하는 비즈니스(보험, 재무, 마케팅 등?)에 대한 지식을 갖추고 있어야 훌륭한 아키텍트가 될 수 있다.
- 무엇보다도, 아키텍트는 프로그래머이다. - 니가 설계했다면 니가 코드로 구현할 수도 있어야 한다. 코딩할 줄 모르는 아키텍트는 과잉 설계하여 불행한 개발자들이 엉망으로 구현하게 만들수도 있다.
- 개발자들을 다루기 - 과도한 제약은 개발자를 불행하게 만들고, 제약을 너무 적게하면 고객을 불행하게 만든다. 개발자 혹은 고객이 불행해지면 그것은 실패한 프로젝트가 된다.
- 성능 - 성능은 가능한 일찍 고려하라. 애플리케이션 아키텍처가 성능을 좌우한다.
- 결정을 하게 된 근본적 이유를 기록하라. - 문제가 없을 때는 어떤 결정에 대한 근본적 이유를 몰라도 그냥 넘어가게 되지만, 문제가 생겼을 때는 왜 그런 결정을 했는지 기록해둔 것이 당신을 살릴 것이다.
- 일어서라! - 다른 사람과 효율적으로 커뮤니케이션 하고 싶다면, 일어서라!
- 위대한 소프트웨어는 한번에 만들어지는 것이 아니라 성장하는 것이다. - 거대한 시스템 설계는 거의 득될게 없다. 비전은 크게 가지나 설계는 크지 않게하라. 기본적이고 작고 단단한 시스템으로부터 시작하여 프로젝트 기간동안 성장하도록 하라.
7번은 아주 좋은 예가 있다. 얼마전에 오픈했다가 망한 네이버톡. 과잉 기능 설계와 구현으로 버그 투성이에 정작 핵심 기능은 제대로 작동 안 해서 사용자들에게 외면당하다가, 메시징이라는 핵심 기능만 구현한 버전으로 새로 출시되었다. (현재는 라인으로 통합, 국내 시장은 카카오톡에 지배권 양보) - 출처