규율(Discipline)에 대해서
들어가기에 앞서 규율(Discipline)에 대해서 알아보고자 합니다. 규율에는 본질적인 부분(Essential)과 임의적인 부분(Arbitrary)이 있습니다.
본질적인 부분은 규율의 존재 이유로서 규율에 권위를 부여합니다.
임의적인 부분(Arbitrary)은 규율에 형태/실체를 부여하고 이 부분 없이는 규율의 존재가 불가합니다.
이 2가지 부분을 예를 외과의가 수술 전 손을 씻는 것을 예로 설명해 보겠습니다.
외과의 수술 전 손 씻기에서 임의적인 부분은
손가락 별로 각 면을 10번씩 40번을 씻는다.
염소포백제를 사용한다.
입니다. 이런 임의적인 부분은 과하게 느껴져 거부감이 들 수 있습니다. 하지만 이 경우의 본질적인 부분은 외과의의 손은 매우 깨끗해야 한다는 것입니다.
규율의 임의적인 부분에 거부감이 너무 강하면 본질적인 부분을 외면하게 되는 경향이 생깁니다. 이 매거진에 나올 제 의견들이 임의적인 부분이 다소 과해 보이더라도 본질적인 부분에 집중해서 읽어주시면 이헤에 도움이 되실 것 같습니다.
무언가를 익힐 때는 임의적인 부분을 준수하면서 과하게 준비하는 것이 좋은 것 같습니다. 그래야만 설전에서 본질적인 부분이 잘 지켜지는 것 같습니다. TDD, 리팩터링 등이 특히 그런 것 같습니다. 연습은 과하게 원칙을 지키서 해야 합니다. 그래야 현업에서 시간에 쫓길 때에도 제대로 할 수 있게 됩니다.
제가 작성하는 글에는 지식적인 부분도 있겠지만 나름 오랜 기간 개발자, 개발리더로 일하며 얻은 경험에 대한 내용이 많고, 나이가 들어서인 지 걱정이 많아져서 꼰대 소리에 가까운 내용이 많을 수 있습니다. 그럴 때 임의적인 부분보다는 본질적인 부분에 좀 더 집중해서 들어주시면 도움이 될 것 같습니다.