반응형

안녕하세요. 신기한 연구소입니다.

초보(신입) 개발자인데 코딩만 잘하면 되는 거 아닌가요? 

막상 프로젝트에 투입되니 잘하고 있는 건지도 모르겠어요.

입사 후 선배 개발자들이 저를 답답하게 봐요. 혼나기도 하고 잔소리도 엄청 들어요.

업무 회의에 들어가면 이해가 잘 안되기도 하고 상사가 업무 지시를 내려도 무슨 말인지 잘 모르겠어요.

혹시, 어렵게 신입(초보) 개발자로 취업했는데 이런 경우가 있지 않으신가요?

이런 경우는 반드시 알아야 하는 것도 있고 그래서 미리 준비를 해야 하는 것도 있답니다.

20년 넘게 프로젝트를 해왔고 그 경험을 바탕으로 개발자들이 어떤 것을 알아야 하는지 정리해 봤습니다.

프로 개발자가 되고 싶다면 꼼꼼히 읽어보고 꼭 실천하길 바랍니다.



비전공이었지만 개발자의 꿈을 안고 독학으로 시작해 국비 학원을 수료하고 수십여 통의 이력서를 보내 신입(초보) 개발자로 첫 발을 내 딛은 지가 벌써 20년 하고도 몇 년이 더 흘렀습니다.  개발자로 살아온 그 시간은 정말 재미도 있었고 어려움도 있었지만 잘 마무리가 되고 오류가 해결될 때는 개발자로서 적성에 맞다는 뿌듯함 같은 것이 있었습니다.

그 많은 프로젝트를 하면서 수많은 사람들을 만났고 그 다양함에 즐겁기도 했고 짜증 나는  경우도 종종 있었답니다. 하지만 세상 어디에도 내 맘에 쏙 드는 사람들만 있는 곳은 없었답니다. 그 이유로 그만두거나 이직을 한다면 세상 어디에도 갈 곳이 없다는 의미인 것입니다.

모두가 겪는 이 난감한 상황을 책을 통해서 많이 극복하고 도움을 받았답니다. 개발 전공책이 아닌 다양한 책을 읽었는데 어떻게 책을 통해서 독서를 통해서 개발자로 잘 성장해 왔는지 그 이야기를 해보려고 합니다.

 

1. 개발자에게 가장 필요한 것은 독서, 책을 통해서 지혜를 얻다.

보통 개발자는 개발 관련 책을 많이 읽습니다. 물론 책을 읽지 않고 구글링 (요즘은 chatGPT)으로 궁금한 부분을 해결하는 코더들도 많습니다. 최신 트렌드나 기술에 뒤처지지 않기 위해 낮에 근무가 끝나면 저녁이나 주말에 관련 책을 구매해서 읽고 코딩하는 멋진 개발자들도 많습니다. 

사진: Unsplash 의 Matias North

하지만 개발자는 코딩만 하는 것은 아닙니다. 사실 프로그램을 만드는 것은 누군가 요청에 의해 돈을 받고 만들어 주는 것입니다. 즉, 요구사항도 확인해야 되고 회의도 자주 하는 등 소통 또한 중요하다는 의미입니다. 기술 위주로만 책을 읽고 기술력만 향상한다면 개발자로서 반쪽짜리라 할 수 있습니다. 

고객(현업)은 자신들이 편하게 일할 수 있는 프로그램이 필요합니다. 그래서 개발자에게 돈을 주고 프로그램을 만들어 달라고 요청합니다. 그런데 보통 고객은 프로그램에 대해 전문적으로 아는 경우가 드뭅니다. 이런 경우 개발자들이 전문 기술 위주로 설명을 한다면 고객은 잘 이해하지 못합니다. 그저 "어려운 건가? 잘 만들어 주겠지." 이 정도로 넘어가는 경우가 종종 있답니다. 하지만 이후 개발이 어느 정도 진행되면 서로 다른 생각을 하고 있다는 것을 알게 되고 그게 프로젝트의 발목을 잡게 됩니다.

또한, 전문 지식이 없는 고객의 경우 표현에 한계가 있기에 개발자에게 제대로 설명을 못하는 경우가 있습니다. 그로 인해 서로 말다툼이 일어나기도 하고 개발자는 고객이 무슨 말을 하는지 모르겠다면서 고객과의 대화를 기피하게 됩니다. 그리고 개발자는 본인 마음대로 대충 개발을 하는 경우가 발생하기도 합니다. 물론 테스트 기간에 고객은 이렇게 말합니다.

"이건 내가 원하는 프로그램이 아닌데요"

그때부터 요구사항, 회의록을 뒤져가며 서로 다툼이 발생하게 됩니다. 

