태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

Search results for '프로세스'

획일화된 프로세스의 함정

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



SW를 개발하는데 있어서 체계화된 프로세스가 필요하다는 것은 당연하다.

대부분의 SW회사가 최소한의 프로세스도 없이 주먹구구식으로 SW를 개발한다. 작은 회사들은 문제가 안되는 것처럼 보이지만 회사가 조금만 커져도 여기저기서 문제가 발생하다.

이런 문제에 시달리다보면 프로세스와 문서화가 이 문제를 해결해 줄것이라고 너무 믿게 된다.
그래서 엄격한 프로세스를 만들고 각 프로세스마다 문서를 꼭 만들게 하고 검사를 하기도 한다. 물론 프로젝트의 종류에 따라서 만드는 필수문서를 다르게 하기도 하지만, 이러한 규정은 개발자들이 요리조리 프로세스를 피해가는데 활용이 되곤 한다.

프로젝트에서 꼭 필요한 문서를 획일적으로 정하는 것은 매우 어렵다. 프로젝트 팀에서 결정하고 이를 존중하는 것이 좋다. 하지만 아직 개발팀의 역량이 부족하고 문화가 부족하다면 개발팀의 결정을 따르기도 어렵다.

가장 좋은 방법은 회사가 작을 때부터 체계적으로 개발하는 방법을 익히고 스펙과 설계를 적절하게 작성해가면서 개발문화를 키워나가고 개발자들의 역량이 같이 커져가는 것이다. 그렇게 되면 회사가 커져도 좀더 복잡한 프로세를 자율적으로 운영할 수 있게 된다.

하지만 대부분이 회사는 이러한 기회를 놓치게 된다.

그래서 택하는 것이 획일화된 프로세스이다. 이 고통스러운 프로세스를 거쳐서 이겨내면 점점 자율적인 프로세스로 바뀌게 되지만 이를 극복하지 못하면 점점 더 복잡하고 엄격한 프로세스를 만들게 된다.

가장 좋은 방법은 회사가 성장함에 따라서 문제가 생기기 이전에 미리 체계를 갖추고 개발자들의 역량을 키우는 것이고, 이미 문제가 발생했다면 최소한의 프로세스만을 만들고 지금이라고 개발자들이 분석, 설계 역량을 키울 수 있도록 회사에서 지원하는 것이다.

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
 
저작자 표시 비영리 변경 금지

전규현 개발프로세스 프로세스

Trackback Address: http://allofsoftware.net/trackback/220 관련글 쓰기
  1. 문서 없이도 대부분의 프로젝트들이 별 문제없이 잘 진행되고 있는 상황이기 때문에 개발자들이 필요성을 못느끼고 있는것 같습니다.
    개발자들이 무엇인가를 하게 하려면.. 그것이 필요한 이유에 대한 공감대를 먼저 공유하는것이 중요하다고 봅니다.
    문서화의 필요성을 느끼게 해 줄 수 있는 방법이 있다면.. 문서 작성을 거부감 없이 회사에 전체에 적용 할 수 있겠지요.

    회사가 조금만 커져도 문제가 된다고 하셨는데.. 개발자가 몇 명 정도 되었을때 이런 문서와 프로세스의 부재로 인한 문제가 생긴다고 보시는지요?
    사실 회사를 경영하는 사람 입장에서는 문제가 생기기 직전의 규모까지는 문서와 프로세스를 진행하지 않다가 문제가 생길 만한 규모가 될 정도부터 관심을 가지는것이 가장 합리적인 선택이라고 봅니다.

  2. 이성열

    문화적으로 정착되기 전에는 스스로 필요성을 느끼기 힘듭니다. 문화적으로 정착이 되면 왜 필요한지 생각하지 않고 그냥 당연히 하게 됩니다. 그래서 문화죠.

    그래서 대부분 문제가 크게 터진 다음에 필요성을 느끼게 됩니다. 작은 규모의 회사에서 가장 먼저 터지는 경우는 "개발자의 퇴사"입니다. 그리고 "회사의 성장"입니다.
    둘다 "공유의 문화", "협업의 문화"가 부족해서 문제가 됩니다. 그 방법이 "문서"와 "프로세스"입니다.

    물론 혼자 개발을 해도 이를 지키는 것이 더 빨리 개발할 수 있는 방법이지만 스스로 느끼기는 어렵습니다.

    보통 첫번째 "공유"의 문제는 개발자 10명 쯤에 생깁니다.
    그리고 "관리"의 문제라고 생각하는 이슈들이 25~30명 쯤에서 생깁니다. 하지만 이 또한 "공유", "협업" 부재의 문제에서 생겨납니다. 대부분의 개발 조직은 관리보다는 "투명한 개발"에서 저절로 관리가 되도록 되어 있기 때문입니다.

    관리의 이슈가 되는 것은 100명, 400명 쯤 겪는 이슈입니다. 작은 조직일 때부터 "문화"를 잘 갖춰나간다면 이정도로 커져도 큰 문제가 없습니다. 하지만 "문화"는 엉망인데 "관리"로 해결하려고 하면 문제가 더 커집니다.

    이성열님 회사도 문제가 터진 다음에는 어렵습니다. 개발자들을 설득하는 방법은 개발자들에게 "소프트웨어 공학"을 이해시키고 왜 개발자들이 체계적으로 개발을 해야만 성장을 하고 "고급개발자"가 되는지 납득시키는 겁니다. 주먹구구식으로 개발을 하면 10년을 또는 20년을 개발해도 3년차 개발자와 다를 것이 없습니다. 코딩 속도 조금 빨라진 정도입니다. 저는 그런 개발자에게는 절대 연봉을 5,000만원 이상을 주지 않을 겁니다.

    연봉 1억, 2억 이상 가치의 개발자가 되려면 스펙, 설계를 잘 쓸줄 알아야 합니다. 자기가 코딩까지 다 해야만 개발을 할 수 있으면 평생 초급 개발자입니다. 개발자들에게 나아가야 할 방향을 자꾸 주지시켜서 세뇌를 시켜야 합니다. 이것이 개발자도 회사도 좋은 길입니다.

  3. 저는 문서화를 제가 기억못하기 때문에 합니다.

    기억하고 있다면 대화가 가장 커뮤니케이션이 효율이 좋고..
    기억하지 못한다면 그때 얼른 적습니다.
    그리고 기억하지도 못하고, 문서화도 없다... 그건 무조건 폐기하는 대상입니다.
    너무 단순하죠?

  4. 안녕하세요. whitekid님

    문서화의 첫번째 이유가 자신을 위해서죠. ^^

  5. 돈과 시간이 그 실행의 기준이 될것 같습니다.
    문서화에는 비용이 드니까요.

    저의 생각으로는
    만들어지는 모든 함수를 사전처럼 만들어서 사람들이 공유할 수 있게 된다면
    문서화'도 되고 재사용도 되고' 개발비용과 불필요한 노력도 줄어 들 수 있을것 같습니다.

    더. 나아가. 이 문서화된 데이터가 함수이면서도 UI 에 쓰여질 수 있다면. 엄청난 도구가 될듯합니다.

  6. 안녕하세요. shint님

    저는 문서화는 비용으로 생각하지 않습니다.
    문서화를 비용으로 생각하는

    1. 필요 없는 문서를 경우는 문서를 너무 많이 적거나
    2. 문서를 작성하는 경험과 실력이 부족하거나
    3. 프로젝트가 끝나고 적는 경우입니다.

    문서는 필요한 만큼만 필요한 시기에 적어야 합니다.
    프로젝트에서 가장 중요한 문서는 스펙(SRS)입니다.

