약 20 년 전 Peopleware 에서 DeMarco와 Lister가 말했듯이 , 실패한 소프트웨어 프로젝트의 대부분은 기술적 인 문제가 아니라 사회 학적 문제로 인해 실패합니다 . 도구가 아무리 개선 되었더라도 지난 수십 년 동안 바뀌지 않았습니다.
잘못된 관리, 비현실적인 기대, 직무에 적합한 직원을 확보하지 못하거나 직무를 수행하지 못하게함으로써 결과적으로 유지하지 못하는 경우. SW 개발 작업에 적합하지 않은 작업장 및 도구; 처리되지 않은 개인 갈등; 정치 ; 이것들은 프로젝트를 처음부터 파멸시킬 수있는 전형적인 문제 중 일부일뿐입니다.
좋은 코드를 작성하는 것이 더 어려운 이유는 무엇입니까?
수십 년 전보다 좋은 코드를 작성하는 것이 실제로 어렵다는 확신이 들지 않습니다. 실제로 머신 코드 또는 어셈블리와 비교할 때 현재 주류에있는 모든 것은 처리하기가 훨씬 쉽습니다. 더 많은 것을 생산해야 할 수도 있습니다.
언급 요소, 시간 및 복잡성 때문입니까?
예, 도구의 성능이 향상됨에 따라 달성 가능한 복잡성이 확실히 증가했습니다 (그리고 계속 증가하고 있습니다). 다시 말해, 우리는 한계를 뛰어 넘고 있습니다. 30 년 전에 그날의 가장 큰 도전을 해결하는 것이 오늘날의 가장 큰 도전을 해결하기가 어렵도록 번역했습니다.
OTOH는이 분야가 엄청나게 성장한 이래로 30 년 전보다 훨씬 더 "작거나"알려진 문제가 있습니다. 이 문제들은 기술적으로 (더 이상) 도전이되어서는 안되지만 여기에 위의 최대 값을 입력합니다 :-(
또한 프로그래머의 수가 엄청나게 커졌습니다. 그리고 적어도 제 개인적 인식은 평균적인 경험과 지식 수준이 떨어 졌다는 것입니다. 단순히 교육을받을 수있는 노인보다 필드에 계속 도착하는 주니어가 훨씬 많기 때문입니다.
방법론이 올바르게 실행되지 않았습니까?
확실히 그렇지 않다. DeMarco와 Lister는 big-M 방법론에 대한 가혹한 단어를 가지고 있습니다. 그들은 어떤 방법론도 프로젝트를 성공시킬 수 없다고 말합니다. 팀의 사람들 만이 할 수 있습니다. 그들이 칭찬하는 작은 방법론은 우리가 현재 "민첩한"것으로 알려진 것과 매우 유사하다. 10 년 전만해도 널리 알려지지 않은 단위 테스트 및 리팩토링과 같은 모범 사례는 말할 것도없고, 오늘날 많은 졸업생들도이를 알고 있습니다.