ThePragmaticProgrammer가 준수하는 ComputerProgramming 철학중 하나.
프로그래밍은 사실 예측해야할일 투성이다.
- data를 소켓에 쓸때 받는곳에서 얼마나 시간이 걸릴껀가,
- 이 data는 하드디스크를 얼마나 차지할것인가,
이 계산 [Algorithm]은 얼마나 시간이 걸릴껀가, SeeAlso EstimateOrderOfAlgorithm
- 이 프로젝트를 끝내는데 얼마만한 기간이 소요될것인가
등등, 이런것들을 예측할수 있는 것은 중요하다. 자주자주 예측해보고, 맞나안맞나 확인해보는 과정을 반복하다보면, 서서히 들어맞게 되어있다. 그렇게 되면, 앞으로 무슨일을 해도, 계획성있게 추진할 수 있다.
가능한한 구체적으로 예측한다. 그래야, 예측기술이 는다.
이런 예측기술을 갖는 방법(트릭)
- Understand what's being asked
- Build a model of the system
- break the model into components
- give each parameter a value
- calculate the answers
- keep track of your estimating prowess
프로젝트 스케줄에 관한 예측은,
- check requirements
- analyze risk
- design, implement, integrate
- validate with the users
의 과정을 반복한다.