소프트웨어 관료화

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

"공무원 수는 해야 할 일의 경중이나 업무 유무에 관계없이 일정한 비율로 증가한다", "공무원은 서로를 위하여 서로 일을 만들어 낸다", "유능하지 못한 사람은 공무원이 된다."
이는 그 유명한 파킨슨의 법칙입니다.

소프트웨어를 개발할 때도 이와 같은 함정이 도사리고 있습니다.
주먹구구식으로 소프트웨어를 개발하다가 체계적으로 개발하고 싶은 요구가 생길 때 프로세스팀을 구축하고 개발 프로세스를 정립하다 보면 파킨슨의 법칙에 빠지기 쉽습니다. 

프로세스팀의 구성원들은 진짜 소프트웨어 전문가로 구성되는 경우가 드믑니다. 여기서 말하는 소프트웨어 전문가란 코딩만 잘하는 개발자가 아니고, 구축, 설계, 테스트, 형상관리, 버그 추적, 빌드, 릴리즈, 방법론 등 소프트웨어 관련 여러 분야의 지식과 경험을 두루 갖추고 있는 사람입니다.

이런 비전문가로 구성된 프로세스 팀은 소프트웨어 개발의 내용을 속속들이 잘 모르고 너무 형식에 치우칠 수 있고, 끊임없이 프로세스팀이 할 일을 만들어 내기 위해서 프로세스를 점점 복잡하게 만들곤 합니다. 이들은 어떤 것이 정확하게 올바른 방법인지 잘 몰라서 그렇게 하기도 하고, 자신들의 밥줄을 견고하게 하기 위해서 여기저기 승인 절차를 많이 추가해서 프로세스팀이 소프트웨어 개발 프로세스의 중요한 역할을 하고자 한다.

프로세스팀은 소프트웨어를 효율적으로 개발하기 위한 방법들을 연구하지만 소프트웨어 개발 프로세스 중간에 직접 끼어들어서 간섭하는 프로세스를 만드는 것은 바람직하지 않다. 소프트웨어를 개발하는데 있어서 여기저기 승인 절차를 잔뜩 집어 넣어 놓는 것도 그리 좋지 않습니다. 승인 절차가 소프트웨어의 무결성을 보장해주진 않습니다. 오히려 관료화된 승인 절차는 아무런 도움이 되지 않는 경우가 많습니다. 소프트웨어는 각 분야의 전문가들이 자율적으로 효과적으로 움직였을 때 가장 효율적으로 개발됩니다. 명시적인 승인 절차가 없더라 승인절차를 거친 것과 같이 모두가 진행상황을 훤히 알 수 있게 됩니다. 이렇게 개발되는 방식이 오히려 소프트웨어 무결성에 더 도움이 됩니다. 승인 절차는 형식적인 승인이 되기 쉽지만, 각 단계의 전문가들이 리뷰를 하고 Unit 테스트를 하고 시스템 테스트를 하고 빌드전문가가 확인을 하고 이러한 전 과정을 통해서 문제가 되는 것들은 발견이 되고 개발도 효율적으로 진행됩니다.

소프트웨어 개발 경험이 부족한 프로세스 팀은 철저한 승인 절차가 아니면 안전한 소프트웨어를 개발하기 어려울 것 같이 생각되지만, 이는 경험 부족에서 오는 착각이거나 관료화의 조짐입니다.

또 소프트웨어 개발에 대한 이해가 부족한 경영자들은 이들이 주장하는 프로세스가 그럴듯해 보이지만 사실은 소프트웨어 개발에 상당부분 걸림돌이 되고 있다는 것을 눈치채기 어렵습니다.

진짜 소프트웨어 전문가로 프로세스팀을 만들 것이 아니면 내부에서 진행하는 여러 개선 시도들이 시간 낭비인 경우 많고, 시행착오 없이 6개월이면 갖출 수 있는 경쟁력을 먼 거리를 돌아서 수년이 걸리거나 영영 경쟁력을 갖추지 못하는 경우도 많습니다. 프로세스팀을 갖추려면 소프트웨어 전문가로 구성을 하거나 내부에 전문가가 없다면 외부에서 도움을 받는 것이 좋습니다.

회사 내에서 소프트웨어 개발을 잘 하는 개발자가 소프트웨어 전문가라고 생각하지는 마세요. 공을 잘 차는 축구 선수일 뿐입니다.  

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
저작자 표시 비영리 변경 금지

'개발프로세스' 카테고리의 다른 글

획일화된 프로세스의 함정  (6) 2011/04/03
이번 프로젝트 내일 끝나?  (10) 2011/01/31
소프트웨어 관료화  (16) 2009/08/31
프로세스가 창의성을 저해한다고?  (8) 2009/04/08
소프트웨어 개발의 극과 극  (0) 2009/02/18
Waterfall과 Agile  (5) 2009/02/06

전규현 개발프로세스 관료화, 파킨슨의법칙, 프로세스

