Rapid Software Architecture
가설 검증
자금이 바닥나면 소프트웨어 개발은 끝난다.
- 의욕이 넘쳐 버전 10.0.0 부터 만드려는 사람들이 있다.
- 자금이 바닥나면 소프트웨어 개발은 끝난다.
- 먼저, 버전 1.0.0 을 만들고 사람들이 보게 하라.
- 아니 그 이전에 0.1.0 를 만들고 사람들이 보게 하라.
- 아니 그 이전에 비지니스 데모, 기술 데모를 만들어 가설을 확인 하라.
비지니스 목표가 틀렸다는 것이 확인되면 모든 것이 버려 진다
- 최적화된 코드와 알고리즘이 우선이라는 사람들이 있다.
- 소프트웨어가 비지니스 목표에 벗어나는 것이 확인되면 그 좋은 코드는 쓸모가 없어 진다. 최적화된 코드가 우선한다는 개발자는 개인적인 만족에 도달했을테지만 말이다.
- 가장 짧은 시간에 비지니스 목표에 우선하는 코드를 작성 하라.
- 비지니스 목표에 도달한 소프트웨어는 코드를 최적화할 시간을 준다. 아니, 최적화할 필요가 없을 수도 있다. 비싼 고성능, 수많은 장비가 코드 최적화를 대신할 수도 있다. 돈으로 성능을 살 수 있을 정도의 수익이 나면 애써 최적화에 시간과 돈을 태울 필요 없다. 그 비지니스와 소프트웨어에 대해 잘 아는 개발자의 가치가 더 높다.
기계보다 소프트웨어 개발자가 비싸다.
- 1000만원짜리 기계에 구현할 것인가? 아니면,10만원짜리 기계에 구현할 것인가? 가설 검증을 빨리 할 수 있는 기계에 우선 구현 하라.
- 소프트웨어 개발자 한명이 일을 하기 위해 프로젝트 관리자, 기획, 회계, 인사, 운영, 구매, 시설 담당자들이 달라 붙는다. 소프트웨어 회사에 개발자가 없으면 이들이 할일도 없어진다.
- 하루가 늦어지면 100만원의 손실이 발생한다고 생각 하라.
잘게 씹어 먹어라
- 한덩어리 떡을 씹지도 않고 삼키려는 사람들이 있는가? 없을 것이다. 그들은 이미 질식하여 죽었으므로.
- 소프트웨어를 한꺼번에 삼키려는 개발자들이 있는가? 있다. 그들은 프로젝트들을 죽이며 떠돌지만, 자신들은 죽지 않으므로.
- 잘게 앂어 떡을 먹듯 소프트웨도 잘게 씹어 구현하라. 구현해야 할 내용을 잘게 나누고 순서를 정하라. 가설이 맞는지 먼저 확인하라. 맞다면 다음 단계로 넘어가라.
소프트웨어 개발 도구의 선택
- 가장 빨리 만들 수 있는 도구를 선택 하라. 비지니스 가설 검증이 우선이다.
- 무사히 끝낼 수 있는 도구를 선택 하라. 뒤늦게 도구의 한계를 발견하면 프로젝트는 죽는다.
- 처음에는 빠르게 개발할 수 있지만 코드량이 증가하면 발목 잡는 도구들이 있다. 일관되게 퍼포먼스를 낼 수 있는 도구를 선택 하라.
- 100만명 동시접속이 요구되면 투자를 받을 수 있다. 투자를 받아 좋은 개발자과 100만명 동시 접속을 구현 할 수 있다. 그런데, 지금 가진 자금으로는1000명 동시 접속만 구현해도 된다.
- 개발 도구의 선택에는 정답이 없다. 비지니스 목표와 선행 기술에 따라 다르다.