태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

신입 개발자가 들어오면?

2008/11/13 22:38 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed


신입 개발자가 들어오면 어떻게 하시나요?

 

회사에서 소프트웨어를 개발하기 위해서는 많은 것을 알아야 함에도 불구하고 딱히 가르칠게 별로 없는 경우를 많이 보았습니다. 체계적인 교육 방법로 마땅치 않고요.

어떻게 신인 개발자를 가르치고 있는지 제가 아는대로 한번 나열을 해보죠.

  • 멘토(사수)를 지정해서 맨투맨으로 이거 저거 생각나는 대로 알려준다.
  • 회사에 문서는 정말로 많다. 책꽂이로 한 벽 가득이다. 그 중에서 뭘 보라고해야 할지 잘 모르겠다.
  • 제품에 관한 변변한 문서가 하나도 없다. 있다 하더라도 부실하거나 옛날 버전이다. 그래서 말로 아는대로 설명해준다.
  • 개발하는 제품의 메뉴얼을 보여주고 제품의 기능을 익히게 한다.
  • 일단 일을 시키고 본다. 물어보는 것이 있으면 그때 그때 알려준다.
  • 소스코드를 보게 한다. 소스코드를 분석해서 스스로 제품의 구조를 알아내는 것도 큰 공부다.
위와 같은 현상이 소설은 아닙니다. 실제로 주변에서 흔히 있는 일을 적어본 겁니다.
우리는 전혀 다르다라고 하시는 분도 있나요?
아니면 이게 무슨 문제지? 라고 생각하는 분도 있나요? 음... 그럼 그렇게 생각하는 것이 또 문제네요. ^^

사실 신입개발자가 들어왔을 때 효율적으로 교육을 시킬 수 있는 역량을 갖추는 일은 쉬운 것이 아닙니다.
그 정도 되면 회사가 소프트웨어 개발 회사로서 왠만한 모든 것은 다 갖추고 있는 것이니까요.

이는 "닭이 먼저냐 달걀이 먼저냐"와 비슷합니다.
그렇게 잘 교육된 신입 개발자는 나중에 고참이 되어서 새로운 신입사원에게 자신이 겪은 대로 할 것입니다.

모든 것을 다 갖추어야 한다고 하면 막막하니까 핵심적인 것만 몇 가지 얘기를 해보죠.

내가 어느 소프트웨어 회사에 신입 개발자로 입사를 했습니다.
당연히 그 소프트웨어 회사는 다음과 같은 기본적인 시스템은 갖추고 있어야 합니다.
  • 소스코드관리시스템
  • 버그관리시스템
  • 개발 프로세스
  • 코딩컨벤션(프로그래밍 가이드)
그리고 입사를 하면 가장 먼저 위의 시스템과 프로세스, 규칙을 익히고 제품에 대한 기본적인 개발문서를 보게 됩니다. 이때 문서가 너무 많거나 아예 없거나 부실해서 있으나마나 하면 소용이 없죠.
그래서 제품의 스펙문서(SRS, Software Requirements Specification)을 먼저 보고 제품을 이해하게 되면 설계서를 보게 되죠. SRS라는 용어가 낯선 분이 있을텐데, SRS는 앞으로 제가 올리는 수많은 글들의 주요 주제가 될 예정이니 지금은 그냥 소프트웨어의 스펙을 정리한 문서라고만 생각해도 됩니다.

이제 저는 소프트웨어 개발에 투입될 기본적인 준비는 된 겁니다. 

그리고 나면 버그를 고치는 일부터 할당이 됩니다. 아주 쉬운 버그부터 시작합니다.
고참은 고치는데 10분이면 될 일은 나는 반나절은 걸려서 해야 할 겁니다. 그래도 그만한 가치가 있는 일이지요.
  • 먼저 버그관리시스템에서 버그를 할당 받습니다.
  • 선배가 어느 파일을 어떻게 고쳐야 하는지도 가이드를 해줍니다.
  • 소스코드관리시스템에서 코드를 내려 받아서 소스코드를 수정합니다.
  • 선배들이 코드리뷰를 해줍니다.
  • 빌드스크립트를 이용해서 빌드도 해봅니다.
  • 개발자 Unit Test도 수행하고요.
  • 버그관리시스템도 갱신합니다.
이런 일을 몇 번 하면서 점점 더 어려운 일을 하지만 항상 선배들이 코드리뷰를 해줍니다.
그러고 나면 설계에도 참여를 하고 새로운 모듈이나 제품도 맡게 됩니다.

엄청나게 많은 일을 몇 줄로 작성을 하다 보니 너무 간단해지기는 했지만 기본은 아래 3가지 입니다.
  • 제대로된 시스템(Infrastructure system)과 개발 프로세스
  • 최신 버전으로 업데이트된 제대로 적힌 핵심 개발문서(SRS)
  • Code Review, Peer Review
사실 이 기본을 갖추는 일은 매우 어려운 일입니다.
어떻게 이러한 기본을 갖춰나가야 할지에 대한 의문이 있다면 저와 계속 의논을 해나가면 어떨까요?



 


저작자 표시 비영리 변경 금지

전규현 사람과 기술