Trackback Address: http://allofsoftware.net/trackback/143 관련글 쓰기
  1. 우리나라 공무원은 엘리트라서 말이죠 ㅋㅋ
    저런 이유에서 사수가 있는건 참 좋은것 같습니다
    (사수없이 3년 ㅠ.ㅠ)

  2. 구차니님 안녕하세요.
    사수... 이것에 대해서도 할말이 많습니다. ^^;
    기형적인 구조 떄문에 사수가 아니면 별 뾰족한 방법이 없는 것도 현실이고... 나중에 올릴께요.

  3. Blog Icon
    김경록

    프로세스팀의 구성원들은 진짜 소프트웨어 전문가로 구성되는 경우가 드물다는 말...

    상당히 찔리고 공감이 가네요 ^^;;;

  4. 안녕하세요. 김경록님
    솔직하시군요. ^^
    너 자신을 알라!, 아는 것이 힘이다.
    즉, 자신을 아는 것이 힘이다.

  5. Blog Icon
    hermian

    해결책은 없겠죠.
    철통 밥그릇이 그렇듯...
    전문가가 아닌 사람의 머리를 쪼개서 지식을 넣어 줄 수도 없고...
    참으로 난형난재입니다.

  6. hermian님 안녕하세요.
    지식을 넣어 주는 기술은 300년은 지나야 나올 듯합니다.

  7. Blog Icon
    이혜원

    300년 지나면 가능해지나요??
    가능한 일이면 좋겠습니다.
    어쨌든, Ray님의 글들에 동의 합니다..

  8. 안녕하세요. 이혜원님

    그래서 저희같은 사람의 도움이 필요합니다.
    외부 전무가의 힘을 빌어서 변화를 꾀하는 것이 가장 빠르고 무리없이 변화에 성공할 수 있는 방법입니다.

  9. Blog Icon
    장호진

    제가 유일하게 RSS등록해두고 잘 보고있는 블로그인데 처음 글 남깁니다.
    7년 동안 사수없이 고군분투해오다 보니 남는게 별로 없네요....
    그래서, 요즘 전규현님 책과 블로그의 도움을 받아서 흔히 얘기하는 시스템과 프로세스를 구축하고 있습니다.
    앞으로도 좋은 글 부탁드립니다.
    가끔 글도 남길께요^^

  10. 장호진님 안녕하세요.
    열심히신군요. ^^ 책보고 스스로 뭘 해보는 것이 정말 힘들죠. 궁금하신 것이 있으면 언제든지 문의해주세요. Email은 항상 열려있습니다. :)

  11. Blog Icon
    dkinght

    소프트웨어 전문가란 어떤 사람을 말하는지요..제대로 된 정의를 찾기 힘드네요..

  12. 본문에서도 언급했듯이 "소프트웨어 전문가란 코딩만 잘하는 개발자가 아니고, 구축, 설계, 테스트, 형상관리, 버그 추적, 빌드, 릴리즈, 방법론 등 소프트웨어 관련 여러 분야의 지식과 경험을 두루 갖추고 있는 사람입니다."
    제대로 시스템과 프로세스, 개발 문화를 갖추고 있는 회사에서 10년 이상을 개발을 해 온 개발자라면 이런 분야를 두루 섭렵할 수 있지만, 보통의 경우에는 주로 구축(코딩)과 설계만 치중하기 때문에 소프트웨어 전문가가 되기는 어렵습니다.

  13. 소프트웨어 전문가인가요 아니면 소프트웨어 엔지니어링 전문가 인가요?

    본래 둘을 같은 의미로 쓰던가요?

  14. 소프트웨어 공학하면 왠지 이론적인 냄새가 많이 나서 별로 사용하기가 꺼려지지만 지식과 경험을 모두 갖추고 있어야 진짜 소프트웨어 공학이라고 할 수 있죠. 따라서 지식과 경험을 모두 가지고 있다면 소프트웨어 전문가, 소프트웨어 공학 전문가를 따로 구분할 필요는 없어 보입니다. 그래서 가끔 이론적으로만 소프트웨어 공학을 공부하고 연구한 교수를 전문가로 봐야 하는지에 대해서는 섯불리 얘기하기 어려운 측면이 있습니다. 그 분들도 분명히 이론적인 기반을 다지고 새로운 기법들을 연구하는 것에는 의미가 있으나 실제 소프트웨어에 접목할 수 있는 경험이 없고 실제로도 어렵기 때문에 여전히 이슈는 존재합니다.

  15. Blog Icon
    dkinght

    개인적으로는 그것 가지고 소프트웨어란 광범위한 전문가라고 부르기엔 뭔가 찜찜하네요,..

  16. 안녕하세요. dkinght님
    관념적으로 접근을 하는 것은 별 의미 없을 것 같고, 진짜 소프트웨어 필드에서 필요한 전문 지식 몇 경험 분야를 보려면 IEEE에서 정의한 소프트웨어 전문 영역 10가지를 보는 것도 좋을 것 같습니다. 정확한 답은 아니더라도 도움을 될 겁니다.

악순환 vs. 선순환

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

지난번 글 (이 바닥을 못 벗어 난다.)의 추가 글입니다.
회사가 Risk가 큼에도 불구하고 Domain 지식이 점점 더 매달릴 수 밖에 없는 이유와 선순환을 하려면 어떻게 해야 하는지 좀더 현실감 있는 예를 보여주려고 합니다.
회사마다 상황이 모두 다르기 때문에 각자의 상황과 1:1로 다 일치하지는 않지만 참고하실 수는 있을 겁니다.
그럼 악순환과 선순환에 대해서 알아보죠.

Domain 지식에 점점 매달리게 되는 악순환의 고리

  • 주먹구구식 개발
  • 개발자에 의존한 코딩 중심의 개발 주도
  • 없거나 빈약한 개발 프로세스 및 개발 문서
  • 회사의 지식은 개발자 머리 속에 보관
  • 개발자 간 지식의 공유가 어려움
  • 후배 개발자들에게 지식 전달이 잘 안됨
  • 프로젝트가 커질수록 협업이 점점 어려워짐
  • 점점 더 경험 많은 개발자에 의존하게 됨
  • 경험 많은 개발자는 계속 더 바빠짐
  • 경험 많은 개발자들도 체계적인 개발은 꿈도 못 꾸고 매일 밑바닥 개발에 매달림
  • 개발자들이 Domain 지식은 점점 늘어가는데 소프트웨어 공학지식은 잘 늘지 않음
  • 회사에서는 신규 직원을 뽑아도 같이 협업이 잘 안되므로, 동일 Domain의 경험이 많은 개발자를 선호하게 됨
  • 경험 많은 개발자들이 퇴사를 해서 회사가 큰 타격을 입기도 함
  • 또 고참 개발자들이 퇴사할 까봐 전전긍긍하게 됨
  • 회사에서는 개발자들의 머리 속에 있는 지식을 공유하고 체계적으로 개발하고 싶으나 방법을 모름
  • 이에 대한 개혁을 해보려고 해도 번번히 고참 개발자들의 방해로 무산됨
  • 점점 더 경험 많고 Domain 지식이 풍부한 개발자들에게 의존하게 됨
  • 규모 있는 개발을 못하고 인원수에 의존한 개발을 하게 됨
  • 회사는 성장을 못하고 정체하게 됨
  • 고참 개발자들은 성장을 못하고 매일 밑바닥 코딩과 문제 해결에 매달리게 됨
  • 또 주먹구구식, 가내 수공업식 개발을 반복하게 됨

