Post View

개발자에게 가장 중요한건 개발스킬일까?

가장 중요한건 개발스킬일까?

제가 개발을 시작했을 때 가장 중요하다고 생각하던 것은 개발스킬이었습니다.
자신이 원하는 것을 만들기 위해서는 실력이 받쳐줘야 할테니까요.

그런데 시간이 지나고 실무를 경험하다보니 개발스킬 외에도 중요한 것들이 있다는 생각을 하게 되어 이렇게 정리해보았습니다.

많은 사람들이 공감할꺼라고 생각하는데, 처음 개발을 시작할 때는 혼자서 하는게 편하다고 느낍니다.
하지만 회사에서는 혼자 개발할 수 있는 양이 아니기 때문에 여러명이 협업을 해야하는데, 이 과정에서 개발스킬 만으로는 많은 문제가 발생합니다.

협업을 할 때 퀄리티 높은 프로그램을 정해진 시간 안에 해결하기 위해서는 개발스킬뿐만이 아니라 업무 이해와 의사소통이 굉장히 중요하다고 느꼈습니다.

 

고객의 요구사항 

제 첫 회사는 중소기업이었는데 주로 작은 프로젝트를 하다보니 별다른 문서나 회의 없이도 쉽게 끝마칠 수 있었는데, 어느날 한 프로젝트를 맡게 되면서 문제가 발생합니다.
이 프로젝트 또한 문서나 회의가 거의 없는 상태에서 팀장님께 전달받은 내용만 가지고 개발을 했습니다.

처음 제가 전달받은 요구사항은 "파워포인트와 같이 이미지나 영상, 텍스트 등의 객체를 Drag&Drop하여 화면에 배치할 수 있고, 배치된 항목들을 겹쳐 놓으면 해당 영역에 겹쳐진 항목이 특정 시간동안 슬라이드 되도록 하는 프로그램"이었습니다.

문제는 시간이 지날 수록 커집니다.
처음에는 하나의 화면에 표시해야할 프로그램을 제작해야하던 것이 시간이 지나자 중앙 관리 시스템화를 시켜야한다고 하고, 화면에 배치할 수 있는 객체는 이미지, 영상, 텍스트 외에도 메뉴 버튼이나 메뉴에 따른 화면 등 더욱 더 복잡해지기 시작했습니다.

결국 매일 저녁 12시까지 3개월정도를 개발하다가 어느날 고객을 만나 어떤 프로그램을 요청했는지 여쭤보았습니다.
고객은 "파워포인트처럼 이미지나 영상, 텍스트 하나가 슬라이드 되는 프로그램"을 원했다고 합니다.

퇴사 후 돌이켜 생각해보니, 고객 회의를 했던 분이 다른분께 전달하면서 "파워포인트처럼 슬라이드 되는 프로그램"이 "파워포인트처럼 동작하는 프로그램"이 되었고 이후 중앙 관리 시스템화를 시키면서 더욱 더 복잡한 프로그램이 되었습니다.

요구사항 명세서가 명확하지 않으니 결국 어느순간 어디까지가 프로그램의 끝인지 알 수 없게 되었고, 마지막에는 기능을 fix한채로 오류들을 수정하면서 마무리가 되었습니다.

이렇게 고객의 요구사항이 명확하게 전달이 되지 않아 목표가 없는채로 개발을 하다보니 으로써 개발해야하는 범위나 기간이 급격히 커졌습니다.

위의 경우에는 고객이 원한 범위보다 더 커졌고, 기간이 여유로웠기 때문에 고객은 아무말 없이 넘어갔지만, 회사의 입장에서는 그만큼 개발기간과 인력을 소모했기 때문에 개발을 맡고 손해를 보게 된 상황입니다.

 

업무이해와 의사소통의 실패

첫 회사를 벗어난 뒤에도 실무를 경험하면서 업무이해를 못하거나 의사소통이 잘 안되는 개발자를 많이 만나보았습니다.
고객이 빨리 개발을 하라고 하니 무엇을 개발해야하는지 이해를 하지 못한채로 진행을 하는 사람도 있었고, 다른 팀의 개발자와의 의사소통을 힘들어 하는 사람도 있었습니다.

결국 위에서 말한 경우의 개발자들은 짤리거나 퇴사를 하게 되었지만, 이런 극단적인 예가 아니더라도 몇몇 개발자들은 확실한 이해나 의사소통이 부족한 채로 기계적으로 개발을 하는 경우가 있습니다.

이렇게 하나의 업무에 대해서 개발자간의 이해가 다르거나 의사소통이 되지 않는다면 프로그램이 원하는대로 동작하지 않고, 장애가 발생할 가능성이 높아집니다.

이러한 부분들을 인지한 이후에는 프로그램 개발을 하기 위해서는 ‘내가 개발해야하는 것이 무엇인가?’란 생각과 ‘업무를 하는 사람들간의 소통’이 확실해야한다고 생각하고 있고, 아무리 업무가 복잡하더라도 이해하고 소통하며 더욱 더 높은 품질의 프로그램을 개발하려고 노력하고있습니다.

Comments