이런 경우가 발생하지 않기 위해서는 개발자의 역할이 정말 중요합니다. 고객은 고객입니다. 고객이 없다면 개발자는 혼자 취미로 개발하는 것이기에 직업이 될 수 없겠지요? 앱이나 솔루션을 만들어 판매하더라도 고객이 있어야 합니다. 우리가 열심히 프로그램 공부를 하는 것은 직업적으로 성공도 하고 돈도 벌기 위해서니까요.

이런 문제를 해결하는 방법 중 가장 좋은 것이 독서입니다. 여기서 독서는 책을 읽는 것인데 책이 전문 개발 서적을 의미하는 것이 아닙니다. 물론 개발 방법론이나 알고리즘도 중요한 읽을거리지만 고객과의 소통을 위해서는 다른 책을 읽어야 합니다.

어떤 책을 읽어야 할까요?

다양한 책들을 읽어야 합니다. 예를 들어 볼까요?

우선 추천하는 분류는 마케팅 책입니다. 개발자가 마케팅 책을 왜 읽어야 할까요? 그 책에는 고객의 마음을 읽고 고객이 원하는 것을 알아내는데 최적화된 내용들이 있습니다. 고객의 마음을 얻는 것이 개발자에게 엄청 중요합니다.

고객의 정확한 요구를 알아낼 수 있고, 어려운 상황이 발생했을 때 효율적인 제안을 통해 도움을 받을 수도 있습니다. 또한 고객은 자기들의 어려움, 필요한 것을 해결해 줄 거라는 믿음을 갖게 되므로 이런 능력이 있는 개발자가 필요하게 되는 것입니다. 심지어 입사 권유를 하는 고객들도 있답니다. 반대로 이야기하면 기존에 개발자들 때문에 많이 힘들었던 고객들이라면 자신들을 이해해 주고 소통이 더 잘되는 개발자를 원하게 된다는 겁니다.

심리학 책도 추천합니다. 고객도 사람이고 개발자도 사람입니다. 심리학 책을 읽다 보면 고객들의 마음을 더 쉽게 이해할 수 있게 됩니다. 물론 나쁜 의도로 그들의 마음을 이용하면 안 됩니다. 심리학 책을 읽는다고 심리학자처럼 된다거나 최면을 걸 수 있는 것은 아닙니다. 심리학 책을 읽으면 내 마음도 정리가 되고 스트레스 해소에 도움이 되기도 합니다.  고객이 어떤 어려움이 있고 그들의 스트레스는 무엇인지 조금이나마 알 수 있게 되면서 그들에게 어떻게 도움을 줄 수 있을지 준비할 수 있는 능력을 키울 수 있습니다. 

보통 이렇게 고객들과 잘 지내고 칭찬받는 개발자들은 아마 독서를 많이 하고 있을 겁니다. 책을 통해서 여러분은 능력 있고 인기 있는 개발자로 성장할 수 있게 된다는 의미입니다.

독서의 소중함을 알았다면 빨리 책을 찾아보세요. 삼국지에서도 여러분은 개발자로의 삶에서 길을 찾을 수 있을 겁니다.

 

2. 개발자에게 시간 관리는 필수템이다.

개발자에게 시간은 정말 소중합니다. 물론 개발자뿐만 아니라 시간은 모두에게 소중합니다. 특히 시간 관리는 개발자라면 철저하게 관리해야 하는 템입니다.

사진: Unsplash 의 Kevin Ku

여러분들은 출퇴근 시간을 어떻게 보내고 있나요? 피곤함에 잠을 잘 수도 있고 무한 스크롤링하는 SNS나 숏 영상을 시청하기도 합니다. 

퇴근 후에는 지인과 한 잔의 술로 하루의 스트레스를 해소할 수도 있고 드라마나 영화를 보면서 저녁을 먹기도 합니다. 또는 늦은 시간까지 게임을 하기도 하겠지요.

주말이나 휴일 또한 밀린 잠을 잘 수도 있고 여기저기 놀러 가기도 하며 친구들과 술을 마시며 새벽까지 놀기도 합니다.

모든 개발자가 그러진 않겠지만 출퇴근 시간이나 사무실에서 개발자들의 이야기를 들으면 대부분 비슷한 방식으로 시간을 보냅니다. 

일전에 고속도로 휴게소 화장실에서 읽은 문구입니다. 이름이 기억나진 않지만 엄청 유명한 고령의 피아니스트 이야기였습니다. 그는 고령의 나이와 엄청난 피아노 실력이 있음에도 매일 아침 피아노를 친다고 합니다. 왜 그렇게 매일같이 열심히 피아노를 치는가? 이제 그 정도 실력이면 그렇게 안 해도 되지 않냐는 질문에 이렇게 대답했다고 합니다.

"나는 매일 아침 피아노를 칠 때마다 실력이 더 나아지고 있다는 것을 느낍니다"

우리도 매일 우리를 갈고닦아야 합니다. 우리는 직업인입니다. 개발자입니다. 

기술과 소통의 능력을 키우기 위해서는 시간을 잘 활용해서 우리 자신에게 투자해야 합니다. 