프로세스 중심의 선순환의 고리
  • 회사가 소프트웨어 개발에 필요한 적절한 프로세스와 인프라스트럭처 시스템을 갖추고 있다.
  • 개발자들은 프로세스 중심으로 개발이 되도록 잘 훈련 되어 있다.
  • 프로젝트 진행 시 꼭 필요한 스펙 문서와 설계 문서를 적절하게 만든다.
  • 문서와 코드에 대해서 적절히 Peer review가 이루어져서 지식의 전달이 잘 되고 결함이 사전에 제거된다.
  • 고참 개발자들은 코딩 보다는 주로 아키텍처와 비즈니스에 대해서 고민하고 해결한다.
  • 잘 작성된 스펙 문서와 설계 문서를 보고 후배 개발자들이 코딩하고 테스트 팀이 테스트를 진행한다.
  • 고참 개발자들은 오랜 개발 경력으로 Domain 지식도 풍부하지만 소프트웨어 공학 지식 및 경험도 풍부하다.
  • 후배 개발자들은 Domain 지식은 부족하지만, 설계 문서를 보고 인프라스트럭처 시스템을 활용해서 프로세스에 따라 개발하는데 별 문제가 없다.
  • 신규 개발자를 뽑아도 교육이 용이하고 바로 실무에 투입하기가 쉽다.
  • 고참 개발자들이 퇴사를 해도 상당히 많은 지식이 문서화 되고 이미 후배들에게 전파가 되어 있으므로 회사의 타격이 상대적으로 적다.
  • 퇴사한 고참 개발자들은 이직이 용이하고 더 높은 연봉으로 타 회사로 옮길 수 있다.
  • 회사에서는 Domain 지식이 너무 매달리지 않고, 실제로 Software 공학 지식이 뛰어나고 Software 개발 자체를 잘하는 인재를 선호하게 된다.
  • 회사가 성장하고 개발 규모가 커져도 문제 없이 대응할 수 있다.

그럼 악순환에서 선순환으로 바뀌는 방법에 대해서 의문을 가질 수 밖에 없습니다.
이는 참 어려운 숙제입니다. 
운동을 안한다. -> 몸이 무거워진다. -> 운동을 더 안한다. -> 몸이 더 무거워진다.
이런 악순환의 고리를 끝는 것은 무엇을 까요? 일단 운동을 시작한다? 99%는 실패할 겁니다.
운동은 습관도 안들어 있고, 제대로 운동하는 방법도 모르고, 또 귀찮아지면 언제든지 포기하고, 잘못된 운동 방법으로 다칠 수도 있습니다. 그러면 운동에 대한 나쁜 기억만 쌓이고 다음번에는 더욱더 운동을 시도하지 않게 될 겁니다.

그래서 악순환의 고리를 끝는 것을 쉽게 얘기를 할 수 있어도 현실적으로 가능한 방법을 제시하는 것은 쉽지 않습니다. 물론 가장 적절한 방법도 회사마다 다릅니다.

하지만, 악순환의 고리를 끝는 방법 중에서 필수 요소는 경영자의 의지입니다. 경영자가 이러한 상황을 전혀 이해 못하고 있거나 의지가 없다면 그냥 계속 악순환의 고리를 돌면서 영업이나 잘하는 수 밖에 없습니다.
개발자들이 으쌰으쌰해서 점진적으로 개혁을 해보려는 시도는 매우 더딜뿐만 아니라 다양한 도전 및 방해로 무산될 가능성이 큽니다. 그래도 그런 과정에서 개발자들이 본인 스스로 공부는 될 수 있겠네요.

경영자가 의지만 있다면, 조직, 시스템, 프로세스적인 다양한 측면에서 효과적이고 적절한 개혁을 시도하여 회사를 바꿔나가서 점점 선순환의 고리로 옮겨 갈 수 있습니다. 


이미지출처 : Microsoft Office Online
* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다. 
저작자 표시 비영리 변경 금지

'소프트웨어이야기' 카테고리의 다른 글

살아남은 개발자들  (4) 2009/07/03
도대체 얼마나 자세히 적어 달라고?!  (4) 2009/06/29
악순환 vs. 선순환  (2) 2009/05/22
이 바닥을 못 벗어난다.  (5) 2009/05/18
나는 혼자가 아니다.  (5) 2009/05/15
이거 팔면 돈 되겠는데!  (20) 2009/04/17

전규현 소프트웨어이야기 Domain지식, 문서, 소프트웨어 개발, 프로세스

Trackback Address: http://allofsoftware.net/trackback/123 관련글 쓰기
  1. 오픈 세미나에 와주셔서 늦은 시간까지 열강해 주신것 너무 감사드립니다. 좋은글을 잘 읽고 갑니다.

  2. 황상철님 안녕하세요.
    열심히 하시는 모습이 보기 좋았습니다. 젊은 개발자들은 만나는 것은 언제나 즐거운 일입니다.

    주제가 조금 어려워서 전달이 잘 되었을지 걱정입니다. 만약 다음에 기회가 된다면, 좀더 쥬니어들에게 직접 와닫는 주제를 한번 정해봐야겠습니다. 감사합니다.

거만한 속빈 강정

2009/04/09 21:58 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed
소프트웨어 개발 경험도 개발자가 미국 실리콘밸리의 소프트웨어 회사에 입사해서 5년이면 배울 수 있는 것(소프트웨어를 개발하는 방법)을 우리나라에서는 10년, 20년 아니 30년을 소프트웨어만 개발해도 배우지 못합니다.

오히려 이런 경험 많은 고참 개발자들은 배울 수 있는 기회가 눈앞에 와도 배울 수가 없게 됩니다.
책을 하나 봐도 대부분 아는 내용이라고 저자를 평가 절하하지만 아는 수준이라는 것이 용어 한번 들어보고 샘플 좀 사용해 본 정도인 경우가 대부분입니다.

예를 들어 소스코드관리시스템에 대한 내용을 봐도 내가 대형SI회사에서 10년 넘게 개발을 했는데, 이런 것을 모를까봐?라고 생각하지만 고작 소스코드 백업 받듯이 저장하고 태깅 좀 한 정도 가지고 소스코드 관리를 제대로 하고 있다고 착각합니다. 

오히려 이러한 개발자들은 온갖 화려한 기술과 온갖 툴 및 기법에 능숙해서 UML의 도사이고 자신은 아키텍트라고 하면서도 진짜 설계는 할 줄도 모릅니다. 이런 고참 개발자들은 아무것도 모르는 신참 개발자보다 제대로 배우기는 훨씬 어렵습니다. 신참 개발자들은 책이나 강연을 통해서 배움이 기회가 왔을 때 자신은 잘 모르고 부족하다고 생각을 하기 때문에 받아드리려는 마음이 있으나 이런 고참 개발자들은 자신들이 잘 알고 개발을 잘하고 있다고 착각하기 때문에 즉 자신의 무지를 모르기 때문에 배움을 받아드리려고 하지 않습니다. 또 자신이 해왔던 방식이 나름대로 편하다고 생각해서 바꾸기를 싫어하고 괜히 바꿨다가 회사에서 자신의 위상이 흔들리면 어떡할까 하는 걱정도 하곤 합니다.

