본문 바로가기

지식/프로젝트 관리 및 생성

Configurable 어떤 프로그램을 하나 만들었다고 했을 때 그 프로그램이 모든 상황을 다 만족시키지는 못한다. 프로그램이라는 것은 사람의 업무를 돕기 위해서 존재하기 때문에 그 사람이 어떤 업무 혹은 환경에서 일을 하느냐에 따라서 그 사람이 원하는 기능들이 다들 틀려지기 때문이다. 따라서 프로그램은 그 사용자의 특성 및 업무적 환경을 고려해서 별도의 Customization을 위한 기능들을 제공해야 한다. 우리 시스템도 이런 별도의 확장성을 고려한 인터페이스를 제공하고 있고, 이 방식을 가지고 현재까지 거의 40개 이상의 시스템에 적용하는 작업을 진행해왔다. 현재 우리가 제공하는 확장 방식은 Java나 C++ API 형식의 확장 방안을 가지고 작업을 할 수 있도록 지원하는데 무척이나 Hard한 방식이라고 할 수 있다. 그.. 더보기
Project Tip - 중요 시점(milestone)의 이해 [MS-Project] 중요 시점(milestone)의 이해 오늘은 11월9일(수)에 열리는 남웅찬님의 MS-Project 과정 중 중요 시점(milestone)에 대해서 알아보도록 하겠습니다. (사용버전: 2002,2003) (1) 중요 시점의 의미 하위 작업은 작업의 기간이 있는 일반 작업과 기간 값이 없는 중요 시점으로 나눌 수 있습니다. 하위 작업이 실행 작업의 개념으로서 기간을 부여하고 자원을 배정하여 작업량을 관리하는 용도라면, 중요 시점은 일정 계획을 세울 때 프로젝트의 검토 시점을 미리 지정하는 역할을 합니다. 중요 시점은 일반적으로 의사 결정 상 중요한 시점으로서 관리자의 중대한 결정과 확인을 필요로 할 때 사용합니다. 프로젝트가 진행 중에 있을 때 관리자의 판단으로 특정 중요 시점에서 .. 더보기
테스터 제 날짜에 프로젝트를 완료했다고 해서 성공한 프로젝트라고 할 수 있을까? 품질이 보장되지 않은 소프트웨어는 사상누각에 불과하다. 따라서 최근 들어 소프트웨어 프로젝트에 있어 품질을 보증하기 위한 테스트의 중요성이 부각되고 있다. 특집 5부에서는 소프트웨어 프로세스 상에서 다양하게 실행되는 테스트에는 무엇이 있는지 기본적인 내용을 살펴보자. 또한 실제 SI 사례를 통해 현업에서 테스트가 어떻게 이뤄지고 있으며, 문제는 무엇인지 알아보고 이를 통해 실용주의적 테스트에 대해 고민해 볼 것이다. 6~70년대 성장 위주의 시대를 맞으며 건설 분야의 붐을 이루었듯이 90년대 후반 이후 각 업체의 인프라스트럭처(이하 인프라)인 IT 시스템을 구축하는 프로젝트는 봇물을 이루며 곳곳에서 터져 나왔다. 이제 금융, 제조,.. 더보기
프로젝트의 시작과 끝「일정관리 프로그램」 개인의 일정이라면 간단한 메모로 관리할 수 있지만 최근의 소프트웨어 프로젝트는 관리자의 기억과 메모에 의존하기에는 고려사항이 너무나 많다. 여기서는 프로젝트 일정과 진척사항을 기록하고 일정 변경시 다시 반영할 수 있는 소프트웨어를 살펴 본다. 한기철 (마이크로소프트웨어) 2004/03/30 일반적으로 ‘생산된다’라고 표현되는 제품은 반복적인 생산이 가능하다. 반면 소프트웨어의 생산 과정은 그 복제의 용이성과는 반대되는 비반복적인 업무들로 구성된다. 어제 그린 데이터베이스 설계도를 그대로 다시 그린다면 쓸데없는 일을 한번 더 했을 뿐이지 두 개의 설계도를 생산한 것은 아니다. 이렇게 주로 일회성 작업들의 연관을 통해 생산되는 대표적인 생산물이 건축물과 소프트웨어이다. 소프트웨어 개발 프로젝트를 진행해 오면.. 더보기
소프트웨어 품질인증 왜 필요한가 소프트웨어 품질인증 왜 필요한가 김길조/한국전자통신연구원 품질경영팀 선임연구원 소프트웨어가 고품질, 저비용, 적시성을 갖추고 개발된다면 경쟁력을 높일 수 있다. 최근 소프트웨어 품질에 대한 사회적인 관심이 증가하면서 품질 인증에 대한 관심도 함께 커지고 있다. 개발자 입장에서 볼 때 소프트웨어 품질이 좋다면 이를 적극 알리고자 할 것이며, 사용자 입장에서 보면 소프트웨어의 품질 수준을 미리 알 수 있으면 구매시 많은 도움이 된다. 그렇다면 공인기관 또는 자격을 갖춘 개인이 품질을 인증해 주면 도움이 되지 않을까? 소프트웨어 품질 인증은 이러한 요구에서 시작된다. 소프트웨어의 품질 인증은 크게 두 가지로 나눌 수 있다. 하나는 소프트웨어의 제품 품질을 평가하여 인증하는 것이고, 또 하나는 소프트웨어 개발 .. 더보기
소프트웨어 개발의 전형적인 실수 목록 ▶ 사람 관련 실수 1. 동기 저하 : 프로젝트 전 단계에 걸쳐 주로 프로젝트 관리자가 팀원들의 동기를 저하시키는 행동을 함. 예를 들어 팀원들과 프로젝트의 목적을 공유하지 않거나 야근을 하고 있는데 자신은 휴가를 가는 등의 행동. 2. 저급 인력 : 인력을 고용할 때 일을 완수할 수 있는 사람보다 가장 빨리 투입될 수 있는 사람을 고용. 3. 문제 인물 방치 : 팀이 프로젝트 관리자에게 가지는 가장 흔한 불만 중의 하나는 문제 팀원에 대해 조치를 취하지 않는 태도임. 일을 잘한다 하더라도 분위기를 흐리면 나의 경우는 팀에서 방출시킴. 4. 영웅적 행동 : '할 수 있다'식 태도를 너무 강조하여 모험적이고 극단적인 일정을 수립한다거나 독단적인 행동을 장려함. 사소한 실수를 진짜 재앙으로 이끌 수 있음. .. 더보기
실용주의 프로그래머 Tip 70 1. 자신의 기술craft에 관심과 애정을 가져라. 소프트웨어 개발을 잘 해보려는 생각이 없다면 왜 인생을 그 일을 하면서 보내는가? 2. 자신의 일에 대해 생각하면서 일하라! 자동 조종 장치를 끄고 직접 조종하라. 스스로의 작업을 지속적으로 비판하고 평가하라. 3. 어설픈 변명을 만들지 말고 대안을 제시하라. 변명하는 대신 대안을 제시하라. 그 일은 할 수 없다고 말하지 말고, 무엇을 할 수 있는지에 대해 설명하라. 4. 깨진 창문을 내버려두지 말라. 눈에 뜨일 때마다 나쁜 설계, 잘못된 결정, 좋지 않은 코드를 고쳐라. 5. 변화의 촉매가 되라. 사람들에게 변화를 강요할 수는 없다. 대신, 미래가 어떤 모습일지 그들에게 보여주고 미래를 만드는 일에 그들이 참여하도록 도우라. 6. 큰 그림을 기억하라... 더보기
프로젝트 생산성 향상을 위한 개발 전략 프로젝트를 하면서 항상 내리는 결론은 몸서리치며 '다시는 프로젝트 안한다'였다. 물론 먹는 문제가 다른 방법으로 해결된다는 대전제를 거스를 수는 없었지만,,,ㅠ.ㅠ 대부분의 개발자들이 고객 만족을 위해서 뿐 아니라 회사의 적자를 최소화 하려고 많은 잔업을 하면서 높은 생산성을 내기 위하여 최선을 다하고 있는 게 SI의 현실이다. 이상적이지만 "고객과 회사와 개인을 동시에 만족시키는 프로젝트는 없는가?"라는 질문을 우리는 끊임없이 던져야 한다고 생각한다. 이 시점에서 내리는 결론은 개발 생산성은 더 이상 개발자를 희생시키면서 진행되어서는 안된다는 것이다.(피플웨어를 제발 중요시하자!!!) 아래는 개발측면에서 개발생산성을 향상시키기 위한 몇가지 원칙을 정리한 내용이다. 특히 맨 마지막의 프로젝트를 제품의 수.. 더보기
“이 정도만 알면 프로젝트관리 할 수 있다!” “이 정도만 알면 프로젝트관리 할 수 있다!” 1. 프로젝트 단계 및 단계별 주요업무를 정의한다 가. 나. 다. 라. 2. 프로젝트 개발계획에 포함될 주요업무를 정의한다 3. 프로젝트관리 분야를 정의한다 4. 프로젝트관리 분야별 주요업무를 정의한다 가. 나. 다. 라. 마. 5. WBS를 작성한다 가. WBS 작성에 필요한 자료를 정의한다 나. PBS를 작성한다(코드 포함, 개발업무 또는 시스템 기준) 다. FBS를 작성한다(코드 포함, 방법론 기준) 라. WBS를 작성한다(코드포함, PBS + FBS) : 별첨 양식 참조 6. 일정표를 작성한다 가. Activity 코드체계를 정의한다 가. Activity 목록을 작성한다: 별첨 WBS 양식 참조 나. Activity 순서를 정의한다 다. Activit.. 더보기
소프트웨어 개발 방법론 충격진화「MDA」 우리가 현재 살고 있는 산업사회에 있어서 가장 중요한 것은 무엇인가? 혹자는 믿음이라고 답할 것이고, 혹자는 밥이라고 답할 것이며, 어떤 사람은 그저 애니메이션이나 실컷 보면서 살 수 있으면 그만이라고 말할 것이다. 무엇이 되었든 개인에게 있어서 틀린 답은 아니겠으나 산업사회의 발전을 위해서 가장 중요한 사회학적인 요인을 하나만 선택하라고 하면 그것은 곧 ‘생산성(productivity)’이 될 것이다. 소위 우리가 말하는 ‘산업혁명’이라는 것도 기실은 생산성의 폭발적인 증대로 귀결될 수 있다. 소프트웨어를 개발하는 입장에서도 이 생산성의 문제는 무척이나 중요하다. 같은 수준의 완성품을 만드는 데 있어서 가능하면 적은 시간과 적은 노동력과 원자재만을 이용하는 방법을 연구하는 것은 그런 측면에서 커다란 의.. 더보기