Trackback Address: http://allofsoftware.net/trackback/16 관련글 쓰기
  1. Blog Icon

    늘어놓고 보니 참 많네요. >_<
    한명의 개발자가 되기 위해서는 오랜 시간이 소요되는건 당연한거 같아요.
    나열된 순서나 내용이 참 좋네요. ^^

  2. A2님 반갑습니다.
    앞으로도 지속적인 관심 부탁합니다.
    감사합니다.

  3. 아!~ 저렇게 해야 하는군요 ㅠ.ㅠ; 아참 저는 신입입니다. ㅜ.,ㅜ 우리 회사는 그냥 일만 시키던됭 멘토도 없공 ㅜ,.ㅜ;

  4. 김석영님 안녕하세요.
    김석영님 같은 경우가 대부분입니다. 회사의 시스템과 프로세스가 제대로 갖춰져 있지 않으면 대부분의 개발지식은 선배들의 머리속에 있습니다. 눈으로 볼 수 있는 것은 약간의 문서와 코드가 대부분이죠.
    이런 경우는 무슨 수를 써서든 고참들에 배워야죠. ^^ 하지만 계속 이럴 수는 없겠죠. 회사에서도 필요한 시스템을 갖추고 프로세스도 갖추고 성숙된 조직이 되어야 경쟁력이 높아지죠.

  5. 좋은 글 감사합니다. ^^
    개인적으론 SRS를 "개발 요구 명세"로 표현할까 하는데, 괜찮을지요.

문서를 작성하면 더 오래 걸린다는 고정관념

최근에 국내 유수 대학의 컴퓨터 공학 교수를 만난 적이 있다. 그 교수님도 문서를 작성하면서 Software를 개발하면 더 오래 걸린다고 굳게 믿고 있었다. 어느 정도 이해가 되는 상황이다. 원래 소프트웨어 공학은 실전에서..

이슈를 모으기도 정말 어렵다.

많은 회사들이 개발 프로세스 개선을 하겠다고 선진 개발 방법론을 흉내내거나 실패한 대기업의 프로세스를 가져다가 적용하곤 한다. 복잡한 프로세스와 많은 Template를 가져다가 적용해보려고 하는데 대부분은 실패를 한다. 기초..

변화에 실패하는 9가지 고정관념

회사는 끊임없이 변화하지 않으면 지속 성장하지 못한다. 하지만 변화는 피와 살을 깍는 고통을 동반하고 또 많은 회사가 변화에 실패해서 성장하지 못하거나 사라져간다. 보통의 사람들은 대부분 변화를 싫어하고 기존에 하던대로 계속..

좋은 프로그래머가 되는 24가지 방법

1. 프로그래밍에 열정이 있어야 한다. 열정이 없고 즐기지 못하면 평생하기 어려운 일이다. 2. 프로그래밍 기초 원리를 완전히 이해해야 한다. 원리를 모르면 근본적인 해결을 할 수 없다. 3. 문제 해결 능력을 키워야 한다...

요즘 실리콘밸리에서는...

얼마전 실리콘밸리의 한 Startup company에서 CTO로 일하고 있는 오랜 친구가 한국에 놀러와서 같이 여행을 갔다. Informix에서 소프트웨어 엔지니어로 시작해서 한 20년 정도 일한 중국인 친구다. 같이 일을..

전문가 vs. 책임자

우리나라 조직문화는 전문가보다 책임자를 선호한다. 조직의 장이 책임을 지고 모든 일을 알아서 하는 것이다. 상명하복 관계 위주다. 경영자가 SW개발에 대해서는 잘 모르는 경우 누구 한명이 책임지고 개발해줬으면 하는 생각을 하..

소프트웨어 회사의 자산은?

소프트웨어 회사의 자산은 무엇일까? 흔히 개발자가 소프트웨어 회사의 재산이라고 한다. 이런 회사일 수록 회사가 가지고 있는 것은 정말 개발자밖에 없다. 또한 파악하기 어려운 한 무더기의 소스코드가 있다. 개발자들이 나가면 이..

관리자가 이런 일까지?

우리나라 SW 조직에서 관리자란 위치는 참 애매한 위치다. 물론 전문 관리자라면 얘기가 다르지만 왕년에 SW를 조금 개발해 본 경우가 애매하다. 개발팀에서 가장 경험이 많은 SW 개발자들이 주로 팀장이 되곤 한다. 이 경우와..

과거의 성공이 발목을 잡을 때

수많은 소프트웨어 회사들이 첫번째 성공을 거두고 나서 두번째 도약에 실패하고 사라져간다. 물론 첫번째 성공도 어렵지만 이미 성공의 경험이 있고 방법을 알고 있는 회사들이 두번째 또는 세번째에는 많이 실패하는 이유가 무엇일까?..

스펙을 제대로 작성하는 것은 구식이다?

'소프트웨어 개발 방법이 얼마나 발전했는데 아직도 스펙을 제대로 작성하고 개발을 하는가?' 라고 하면서 스펙 작성에 반대하는 주장을 하는 사람들이 있다. 스펙, 설계를 작성하고 구현을 하고 테스트를 하는 방식으로 개발하는 것..