2,3년 된 신참 개발자들은 회사에서 제대로 된 개발 환경 및 교육의 기회만 주어진다면 4,5년 안에 이런 고참 개발자들보다 훨씬 뛰어난 실력을 갖는 것은 그리 어려운 일이 아닙니다. 또 배우려고 하지 않는 고참개발자들은 세계 최고의 소프트웨어 대가가 와도 이들을 가르칠 수는 없습니다. 그냥 그렇게 회사에서 정치나 하면서 연명을 하는 수밖에 없습니다. 다른 회사로 이직을 하면 자신의 위상이 확 떨어지니 회사에 꼭 붙어 있어야겠지요. 물론 은퇴 전에 회사가 망하면 큰 일지만 말입니다. 

그런 일을 당하지 않으려면 마음을 바꿔 먹어야 합니다. 물론 정말 실력이 뛰어난 개발자들도 많이 있지만, 자신이 소프트웨어 개발을 잘하고 있다고 착각하는 고참개발자들은 늦었지만, 바뀌어야 합니다. 

자신이 정말로 뛰어난 개발자인지? 뛰어나다고 착각하는 것인지? 어떻게 아냐고요?

  • 후배 개발자들이 많이 있는데 아직도 주로 코딩에만 매달리면서 자신이 코딩을 하지 않으면 개발이 잘 안될 것 같습니까? 
  • 문서를 만들면서 개발을 하는 것보다 코딩부터 개발을 하고 문서는 불필요하다고 생각하시나요?
  • 문서를 만들어도 다른 개발자들이 이해를 잘 못하나요? 
  • 자신은 개발을 정말 잘하는데 후배 개발자들은 정말 실력이 떨어진다고 생각이 드나요?
  • 후배들이 실력이 딸려서 같이 일하기 정말 힘듭니까?
  • 후배들에게 잘 설명해줘도 원하는대로 개발이 진행이 잘 안됩니까?
  • 개발은 기가 막히게 하는데 회사의 비즈니스 상황은 잘 모르나요?
  • 개발에만 집중하고 소프트웨어 기획, 테스트, 배포 등의 전반의 내용은 잘 모르나요?
  • 해당 Domain 지식(업무지식)에 대해서 도사급이라 다른 업계로 이직은 싫은가요?
  • 소스코드관리, 버그관리는 기초기능만 사용하나요? (기초의 기준이 뭔지 알기 어렵겠군요.)
  • 개발프로세스는 불필요하거나 불편한 것이라고 생각하시나요?
  • 경영자들에게 기술이나 아이디어를 설명해도 경영자들이 이해를 잘 못하나요?

너무 많아서 다 나열할 수가 없네요. 

이중에 몇 가지만 해당해도 착각하고 있는 것일 가능성이 대단히 높습니다. 착각에서 빨리 벗어나는 것이 자신의 미래를 위해서 이롭습니다.

이미지출처 : Microsoft Office Online
* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.  

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

전규현 사람과 기술 UML, 강연, 개발자, 고참, 소프트웨어개발, 신참, 실리콘밸리, 프로세스

