.



창업을 할 때 필요한 것

고객의 불편의 해결이 어떻게 돈을 창출할 수 있는지가 명확해야 한다.

혼자서 시작하지 마라. 좋은 생각이든 나쁜 생각이든 생각에 대한 피드백이 필요하다.

너무 큰 기대를 하지 마라


작업일정 정하기

작업일정을 미리 정하고 시작하는 것은 필수적이다.

과거의 작업을 하면서 걸렸던 시간 데이터를 참조한다. 이를 위해선 작업을 잘개 쪼개고 그 작업에 걸린 시간을 측정한다.

개발자 별로 동일 작업에 걸리는 시간 역시 기록한다. 

일정에 여유시간을 넣는 것은 반드시 필요하다. 여유시간은 휴가, 새 아이디어, 경쟁 제품 대응, 디버깅 등에 활용된다.



추상화도구

목적을 달성하기 위해 한 단계 낮은 추상화 수준을 다루는 도구를 사용해야 한다.

즉 다른 게임과 차별화되는 멋진 3d게임을 만들기 위해 다른 사람이 만든 3d라이브러리를 사용하지말고 자신이 직접 3d라이브러리를 제작해야 한다. 이를 간단히 이야기하자면 차별화되는 자동차 엔진을 만들기 위해 남이 만든 엔진을 사지말고 엔진을 만드는 도구를 구입해야 한다.


유능한 개발자 뽑기

개발자는 개발에만 치중할 수 있어야 한다.

그래픽, 마케팅, 영업, 기술 지원 등 수 많은 인력이 조합되어야 한다. 모든 것을 혼자할 수는 없다.

평범한 수준의 프로그래머가 모여도 훌륭한 프로그래머가 만들어내는 것을 만들 수 없다. 살리에르 5명이 모짜르트의 작품을 만들 수 없는 것과 같다.

최고 수준의 프로그래머를 뽑기 위해 최고의 환경과 경험을 제공해야 한다.

개인 사무실은 필수다. 대학생 때부터 우수한 인재를 뽑기 위해 인턴들에게 최고의 경험을 제공해야 한다.

창조적인 생각이 필요한 일이라면 수직적인 회사구조는 도움이 되지 않는다. 개발자에게 자유를 부여해야 한다.

좋은 개발자들 뽑은 이 후 퇴직하는 것을 막기 위해서는 위해서는 일에서 꾸준히 만족감을  느낄수 있게 해야하며 미래의 발전가능성을 꾸준히 제시하여야 한다.



그 외의 내용들

사람들의 80%는 기능의 20%만을 사용한다. 자원이 한정적이라면 20%의 기능만 가진 단순한 제품을 만드는 것이 뛰어난 전략이다. 하지만 새 제품에 사람들이 원하는 것은 새로운 기능이다. 

문제가 많아도 완전히 처음부터 새로 제품을 만드는 것보다는 리팩토링하는 것이 좋다. 새로 만드는 것보다 시간도 적게 들고 새로 만들 경우 버그는 다시 생기지만 리팩토링은 버그를 제거하는 과정이다. 또한 새로운 기능을 추가하기 쉽다.

다른 사람의 문제를 지적할 때에는 그 문제를 직접 지적하는 것이 아닌 우회해서 요구하라. 즉 코드를 안꼽은 거 아냐?가 아닌 코드를 뽑아서 먼지를 불고 한 번 다시 꼽아봐와 같이 사람의 심리를 자극하지 않는 말로 요구한다.

제품의 개발이 늦어져 출시 일정이 지연되면 기능의 우선순위가 낮은 것을 포기한다.




              .





: