인간은 신이 아니니까
물론 그럼에도 불구하고 특정 범위와 경우에서는 오류 없이 동작한다고 이야기할 수 있습니다. 모든 경우를 이야기할 수는 없어도 꼭 확인해야 하거나 추후 발견된 문제들은 전부 해결할 수 있죠. 실제로 개발을 할 때도 최대한 많은 경우를 생각하고 대비하고자 노력합니다. 완벽하지는 않더라도 최선의 소프트웨어를 만들어 내야 제품으로써 시장에서 살아남을 테니까요. 그렇기에 소프트웨어 개발에는 무엇이 최선인지를 결정하는 것도 포함됩니다. 완벽에 도달할 수 없기에 최선이라는 기준을 합의하고 그것을 향해 달려 나가는 셈이죠. 유독 소프트웨어는 다른 분야와 달리 유형의 무엇인가로 드러나지 않다 보니 더욱 그런 것 같습니다.
개발에 대해 모르는 게 훨씬 더 많은 햇병아리이지만, 제가 파악한 소프트웨어 개발은 이 과정을 끊임없이 반복하는 게 전부인 것 같습니다. 인간이 만들어낸 소프트웨어도 이러한데 하물며 인생은 어떨까요. 삶에 있어서도 완벽은 없고 최선이라는 것도 새로운 정보가 들어올 때마다 조금씩 변할 수밖에 없습니다. 그렇기에 나름의 최선을 잘 정하는 현명함과 그것을 성취하기 위한 건강한 노력이 필요한 것 같습니다. 또한 최선이라는 건 상황에 따라 얼마든지 달라질 수 있다는 것을 받아들이고 이미 정했던 최선을 바꿀 수 있는 유연함도 갖추면 좋을 것 같아요. 완벽한 길을 알 수 있다면 이럴 필요가 없겠지만, 우리는 완벽한 신이 아니라 부족한 많은 평범한 인간이니까요.