Trackback Address: http://allofsoftware.net/trackback/109 관련글 쓰기
  1. 2009/04/10 10:52
    속빈 강정... Tracked from 괜히 즐거움...
  2. 2009/04/12 02:30
    기본에 충실함 Tracked from The Art of Software Development
  1. Blog Icon
    Jake

    안녕하세요 레이님.
    속빈강정같은 고참 개발자를 가려내는 방법이나 착각에서 벗어나라는 조언 보다는 실리콘밸리에서 5년이면 배우는 것이 무엇이며 한국에서는 왜 10년 20, 30년을 해도 그것들을 못배우는지, 그리고 어떻게하면 5년이면 그런 것들을 배울수 있게 하는지를 조언해주셨으면 더 좋았을것 같습니다.

  2. Jake님 오랫만입니다.
    실리콘밸리에서 5년이면 배우는 것이 소프트웨어를 개발하는 방법이죠. 우리나라 개발자들도 다들 소프트웨어를 개발하고 있는데 이렇게 얘기하면 이상하다고 생각하겠지만, 제 경험에 의하면 정말로 다릅니다. 일단 미국은 60년의 소프트웨어 역사를 통해서 소프트웨어를 개발하는 방법에 대해서 체계를 갖추고 있고, 개발자들은 그런 회사에서 개발하면서 자연스럽게 익히는 것을 우리나라의 개발자들은 그런 기회가 없습니다. 그냥 코딩 실력과 몇몇 지식과 기법을 통해서 개발을 하는데, 그 기초가 너무 취약합니다. 그것이 무엇이냐고 물으면 책을 몇권 써야 설명이 다 되겠지요. 물론 미국에도 엉터리로 개발하는 회사도 있고 우리나라에도 잘하는 회사들도 많죠. 하지만 그 비율이 현격하게 차이가 나는데 문제가 있습니다.

    골프를 배우려고 하는데, 혼자서 책보고 비디오 보고 배우는 것과 골프를 처음 시작할 때부너 골프 코치에게 배우는 것의 차이라고 할까요? 그럼 코치에게 배우는 것은 무엇인가? 너무 많아서 한마디로 말할 수 없습니다. 또 우리나라에는 골프를 배울 수 있는 골프코치가 그리 많지 않고 미국에는 널려 있는 상황과 비슷합니다.

    또, 제대로된 방법 딱 하나를 상세하게 설명해주면 그대로 따라하면 되지 않을까?라고 생각해도 골프도 그렇게 안된다는 것은 쉽게 예상할 수 있듯이 소프트웨어도 그렇게는 안되죠.

    그럼 어떻게 하면 배울수 있나? 인도의 개발자들처럼 미국이나 소프트웨어 선진국에 가서 배우는 것이 가장 좋은 방법이나 어렵죠. 그리고 고참개발자들은 이미 늦은 경우도 많구요. 이글의 말미에도 적었지만, 우선 마음부터 고쳐 잡아야죠. 그래야 여러가지 기회가 있을 때 받아드릴려고 하겠죠. 그 기회는 책이나, 강연이나, 전문가를 만나거나, 컨설팅을 받거나 등등 여러가지가 될 수 있습니다. 이럴 때 마음이 닫혀 있다면 배우지 못합니다.

  3. 요즘 저도 느끼는 거지만 SI를 7년 했더니 더이상 실력 향상이 안되는거 같습니다.
    좀더 심화 있는 개발을 하고 싶은데 매일 하는게 업무만 틀리고 거기서 거기인 느낌입니다.
    솔루션쪽으로 가고 싶지만 국내 솔루션은 열악한 환경이라 먹고 살려니 계속 SI에 남아 있게
    되네요.

  4. 묘재님 안녕하세요.
    SI가 나쁜 것은 아니지만, 환경은 그리 좋지 않습니다. 우리나라의 SI의 개발 형태를 보면 업무지식(Domain지식) 위주로 개발이 진행되므로 오래 개발을 할 수록 업무나 비즈니스 로직은 점점 잘 알게 되지만, 소프트웨어 개발 실력을 향상할 기회는 상대적으로 적어집니다. 솔루션을 개발해보는 것은 다양한 경험 측면과 생각의 다변화 면에서는 긍정적이네요. 하지만 솔루션을 개발하는 회사나 부서의 환경도 별차이가 없다면 결국 본인이 스스로 공부하고 찾아다니면서 익혀야 하는데, 어려운 일입니다. 묘재님도 끊임없이 공부하시는 것 같으니 잘 될겁니다. ^^

  5. Blog Icon
    아름드리

    저 같은 경우 대부분 혼자 일하면서 어떻게 해서든 실력을 키우고 싶어 책을 보고 구글을 했습니다. 그제야 문서화, 소스 관리, 빌드 시스템, 테스트 등 제가 반드시 알아야 하는 것들이 있다는 것 알았습니다.
    주위 개발자들에게 개발 프로세스를 적용해 보자고 해도 다들 무관심이네요. 저라도 성과를 얻으면 조금이라도 관심을 보일까 생각해 열심히 노력하고 있습니다.

  6. 아름드리님 안녕하세요.
    본인이 아는 것보다 남을 설득하는 것은 10배이상 힘듭니다. 특히 본인이 완전히 확실히 알지 못하고 같이 잘 해보자고 하는 입장이면 더욱 어렵죠. 그리고 아름드리닙도 책보고 구글보고 할 수 있는 것은 한계가 있다는 것을 느낄 수 있을 겁니다. 책보고 골프를 배우는 것과 같죠. 제가 무료 세미나도 하고 있으니 관심있으면 연락주세요. 감사합니다.

  7. Blog Icon
    bluepoet

    Ray 님 안녕하세요. 항상 글 잘보고있습니다.
    저도 2년차 소프트웨어 개발자인데. 전 외국계 대기업회사에 근무하고있습니다. 처음에는 제가 배웠던 소프트웨어 프로세스대로 철저하게 지켜지는게 너무나 대단해보였습니다. 2년차가 되니까 이것저것 생각이 많아졌나봅니다. Qa team, Release team, Dev Team,Arch Team간에 Customer 가있는 Project의 경우 Process를 가지고 상당한 논의가 되곤합니다..이런 모습을 보면서 꼭 Process를 지켜야되는것이 올바른 길은 아니라는생각도 해보게 되었습니다. 외국계지만 여전히 지적해주신 사항들을 숙지못하고 Process에 관심이없는 엔지니어들도 많답니다..

    저도 좀더 포괄적으로 이해할수있는 능력을 길러야겠습니다.
    ^^

  8. bluepoet님 안녕하세요.
    개발 2년차인데 벌써 이런 경험을 하고 생각을 하고 있다는 것은 아주 긍정적입니다. 미래가 총망되네요. ^^

  9. 글을 읽고 오전내내 괴로웠습니다. 그동안 정말 뭘 한건지 그리고 앞으로는 또 어떻게 해야할지... 더욱더 마음이 무거워지네요...좋은글 감사합니다.

  10. redef님 안녕하세요. 깨달음은 한순간에 오기도 하더군요. 아직 기회가 많이 있으니 잘하실 것 같습니다. ^^

  11. 우물 안 개구리는 누가 우물밖으로 개구리를 꺼내주기 전까지는 자기가 어디에 있는지 모르는것과 마찬가지이듯, 시스템으로 돌아가는 대기업이나 몇몇 업체를 제외한 대부분의 중소기업에서는 회사가 개인의 이런 경력발전을 위한 지원을 해주지 않거나 기회를 주지 않으면 개발자 스스로 이러한 걸 깨우치기는 어려운 것도 사실입니다.

    실상은 지적하신바와 같이 막상 이런 흔치 않은 기회가 와도 개발자 스스로가 그걸 거부하거나 준비가 되어 있지 않아 그 기회를 잡지 못하는 경우도 많다라는 것이 문제죠. 특히 초급 개발자나 프리랜서/소규모 회사를 너무 오래 다닌 개발자 중에는 '난 코딩만 할꺼야' 라는 마인드를 갖고 있는 것도 문제이고요.

    사내 정치라는 것에 대해서 개인적인 의견은, 이건 정말 2명 이상 모인 집단에서는 어디서나 발생하는 현상이라는 겁니다. 기본적으로 정치가들이 워낙 부정적인 의미라 나쁘게 들리긴 합니다만... 아무튼 문제는 기본적으로 개발자/공대출신 사람들이 이 정치력이 별로 없다라는 거겠죠. -_-;;

    글 잘 읽고 갑니다. :)

  12. 우울한딱따구리님 안녕하세요. 경험하지 않고 깨닫거나 스스로 알아내는 것은 기적이거나 천재겠죠?

  13. 학교 다닐때 경험하고 깨닫는건 학습, 경험하지 않고도 깨닿는 걸 지능이라고 배운 것 같은데데... 개인적으로 경험하지 않고 스스로 꺠우친 것들은 그리 많지 않은 것 같습니다. ㅜ.ㅜ

  14. 지식으로 깨우칠 수 있는 것이 있고, 골프와 같이 경험 없이 지식만으로는 익힐 수 없는 것이 있습니다. 소프트웨어도 지식과 경험이 모두 필요한 분야라고 생각합니다. ^^

프로세스가 창의성을 저해한다고?

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

개발 프로세스가 창의성을 저해한다고 싫어하는 개발자, 관리자, 경영자를 종종 만나게 됩니다.
이들이 프로세스를 싫어하는 이유는 과거에 개발 프로세스 도입에 대한 실패의 경험이 있거나 그런 얘기를 종종 전해 듣기 때문입니다.

이렇게 개발 프로세스 도입에 실패하는 이유는 현실성이 없는 이론적인 프로세스를 도입하거나 회사의 역량 수준에 맞지 않는 프로세스를 시도한 경우가 많습니다. 또 인터넷이나 책을 통해서 배우게 된 프로세스를 따라 하다 보면 그 Context를 다 알지 못하고 형태만 비슷하게 흉내 내다가 실패하기도 합니다.

그럼, 그렇다고 프로세스가 없다면 창의성이 샘솟을까요?
개발프로세스가 제대로 갖춰지지 않은 회사는 대부분 각 개발자들의 개인 역량에 따라서 적절히 개발이 이루어지며 개발자들은 역할의 구분 없이 만물박사 식으로 온갖 업무를 처리합니다. 이러다 보면 항상 바쁘고 새로운 기술을 조사한다거나 참신한 생각을 할 틈이 별로 없습니다. 또, 멋진 아이디어가 떠올라도 마땅하게 Follow up할 방법이 없어서 아이디어를 떠올린 개발자가 북치고 장구치고, 경영층도 설득하고, 프로토타입도 만들어보고 시장 조사도 해보고 해야 합니다. 안 그래도 바쁜 마당에서 짬을 내서 또 새로운 아이디어를 Follow up하기는 정말 어렵습니다. 누가 무슨 일을 얼마나 하고 있는지 잘 파악이 안되므로 또 이런 일을 벌여서 괜히 성과도 없이 평가만 안 좋아 질까봐 포기하기 십상입니다. 또 아이디어 낸 사람이 총대를 매야 하기 때문에 그렇다고 기존의 업무가 줄어들지 않기 때문에 공식적으로 이런 활동을 안하려고 합니다.