열심히 하려는 후배 개발자들을 만나면 이런 이야기를 해줍니다.

"고3 때처럼 열심히 해"

 

3. 개발자에게 관계는 성공적인 프로젝트 완수를 위해 필요하다.

공통 개발자에게 개발 요청을 한 적이 있습니다.

"이걸 내가 왜 하나요?"

사진: Unsplash 의 Priscilla Du Preez 🇨🇦

유지보수 사이트에서 몇 번 번복된 일을 요청한 적이 있었습니다.

"이랬다 저랬다 하지 말고 한 번에 정리해서 최종만 주세요"

일정이 급한 프로젝트에서 이런 경우도 있었습니다.

"주신 문서로 개발하기 어렵습니다"

"나는 개발 다 했고 문서까지 만들어 줬으니 알아서 하세요"

 

위 경우는 많은 개발자들이 경험했을 거라 생각됩니다. 또는 본인이 이로 인해 어려움을 겪었을 수도 있고 또는 본인이 주인공일수도 있을 겁니다.

해달라는 대로 해줬는데 못 알아듣는 건 실력문제 아닌가?라고 생각하는 개발자가 은근히 많습니다.

이렇게 해달라고 했는데 다시 바꿔 달라고? 내가 왜 그래야 하는데?라고 생각하는 개발자도 있습니다.

그런데 중요한 것인 이렇게 소통이 어렵거나 고집이 쎈 개발자들은 어느 순간 안 좋은 소문이 날 수도 있습니다. 

근무시간 내라면 몇 번의 변경이라도 해주는 것이 맞습니다. 요청한 사람도 확인하면서 오류를 발견했기에 다시 요청을 할 수밖에 없거든요. 이런 상황에서 짜증을 내면서 두세 번 안 하게 해달라고 하면 요청한 사람은 이후 어떤 생각을 갖게 될까요?

내가 해 줄 수 있는 일이라면 내가 직업인이고 프로라면 당연히 해주는 게 맞습니다. "내가 왜 해줘야 되나요?"라는 표현을 자주 사용하게 되면 어느 누구도 요청을 하지 않게 될 겁니다. 그렇게 되면 할 일이 없게 되겠지요?

나는 개발도 해줬고 문서까지 만들어줬는데 뭘 더 해줘야 하나요? 본인들의 실력이 부족해서 이해를 못 하는데 내가 더 자세히 설명해줘야 하는 건 아닌 거 같다.라는 경우도 봤습니다.

그런데 이렇게 생각해 보세요. 내가 열심히 요구에 맞게 만들어줬는데 그걸 이용해서 개발해야 하는 다른 개발자가 문서만으로는 이해가 안돼서 사용을 못한다면 그 프로그램은 안 만든 것만 못합니다. 

잘 만들어줬으면 다른 개발자들이 잘 사용할 수 있게 최대한 쉽고 예제를 만들어 줘야 합니다. 모든 개발자가 다 똑같지 않기 때문입니다. 

이런 부분들로 일정에 치명적인 문제를 만드는 개발자들이 있습니다. 결국 본인 명성에 먹칠을 하는 겁니다.

내가 만든 프로그램이라면 다른 개발자들이 쉽게 이용할 수 있게 하는 것도 개발자의 실력이고 능력입니다.

근무시간 내라면 몇 번이라도 변경해 줄 수 있다면 직업인으로서 당연한 의무라 생각합니다.이걸 내가 왜 해줘? 가 아니라 내가 도움을 줄 수 있다면 당연히 만들어 줘야지 라는 생각이 개발자의 능력이라고 생각합니다.모 대형 프로젝트에 갔는데 위 경우가 모두 발생하고 있었습니다. 고객이나 사업관리는 프로젝트가 오픈 못할까 봐 엄청 스트레스를 받고 있는 상황이었습니다. 왜 그런지 그 안을 들여다보니 다들 잘하고 있었지만 서로가 소통을 못하고 있었습니다. 그저 선 하나만 연결해 주면 마음을 열고 잘해주는 개발자들이었는데 그 역할을 담당한 개발 총괄은 그저 남 탓만 하고 있었습니다. 개발자들의 능력을 인정하고 정중하게 부탁을 하면 보통 다들 도와줍니다. 어려워하지 말고 책을 읽고 느낀 대로 대화를 시도해 보세요. 삭막한 세상에 살다 보니 마음을 닫고 사는 개발자들도 있습니다. 하지만 그들도 인정받고 부탁을 받는다면 기꺼이 손을 내밀어 도움을 줄 겁니다.

 

4. 정리

신규(초급) 개발자에서 프로 개발자가 되고 싶다면,당연 개발 공부는 꾸준히 해야 하고 사람에 관한 공부를 위해 독서는 필수라 할 수 있습니다.그러기 위해서 시간 관리는 철저히 해야 한다고 다시 강조해 봅니다.

 

반응형