질문은 개발자가 가져야 할 덕목 중 하나이다. 왜 질문이 중요할까?
만약 A라는 사람과 B라는 사람이 사과라는 주제를 가지고 이야기를 한다고 가정해보자.
A: 사과는 빨간색이야
B: 아니야 초록색 사과도 있어
A: 무슨 소리야 사과는 빨간색이야
B: 사과의 종류로는 부사(후지)계열이 국내 재배면적의 70%이상(만생종이 64%, 조생종이 8%)을 차지하고 있고, 홍로가 13%, 쓰가루(아오리), 양광이 5% 미만을 점유하고 있어. 이처럼 사과는 초록색도, 빨간색도 있어
A: 그렇구나. 새롭게 알게 된 사실이네.
위의 대화와 같이 A라는 사람은 빨간색인 사과만 있다고 기존에 알고 있었지만 B라는 사람과의 대화를 통해 초록색인 사과가 있다는 것을 알게 되었다.
기존의 사람들은 질문을 하기 전까지는 본인이 알고 있는 지식을 이야기해주지 않는다.
만약 본인이 코드를 보다가 모르는 코드를 발견했다고 하자. 그렇다면 코드를 이해하기 위해 노력하는 방법은 다음과 같을 것이다.
첫번째로 코드의 앞 뒤를 보고 이 코드가 왜 이렇게 사용된 것인지 유추해본다.
두번째로 코드에 사용된 문법을 보고 코드를 이해한다.
세번째로 왜?라는 질문을 떠올리게 된다. (보통 이 단계는 코드를 이해하고 자신이 알고 있는 지식과 상충하거나 반하는 경우 생각하게 된다.)
네번째로 회사에 작성되어 있는 가이드라인이나 레퍼런스를 보고 코드로 작성하고 싶었던 기능이 무엇인지 생각해본다. (있으면 보면 된다.. 하지만 95%의 확률로 제공되지 않거나 없거나 주지 않는다...)
다섯번째로 작성자를 확인하고 질문을 하는 단계에 이른다. (보통 작성자가 같은 업무 공간에 있다면 좋겠지만 퇴사를 했거나 작업을 끝내고 다른 부서로 옮겨간 개발자일 수 있다. 이 경우 전화를 하거나 회사 내에 사용되는 이메일을 사용하거나 직접 찾아가는 방법을 사용한다.)
이제 질문의 단계이다!
질문을 함으로써 질문자는 작성자의 의도, 작성하면서 발생했던 오류, 오류를 시도/해결한 방법, 코드에 사용된 문법 등을 알게 되고 작성자는 질문자의 질문을 토대로 새로이 알게 되거나 남들은 이러한 생각을 하는구나, 이 코드를 보고 이런 생각을 할 수 있구나와 같은 과정을 거치면서 상호 간의 개발 실력이 올라가는 발판을 마련할 수 있다. 물론 질문을 받아주지 않는 작성자들도 있을 수 있다. (현저히 적다... 왜냐하면 질문자가 이해를 못하면 본인이 추후 발생되는 오류를 해결하기 위해 연락을 받거나 직접 고치는 상황이 발생하기에...)
이처럼 질문을 통해 서로의 지식을 높이고 상대방의 생각을 들으므로써 본인의 역량 강화에 도움이 되게 된다.