하지만, 개발 프로세스를 잘 갖추고 있는 회사는 아이디어를 내기만 하면 일단 회사의 System이 이를 Follow up합니다. 일단 아이디어는 수면 위로 떠올라서 여러 사람과의 Review를 통해서 더욱 Refine되고 정식 절차를 통해서 Prototype을 만들고 마케터는 시장 조사를 하고 영업은 고객들의 의견을 수집해 옵니다. 관리자는 해당 개발자가 아이디어를 발전시킬 수 있도록 정식으로 업무를 할당해서 시간을 빼줍니다. 한마디로 개발자는 기술적인 것만 Follow up해도 됩니다. 물론 모든 아이디어가 제품화 되는 것은 아니지만, 이런 아이디어들이 10개 100개 모여서 성공하는 제품이 나옵니다.

결국 프로세스가 창의성을 저해한다는 생각은 무지의 산물이거나 잘못된 경험의 결과입니다.

문제는 회사의 몸에 딱 맞는 개발프로세스를 갖추는 것이 어렵다는 것입니다. 현재 개발을 어떻게 하고 있는지 조사를 해보면 제각각 일겁니다. 이것부터 통일해 나가면서 조금씩 바꿔가는 것이 스스로 해볼 수 있는 최선의 방법입니다.

이미지출처 : Microsoft Office Online
* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.  

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

전규현 개발프로세스 Follo up, prototype, Refine, review, System, 마케터, 아이디어, 역량, 제품화, 창의성, 프로세스

Trackback Address: http://allofsoftware.net/trackback/110 관련글 쓰기
  1. 2009/04/09 20:38
    소프트웨어 개발 무엇이 필요한가? Tracked from 김현남의 이야기터
  1. Blog Icon
    ~_~

    제가 일하고 있는 곳은 새로운 아이디어가 있다면 알아서 적용시키고 실현 시킨뒤에나 검토가 됩니다. 따라서 회사의 요구대로 아이디어 따위는 일체 생각도 하지 않고 있습니다. 음... 개인시간을 좀더 늘려서 혼자만의 아이디어 스캐치를 해보는게 좋을듯 싶네요

  2. 대부분의 회사가 그런것 같습니다. 또 개인시간이 마음대로 늘어나지 않는 것이 문제죠. 시스템이 잘 갖춰져 있어야 개발자들이 여유가 좀 생기고 좋은 생각도 하게 됩니다.

  3. 회사에 맞게 딱 맞는 프로세스를 도입한다는 것이 정말 힘든 일인줄 압니다.
    이론적인 프로세스를 도입하고 그것에 맞춰서 따라간다는 것은 마치 적응하지 못한 간난아기보고 걸어달라고 하는 것과 마찬가지인것 같습니다. 이론적인 프로세스를 도입한다 하더라도 조직에 맞게 변형해서 수년간 틀을 마련한다면야..되겠지만.말이죠..

  4. moova님 안녕하세요.
    대부분의 프로세스를 시도한 회사들은 주먹구구식으로 개발하는 것보다도 못한 경우가 많습니다. 시행착오에 대한 경험을 얻는 것이 유일한 성과라고 할 수 있습니다. 스스로 조그씩 발전시켜나가거나 전문가의 도움을 받는 것이 좋으나 주변의 프로세스 전문가들이 대부분 moova님이 말씀하신 것처럼 이론 알고 있어서 실패할 가능성이 많습니다. 이렇게 얘기하고 보니까 답이 없네요. - -; 아무튼 과욕은 금물

  5. 창의성을 저해하는 것은 프로세스를 위한 프로세스를 무작정 도입하기 때문인 것 같습니다. 어디서 누가 좋다고 하니까 필요없는 돈을 발라가면서 열심히 도입을 하고, 일단 도입은 해 놨으니 그게 옳건 그르건 무조건적인 준수를 강요합니다. 뭔가 좀 문제가 있다 싶으면 그걸 해결한답시고 또 다른 프로세스를 도입하기를 반복하죠. (순수 IT 회사보다는 제조로 시작한 회사가 그런 경향이 강한 것 같습니다.) 나중에는 프로세스 따라 다니다가 지쳐버리죠.
    회사의 몸에 딱 맞는 개발프로세스를 갖출 수만 있다면 정말 좋을텐데요...

  6. Shawn님 안녕하세요.
    대기업들은 중소기업과 다르게 무리한 프로세스도 꽤 오래 끌고 가고 직원들은 다들 피해가는 방법을 알고 있고, 그렇게 시간이 흘러서 아주 이상한 형태로 진화를 합니다. 겉보기에는 프로세스가 꽤 그럴듯 한 것 같은데 속은 전혀 아니고 오히려 생산성을 저해하는 경우입니다.
    우리나라의 소프트웨어 개발 역사는 너무 짧기 때문에 아직 그런 저변이 부족합니다. 소프트웨어 선진국을 조금씩 흉내내는 것이 좋은 방법입니다.

  7. "멋진 아이디어가 떠올라도 마땅하게 Follow up할 방법이 없어서" 라는 부분에 격하게 공감합니다. :)

  8. 우울한딱따구리님 안녕하세요.
    우리나라 개발자들이 전세계 어느나라의 개발자보다 아이디가 넘치는 것은 저도 인정하는 바입니다. 사실 개별 개발자들의 지식수준이나 코딩 능력도 최고입니다. 그런데 회사나 사회전반의 저변이 이를 못받쳐주니 나이를 먹을수록 경력에 걸맞게 실력을 끌어올리지 못하고, 좋은 아이디어가 사장되는 경우가 너무나 많습니다. 기발팀이던, 회사던, 국가도 System으로 움직여야 하는데, 우리는 아직도 사람이 움직이고 있습니다.

소프트웨어 개발의 극과 극

2009/02/18 01:31 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

꽤 오래 전에 TV에서 "비교체험 극과 극"이라는 프로그램을 방영한 적이 있습니다. 어떤 아이템을 정해서 가장 비싼 것과 가장 싼 것을 비교하는 프로그램이었는데 꽤 재미있게 본 기억이 납니다.

 

소프트웨어를 개발하는 현장에서도 극과 극 현상은 드물지 않게 발생합니다.

 

여러 회사를 분석해보면 완전 주먹구구이거나 또는 너무 무거운 방법론을 도입해서 오히려 부담이 되는 경우가 많습니다. 적당히 중간인 회사를 찾기가 더 어렵습니다.

 

