일반적으로 생각하는 개발 능력은 코딩을 잘하는 것, 시스템 구조를 설계하는 것 정도가 있을텐데

사실 가장 중요한건 "요구사항을 제대로 구현해내는 능력" 입니다


요구사항을 제대로 구현한다는건 시킨대로 하라는게 아니고

요구사항 속에 숨겨진 진짜 요구사항을 캐치해낸 후, 그것을 요구자에게 이해시키고 함께 완성시켜야한다는 의미입니다


좀 웃긴 이야기지만, 요구한 사람은 일반적으로 자기가 뭘 원하는지 잘 모릅니다

두루뭉술한 문서를 가져와서 만들어달라고 하는데요


개발자는 그걸 그대로 받아들이면 안되고 요구자가 달성하고 싶은 목표를 먼저 알아내야합니다

그 다음에는 목표를 달성하기 위해 이게 왜 필요한지를 알아내야합니다

보통은 듣다 보면 논리적으로 허점이 많습니다

개발자는 이 논리적 허점들을 지적하고 함께 메꿔나가야합니다


이런 과정을 거치지 않는다면 결과물이 구린건 당연하고, 정돈되지 않은 요구사항이 정돈되지 않은 코드로 표출됩니다

정돈되지 않은 코드는 맥락이 없으므로 패턴화 시키기도 어렵고 유지보수도 어렵고 버그도 내포하기 쉽습니다

(패턴화 해도 개억지패턴화 됩니다)



ps1. 이런 과정을 통해 기획서를 갈아엎은 경험이 상당히 많습니다

ps2. 일반적인 기획자는 전문화 된 사람이 아니라서 무작정 믿으면 안됩니다
데이터도 모르고 디자인도 모릅니다
그냥 일반 사용자에 비해 비슷한 서비스를 훨씬 더 많이 써봤고 리서치해봤다 정도이고
뇌피셜을 기반으로 통계 마사지를 수행한 후 방향을 잡는다 정도입니다

(그래서인지 갑자기 근거도 없이 방향을 바꾸기도 함)


ps3. 여기서 요구되는게 인싸력입니다. 수많은 논의를 거쳐야 하는데, 말도 제대로 못하고 배려심도 없으면 골치아파집니다