본문 바로가기

소프트웨어이야기

[마감] 티스토리 초대장을 나눠드립니다. i n v i t a t i o n 티스토리 초대장 안녕하세요! 티스토리에 보금자리를 마련하시려는 여러분께 초대장을 배포해 드리려고 합니다. 소프트웨어 개발자이면서 소프트웨어 개발 관련된 블로그를 운영하려는 분께 초대장(2장)을 보내드립니다. 티스토리 블로그는 초대에 의해서만 가입이 가능합니다. 원하시는 분은 댓글에 E-mail 주소를 남겨주시면 초대장을 보내드립니다. 남겨주실 때에는 꼭 비밀댓글로 남겨주세요! 초대장을 보내드리고 바로 개설하시지 않으신 분들은 초대장을 회수할 수도 있으니 바로 개설해주세요! 블로그 개설 후 블로그 주소를 남겨주시면 꼭 방문을 드리도록 하겠습니다. Yes 이런 분들께 드립니다! 1. 소프트웨어 개발자 또는 관련 종사자 2. 이메일 주소가 정상적인 분 3. 블로그를 시작하려.. 더보기
달콤한 유혹에 중독되어 있는 고객들 (SW 저가수주) 5throck님의 "프로젝트 저가수주의 폐해"라는 글을 읽고 의견을 적어봅니다. 그리고 "이 문제를 해결할 좋은 방법은 정말 존재하지 않는 것일까요? "라는 질문에 대한 나름 답변을 해볼까 합니다. 우리나라 소프트웨어 산업구조는 정말 기형적이라고 하지 않을 수 없습니다. 대형 SI업체가 시장을 지배하고 있고, 성공한 팩키지, 솔루션 회사는 거의 찾아보기 힘들고 과거에 성공했던 회사들도 그리 오래가지 못하고 쓰러져왔습니다. 그 이유야 여러가지가 있겠지만, 그 많은 이유 중에서 대형 SI업체가 지배하고 있는 시장구조에 대해서 의견을 적어보고자 합니다. 외국에서 유래를 찾아보기 힘든 대형 SI업체 구조는 우리나라 고객들에 입맛에는 맞는 것 같습니다. 대충의 요구사항만 가지고 있으면 대형SI업체에서 모든 것을 .. 더보기
Second System Syndrome (뭐 이따위로 만들었어?) 프레드 브룩스가 얘기한 "Second System Syndrome"은 주변에서 흔하게 접할 수 있습니다. 현재의 개발자들이 과거에 선배들이 만들어 놓은 First System의 문제 요소를 지적하며 Second System을 만들어야 한다고 주장합니다. 이러한 현상은 정말로 지겹게 봐왔습니다. 즉, 선배들이 만든 시스템을 "뭐 이따위로 만들었어? "하고 생각하면서 Second System을 만들어야 하는 온갖 이유를 대면서 경영자를 현혹시킵니다. 이렇게 주장하는 개발자들은 어리고 경험도 부족하기 때문에 First System이 얼마나 어려운 문제를 다루고 있었는지 제대로 이해하지 못합니다. 또 자신들이 문제로 지적하고 있는 요소들 외에 얼마나 많은 복잡한 이슈들을 First System에서 해결하고 있는.. 더보기
소프트웨어 개발이 즐거운가요? 나는 소프트웨어가 대학 전공이 아닙니다. 그럼에도 지금 소프트웨어 일을 하고 있는 이유는 소프트웨어를 개발하는 것이 즐거웠기 때문입니다. 처음부터 즐거웠고, 지금도 즐겁습니다. 옛날에는 아침에 눈을 뜨면 오늘 개발할 것들이 머리 속을 스치고 지나가면서 엔도르핀이 나왔었습니다. 이러한 이유 때문에 소프트웨어 개발에 종사하시는 분이 정말 많을 겁니다. 하지만 현실에 치여서, 즉 SI나 용역을 수행하면서 무리한 일정과 말도 안되는 요구사항, 수시로 바꾸는 요구사항 피곤한 사람들에 치여서 개발 일이 점점 즐겁지 않게 된다고 합니다. 그런데 가만히 보면 개발이 즐겁지 않은 것이 아니라 사람과 자신에게 주어진 무리한 요구가 싫은 것입니다. 이는 소프트웨어 필드뿐만 아니라 정도는 다르겠지만 모든 필드에 다 있는 현상.. 더보기
소프트웨어 프로젝트 성공이란? 소프트웨어 프로젝트 성공을 한마디로 말하면 다음과 같습니다. "주어진 시간에 주어진 비용으로 요구된 품질의 제품을 만들어 내는 것" 여기서 가장 중요한 것은 시간과 비용입니다. 어차피 품질도 시간과 비용에 귀결됩니다. 소프트웨어 공학은 이 둘을 충족시키기 위해서 즉, 최소비용으로 최소시간에 소프트웨어를 개발하기 위해서 40년간 연구되어온 실전 학문입니다. 즉 연구소에서 연구만 한 것이 아니라 실제 프로젝트에 적용이 되면서 계속 발전해 온 것입니다. 이 문장에는 많은 함축적인 의미가 있습니다. 고객과 합의한 스펙은 만족했으나 최종 제품이 고객의 요구를 만족시키지 못하면 분석부터 잘못된 것이므로 진정한 성공으로 보기 어렵고, 개발과정에서 개발자를 너무 밤낮, 주말 가리지 않고 혹사해서 개발자가 몇몇 퇴사를 .. 더보기
개발자는 일자리 구하기 힘들고 회사는 개발자 구하기 힘들고 개발자는 일자리 구하기 힘들고 회사는 개발자 구하기 힘든 현상은 오래된 현상이지만, 요즘 들어서는 더 심해지는 것 같습니다. 이러한 고충을 얘기하는 주변 분들이 많아진 것으로 봐서 확실히 채용 문제가 점점 어려워 지는 것 같습니다. 이와 같은 불일치가 일어나는 원인이야 뻔하죠. 서로의 눈높이가 높기 때문입니다. 개발자는 좋은 직장을 구하기가 어려운 것이고, 회사는 좋은 개발자를 구하기가 어렵습니다. 이중에서 회사의 채용활동에 포커스를 해보려고 합니다. 과거에 한창 거품일 때는 개발자의 "개"자만 붙어도 일단 뽑아갔는데, 쓴맛을 좀 봤죠. 개발자가 다 같은 개발자가 아니라는 것을 알게 되었습니다. 개발자들의 퍼포먼스 차이는 최대 28배까지 난다는 조사도 있듯이 어설픈 개발자 뽑아봤자 해고도 못하고 골치덩어.. 더보기
최고가 되지 마라 소프트웨어를 개발하는 개발자입니까? 주변을 한번 둘러보세요. 개발자 중에서 자신이 최고로 뛰어난 실력을 가지고 있습니까? 그렇다면 심각한 상황입니다. 더 이상 배울게 없다면 도태될 것입니다. 시행착오를 통해서 배우게 될 가능성이 더 높아졌습니다. 뭔가 더 배울 수 있는 사람들이 있는 곳으로 옮기거나 주위에 자신보다 더 뛰어난 사람을 두십시오. 모든 분야가 아니더라도 특정 부분이 배울 수 있는 사람이 있어도 좋겠죠. 주변에 항상 자신보다 뛰어난 사람들을 둬야 합니다. 뛰어난 사람의 행동 양식을 익히게 됩니다. 자신이 최고인 줄 알면서 살아온 10년보다 자신이 뭐가 부족한지 알고 뛰어난 사람에게서 배운 1년이 더 배울 것이 많다는 것을 알게 될 것입니다. 어차피 우리가 지금 배우고 있는 대부분도 뛰어났던 앞.. 더보기
소프트웨어를 개발하는 끝내주게 좋은 방법 블로깅을 시작한지는 그리 오래 되지 않았지만 블로그 운영을 시작하면서 자연스럽게 인터넷에서 소프트웨어를 개발에 대한 다양한 글들을 보게 되었습니다. 대부분의 글들은 자신의 직,간접적인 경험에 의해서 작성되지만 모든 글들을 쓰면 그 백그라운드에 대해서는 자세히 설명할 수가 없으므로, 글을 읽는 독자들은 오해를 하는 일들이 잦을 것으로 생각합니다. 즉 그 경험들과 지식들이 나에게 똑같이 적용이 되거나 도움이 될 것이라고 단순히 생각하는 오류가 벌어질 수도 있을 것 같습니다. 그래서 제가 쓰는 글들은 자연스럽게 소프트웨어를 개발하는 기본 원리나 원칙에 포커스를 하고 있습니다. 수많은 소프트웨어 개발사와 개발자들을 만나면서 단순한 기법이나 툴의 사용보다 기본 원리를 익히는 것이 더 중요하다는 것을 알게 된 것도.. 더보기
Head First Software Development 리뷰 "더 쉽고 재미있게 소프트웨어를 개발하는 방법" 이 책의 한글 부제입니다. 확실히 재미는 있겠더군요. 책도 재미있게 구성되어 있고요. 책의 전반적이 내용이 소프트웨어를 개발하는 과정을 재미있고, 쉽게 접근할 수 있도록 잘 작성되어 있습니다. 하지만 상당히 부족한 점이 발견됩니다. 그건 바로 "스펙"이죠. 이 책에서 소개하는 사용자 스토리와 태스크는 "스펙"을 대신할 수 있는 수준은 아닙니다. 사실 내용도 좀 다르죠. 이 세상에는 수많은 종류의 소프트웨어가 있는데, 그 중에서 일부는 이 책에서 소개하는 방법이 적당할 수도 있다는 생각이 듭니다. 예를 들어서 간단한 쇼핑몰 사이트를 구축하거나 그리 복잡하지 않는 비즈니스 시스템을 만들 때 좋을 것도 같습니다. 그 외에도 더 있겠죠. 하지만 사용자 스토리와 태.. 더보기
닭이 먼저일까? 달걀이 먼저일까? 소프트웨어 공학은 가르칠 수 없다고 합니다. 단지, 시행착오를 통해서 배우던지, 경험자에게 배우는 방법 밖에 없다고 합니다. 그래서 소프트웨어를 잘 개발하는 방법을 배우는 가장 좋은 방법은 잘 되어 있는 소프트웨어 회사에 들어가서 배우는 것입니다. 잘 되어 있는 회사에서 소프트웨어를 개발하다 보면 자연스럽게 몸에 익히게 되는 겁니다. 소프트웨어 개발이 전체적으로 어떻게 돌아가는지 자연스럽게 몸에 익히게 되며, 각 기능 조직은 어떻게 구분이 되며, 개발에 꼭 필요한 기반 시스템은 어떤 것들이 있으며 어떻게 사용하는지 배우게 됩니다. 따로 공부한다는 생각으로 배우는 것이 아니며 자연스럽게 몸에 익게 됩니다. 그런데 우리의 문제는 여기에 있습니다. 잘 되어 있는 소프트웨어 회사가 별로 없다는 겁니다. 제 컨설.. 더보기