완전 주먹구구식 가내수공업 형태의 개발방식도 문제가 있지만, 몸집과 역량에 걸맞지 않은 거대한 방법론을 무조건 따라하는 것은 더 문제가 큽니다. 그럴 바에는 차라리 주먹구구가 낫습니다.

 

그런 주먹구구회사가 문제를 깨닫고 거대 방법론들을 스스로 연구해서 도입을 하면 그 핵심은 모르고 형식만 따라하는 경우가 많습니다. 그러다보면 프로세스가 너무 복잡하고, 문서도 너무 많이 만들어야 되는 경우가 허다합니다. 이런 시도는 거의 실패한다고 보면 됩니다. 애초에 따라 할 수도 없고, 억지로 따라한다면 비용과 시간은 몇 배로 더 들고 회사는 망하기 길 밖에 남지 않습니다. 국내의 대부분의 소프트웨어 회사들은 그러한 거대 방법론은 필요하지도 않습니다. 또 그렇게 많은 문서는 만들 필요도 없습니다. 개발에 필요한 핵심문서 몇 개만 자신들이 만들고 업데이트하고 감당할 수준 정도만 만들어내야 합니다.

 

극과 극의 양쪽이 아닌 회사에 딱 필요한 수준의 중간점을 찾아서 적용해야 합니다.

 

 

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

전규현 개발프로세스 문서, 프로세스

Trackback Address: http://allofsoftware.net/trackback/87 관련글 쓰기

빌딩과 개집

2008/12/20 02:22 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed
시중에는 넘쳐나는 수많은 소프트웨어 개발 방법론이 있습니다. 지금까지 알려진 방법론만 100가지가 넘습니다. 인터넷에서 이에 대한 설명만 보고 Template만 복사해 와서 회사에 적용하기에는 무리가 있습니다. Template과 Sample만 보면 방법론을 적용하여 선진 개발 방식을 따라 할 수 있을 것 같지만, 이는 착각입니다. 
방법론 자체가 잘못되지 않았음에도 잘못된 방식으로 오해를 하여 적용을 하거나 특정 부분에 집착하여 전체를 놓치는 경우가 많습니다.

집을 짓는데 빌딩을 만드는 방법을 적용하면 안되고, 그렇다고 개집을 만들 때처럼 대충 지어서도 안 됩니다. 개집을 만들 때는 대충 만들어도 되고, 안되면 다시 만들면 됩니다. 빌딩을 만들 때는 한치의 오차도 없이 정확하고 복잡한 방법을 사용해야 합니다. 
빌딩을 만드는데 대충 만들고 마음에 안들면 다시 만들고, 요구사항을 중간에 마구 바꾸면 안된다는 누구나 알 수 있습니다. 
그 반대로 개집을 만드는데, 정교한 설계와 많은 시간과 비용을 들일 필요는 없겠지요.
하지만 소프트웨어를 개발하는 현실 세계에서는 이와 같은 일들이 흔히 벌어집니다. 
빌딩과 같은 시스템을 만들면서 형식적으로만 방법론을 따르지만, 아키텍쳐는 심각하게 고려하지 않고, 요구사항이 철저히 분석, 검토되지도 않고 나중에 요구사항을 마구 바꿀 수 있다고 생각합니다.

모든 개발 방법은 프로젝트의 특성에 따라서 적절히 정해져야 합니다. 많은 경우 작거나 중간 규모의 프로젝트를 진행하면서 거대 프로젝트에 적합한 방법론을 기계적으로 적용하려고 합니다. 또는 정반대로 완전 주먹구구식으로 진행하는 경우도 많습니다. 
작거나 중간 규모의 프로젝트에 개발 방법론을 적용하려면 뭔가 생략하고 간소화를 해서 적용해야 할 것입니다. 그런데 무엇을 생략할지는 그 원리를 모르면 알기가 어렵습니다. 따라서 인터넷이나 소프트웨어 공학책을 통해 쉽게 익힌 방법론을 회사에 적용하는 것은 무리가 있습니다. 각 회사에 맞는 개발 방법론을 적용하려면 전문가의 도움을 받는 것도 좋은 방법일 것입니다.


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

전규현 개발프로세스 개발방법론, 프로세스

Trackback Address: http://allofsoftware.net/trackback/40 관련글 쓰기
관리자가 이런 일까지?

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

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

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

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

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

내가 개발에 집중할 수 없는 이유

우리나라에서는 개발자들이 개발에 집중할 수 없는 환경인 곳이 참 많다. 정도의 차이가 있지만 거의 대부분이라고 봐도 무방하다. 그 결정적인 이유는 개발자 혼자서 북치고 장구치고 다해야 하는 상황이기 때문이다. 원래는 이렇게..

설계가 필요할까?

최근에 Software Architect의 정체에 대해서 혼란을 겪고 있는 것 만큼 Software 설계에 대해서도 혼동스러운 것은 마찬가지인 것 같다. 그래서 설계에 대해서도 깔끔하게 정의를 해보자. 흔히 설계에 관한 다음..

Software Architect를 양성하는 나라

우리나라에서는 종종 SW Architect를 양성한다고 한다. 정부에서 막대한 예산이 지원도 되며 SW Architect를 양성하는 학원도 생기고 야단법석이다. 그럼 도대체 SW Architect는 무엇인가? SW Archi..

우리에게 지금 필요한 것은? 바로 이것

우리나라 대부분의 소프트웨어 회사들에게 가장 시급하게 필요한 것은 "기초 체력"이다. 히딩크가 우리나라 국가대표 축구팀을 처음 맞았을 때 강조한 것이 기초 체력이었다. 그전까지 우리는 국가대표 축구팀이 체력은 세계 어디를 내..

프로토타입을 재활용하면 될까? 안될까?

며칠 전 프로토타입에 관해 올린 글에 대해서 프로토타입 재사용에 대해서 여러 의견이 있어서 이 내용에 대해서 조금더 설명해보려고 한다. 2011/11/03 - [프로젝트/요구사항분석] - 프로토타입이란? 소프트웨어공학의 목적..

프로토타입이란?

프로토타입 (경제/경영) 양산(量産)에 앞서 제작해보는 원형(原型)을 '프로토타입'이라 하는데, 프로토타이핑이란 개발자들과 사용자들의 의사소통상의 효과를 증진시키기 위하여 취하는 시스템개발상의 기법이다. 일반적인 분석방법을..

같이 일하려면 적어라.

"협업은 말로 하는 것이 아니라 문서로 하는 것이다." 동서고금을 막론하고 개발자들은 적는 것을 싫어하고 또 잘 적지 못한다. 우리나라 개발자들은 그 정도가 훨씬 심하다. 우리나라에서는 회사가 크던 작던 상관없이 대부분 5년..