본문 바로가기

분류 전체보기

그냥 쓸 수 있겠네요. 소프트웨어를 개발하면서 가장 어려운 일은 고객의 요구사항을 파악하는 일이라고 알려져입니다. 고전적인 Waterfall 방식부터 Agile까지 요구사항에 대해서 다양한 방법으로 상당히 신경을 쓰고 있습니다. 특히나 우리나라에서는 고객이 요구사항을 잘 가르쳐 주지 않습니다. 물론 자신의 요구사항을 완벽하게 자세히 알고 말해주는 고객은 전세계 어디서도 찾아보기 어려운 것이 사실입니다. 정도의 차이가 있을 뿐이죠. 그만큼 요구사항 파악은 어려운 일입니다. 우리나라에서 요구사항 파악 시 고객이 이렇게 얘기하는 경우가 흔합니다. "자세한 요구사항은 나중에 알려줄 테니 일단 구현을 시작해주세요." 그래서 일단 제품을 다 만들어 놓고 고객에게 시연을 하면 그 때서야 고객이 "여기는 이렇게 고쳐달라", "이 기능을 넣어.. 더보기
소프트웨어 공학이 뭔가? 필자가 소프트웨어 공학(소프트웨어 엔지니어링)이란 용어를 안 것은 얼마 되지 않았습니다. 소프트웨어 공학이라는 용어를 접하고 그 내용을 보니 오랫동안 소프트웨어를 개발하면서 해왔던 그 방법 그대로를 적어 놓은 것에 불과했습니다. 물론 소프트웨어 공학에 포함된 전체 내용은 상당히 방대하지만 그 근본 원리와 핵심적인 내용들은 아주 익숙한 내용들이었습니다. 지금 글을 읽고 계신 분께서 소프트웨어를 아주 잘 개발하고 있다면 이들은 이미 소프트웨어 공학의 대가입니다. 단순히 머리가 좋아서 혼자서 잘 개발을 잘하는 것을 제외하고 여러 명의 팀을 이끌고 복잡한 시스템을 짧은 시간에 가장 적은 비용으로 품질 높은 제품을 이미 만들어 내고 있다면 소프트웨어 공학이란 말을 한번도 들어본 적이 없어도 이미 전문가입니다. 대.. 더보기
잔말 말고 시키는 대로 해 소프트웨어를 개발하는 현장에서는 매우 합리적인 척하는 가면을 쓰고 벌어지는 수많은 비 논리적인 판단과 결정을 자주 보게 됩니다. 약장사처럼 "이 약만 먹어봐 끝내줘!"부터 아주 사소한 이슈까지 정말 다양한 문제들이 비효율적으로 의논되고 합리적이지 않은 결정이 이루어 집니다. 물론 PI(Process Innovation)을 하다 보면 "잔말 말고 시키는 대로 해!"라고 하고 싶은 때가 종종 있습니다. 모든 이슈를 모두에게 합리적으로 납득시키고 이끌어가는 것이 오히려 비효율적이고 또는 거의 불가능할 때 이런 생각이 듭니다. 소프트웨어 개발에 관련된 이슈는 상대방과 반대의 생각을 가지고 끝까지 반박을 하면 끝도 없는 논쟁으로 빠뜨리는 것이 그리 어려운 일이 아닙니다. 물론 득도 없죠. C가 좋나? C++이 좋.. 더보기
VSS, CVS, SVN 비교 Google Trend에서 세가지 SCM(Software Configuration Management)의 경향을 살펴봤습니다. (아래 그림 참조) CVS가 여전히 압도적인 우위를 점하고 있고, 상대적으로 SVN은 꾸준히 성장을 하고 있습니다. 물론 Google Trend가 실제 제품의 점유율을 보여주지는 않지만 그만큼 사람들의 관심사는 엿볼 수 있을 것 같습니다. CVS의 감소는 SVN으로 대체되고 있는 듯 보입니다. 하지만 이렇게 더딘 이유는 CVS도 충분히 좋은 SCM이고 더 좋은 SCM이 나왔다고 함부로 바꿀 수 있는 것이 아니기 때문입니다. 물론 새로 시작하는 회사가 있다면 SVN을 쓰면 좋겠지만, 기존에 수년가 CVS를 쓰던 회사가 치명적인 문제도 없는데 SVN을 그냥 바꿀 필요는 없겠지요. (.. 더보기
하루에 몇 번 커밋하세요? 한 개발자가 하루에서 수도 없이 커밋(Commit)을 하고 있다면 소스코드관리시스템을 백업서버로 쓰고 있을 가능성이 높습니다. 사실 이러한 경우를 매우 자주 봤습니다. 혹시 코딩을 하다가 점심 먹으러 간다고 한번 커밋하고 중간 중간에 수시로 커밋을 하고 있으면 이건 좋은 방법은 아닙니다. 혹시 이런 방법으로 소스코드관리시스템(SVN, CVS, VSS, ClearCase 등)을 사용하고 계신지 확인해보십시오. 본인이 아니라도 이렇게 백업용도로 사용하고 있는 동료나 후배가 없는지 확인해보십시오. 커밋을 하면 소스코드의 Revision이 바뀌게 되는데, 각각의 Revision은 의미를 가지게 됩니다. 그 의미가 "점심 먹으러 나가면서 임시로 저장" 이렇게 되면 곤란합니다. 각 Revision의 정보는 우리회사.. 더보기
공사판 프로젝트? 가끔 소프트웨어 프로젝트가 공사판 같다는 얘기를 하는데, "공사판"이 들으면 기분 나쁠 수도 있겠습니다. ^^ 요즘 빌딩 공사현장을 가만히 보면 깜짝 놀랄 때가 많습니다. 엄청난 규모의 빌딩을 만드는데, 사람을 그렇게 많이 보이지 않고 척척 빌딩이 올라가는 것을 보면 놀라움을 금할 수 없습니다. 모듈화된 건축방식, 자동화된 기계들, 전문화된 각각의 전문가들, 상세한 설계, 체계적이 프로젝트관리. 소프트웨어 개발과 사뭇 비슷하면서도 소프트웨어 개발 프로젝트가 공사판 같았으면 좋겠다라는 생각을 해보게 됩니다. PS) 사실 소프트웨어 개발의 용어 중 상당부분은 공사 용어에서 왔습니다. 프로젝트관리의 뿌리도 건축, 건설이죠. 이미지출처 : Microsoft Office Online 더보기
2009년 새해가 밝았습니다. - 개발자에게도 희망의 한해가 됐으면... 소프트웨어 개발자 여러분 무자년동안 수고 많으셨습니다. 기축년에는 하시는 일 모두 잘 되시기 바랍니다. 제가 처음 소프트웨어 개발일에 뛰어 들었을 때는 개발이란 사람들이 잘 모르는 "신기한" 직업 중에 하나였습니다. 재능이 있는 일부 특수한 사람들이 하는 일이 었지요. 그리고 한참 있으니, 20세기 말쯤 되나요? 최고의 선망의 직업이 되었습니다. 꾀죄죄하고 맨날 밤새면서 미래가 불확실해서 결혼을 하려고 해도 여자집에서 반대가 심했는데, 하루 아침에 최고의 신랑감이 되었었지요. 이것도 잠깐, 이제는 3D 직업 중 하나로 인식이 되어서 대학의 학과 중에서도 점점 인기 없는 학과가 되어가고 있는 것이 우리 S/W 업계의 현실입니다. 모든 것에 밝은 곳이 있으면 어두운 곳이 있지만, 20년도 안되는 시간에 참 .. 더보기
소프트웨어는 소프트하지 않다. 소프트웨어는 손쉽게 수정할 수 있다고 생각하기 쉽습니다. 특히 고객이나 개발을 잘 이해하지 못하는 Sales part에서는 소프트웨어가 대단히 Soft해서 쉽게 주물떡 주물떡 해서 변경이 가능할 것으로 생각합니다. 하지만 무엇이 언제 수정되냐에 따라서 소프트웨어는 절대로 소프트하지 않습니다. 프로젝트 막바지에 요구사항이 변경되면 요구사항 분석 시 반영된 것에 비하여 수십배의 비용을 지불해야 합니다. 소프트웨어가 소프트하다고 생각하는 것은 비단 고객이나 Sales만이 아닙니다. 개발자들도 그런 생각을 하는 것을 종종 볼 수 있습니다. 개발자들은 자신이 뚝딱뚝딱 만들어 보고는 수정이 쉽다고 생각할 수 있습니다. 하지만 이는 간단한 프로토타입에 불과하고 실제 프로젝트나 제품을 만들 때는 사정이 달라집니다. 요.. 더보기
공든 탑을 쌓는 것은 수년, 무너지는 것은 한 순간 소프트웨어 개발 문화가 한 회사에서 제대로 정착하려면 수년이 걸립니다. 3년이 걸리기도 하고 5년이 걸리기도 합니다. 하지만 이것이 무너지는 데는 불과 몇 개월이 걸리지 않습니다. 손바닥에 올려 놓은 모래가 손가락 사이로 줄줄 빠져나가는 것처럼 허물어지는 것은 순식간입니다. 대부분의 이러한 개발 문화 와해는 경영층에서부터 시작됩니다. CTO를 잃거나, 회사의 경영방침이 완전히 단기적인 매출지향으로 바뀌면서 이러한 일들이 일어나곤 합니다. 수년간 키워온 남녀간의 사랑이 한 순간의 실수로 깨져버릴 수 있고, 이를 다시 회복하는 데는 오랜 시간이 걸리듯이 이렇게 와해된 개발 문화는 다시 일으키기가 쉽지 않습니다. 그만큼 소프트웨어 회사에서 경영층의 마인드가 미치는 영향은 큽니다. 개발을 이해하지 못하거나, 이.. 더보기
Agile에 대한 단상 올 여름 휴가 차 미국에 방문 했을 때 나의 오랜 친구이며 소프트웨어 개발 동지인 Eddy를 만났습니다. 그 친구는 UC버클리에서 컴퓨터 사이언스를 전공하고 실리콘밸리에서 오랫동안 잔뼈가 굵은 친구인데, 같이 소프트웨어 공학에 대해서 토론을 하게 되었습니다. 그때 대뜸 "Agile을 아냐"고 물어보더군요. 그리고는 현재 미국에서 Agile이 얼마나 인기가 있는지 장황하게 설명을 해주더군요. 이때 저는 한국의 열악한 소프트웨어 개발 실정을 적나라하게 설명해 줬습니다. 이 친구 역시 한국 업체와 몇 번 일을 해본 경험이 있어서 이해를 하더군요. 지금 한국에서도 Agile에 대한 관심이 참 높은 것 같습니다. 저는 Agile을 헐뜯을 의도는 전혀 없습니다. 하지만 소프트웨어 개발에 꼭 필요한 기초조차 갖추지 .. 더보기