미리 문제에 대해 생각하는 것과 반복적 인 접근법이 서로 모순된다고 확신하지 않습니다. 다른 많은 것들과 마찬가지로, 나는 당신이 둘 사이의 균형을 이루기 위해 노력해야한다고 생각합니다. 균형을 어떻게 찾습니까? 그것은 당신이 경험으로 배우고 종종 시간에 가장 좋은 교훈 (즉, 당신에게 경험을주는 것들)은 당신이 그것을 올바르게 얻지 못했을 때입니다 (또는 더 나은 교훈 : 그냥 평평하게하십시오). 이미 지적했듯이 "빠른 릴리스, 자주 릴리스"라는 문구가 있습니다. 또 다른 비슷한 것이 있는데, "초기 실패, 빨리 실패, 자주 실패"
미리 생각하는 것은 위대하며 절대적으로해야합니다. 그러나 경험이 있으면 데이터를 모두 가지고 있지 않아도 생각을 멈추고 무언가를 구축하는시기를 배우십시오. 그것을 구축함으로써, 당신은 문제 영역에 대한 더 많은 통찰력을 얻고 잠재적으로 훨씬 더 나은 솔루션을 얻을 수 있습니다. 그래서 나는 다른 것을 배제하지 말고 "생각"을 반복의 일부로 만들고 시간이 지남에 따라이 질문에 대한 올바른 대답을 스스로 찾을 것이라고 생각합니다.
작은 예입니다. 다른 날 저는 소프트웨어 디자인 결정에 어려움을 겪고있었습니다. 뒤늦게 보면 비교적 사소한 것이었지만 두 가지 대안이 있었고 두 가지 모두 효과가있는 것처럼 보였습니다. 나는 각각의 장단점으로 계속 돌면서 돌아 서서 내 결정을 재고했다. 되돌아 보면, 내가 생각하는 데 얼마나 많은 시간이 걸 렸는지 조금 당황 스럽습니다. 그런 다음 나는 나 자신에게 말했다, f # @ k 그것! 그리고 디자인 중 하나를 사용하는 대신 방금 가서 코드를 해킹하여 좋은 디자인에 대해 배우는 모든 좋은 것을 완전히 무시했습니다. 약 45 분 안에 기능이 작동합니다. 그런 다음 돌아가서 내 코드를 살펴보고 소스 컨트롤을 확인하는 데 부끄러워하지 않는 견고한 소스로 리팩토링했습니다. 재미있는 부분은 해킹 작업을 마친 후 "
현재 직면하고있는 문제 (특히 크고 복잡한 과제가 계속 진행되고 있음)에 대해 특별히 권장하는 또 다른 사항입니다. 직렬로 작업하는 대신 병렬로 수행하십시오. 최소한 하루 동안 연구를 한 다음, 중지하고, 기어와 코드를 전환하여 적어도 알려지지 않은 프로젝트 부분에 하루를 보내십시오. 이 방법으로 코드에 가까이 머무르면 더 나은 시야를 확보 할 수 있으며 너무 많은 정보를 너무 빨리 흡수하여 화상을 입지 않아도됩니다. 적어도 몇 시간의 연구 끝에 뇌가 물건을 소화하고 작업을 전환하며 잠시 동안 다른 일을하는 것이 좋습니다. 그런 다음 더 많은 연구로 돌아옵니다.