2015년 9월 24일 목요일

성공적인 요구사항 관리를 위한 SW개발팀 간 4가지 협업전략

요구사항이라는 것은 애자일이건 아니건 상관없이 모든 소프트웨어 팀이 직면하게 되는 이슈입니다. 요구사항의 세목을 만드는 것은 많은 시간을 요구하기 때문에, 부적절한 결과를 초래할 수 있습니다. 즉 적절한 시기에 “적절한” 요구사항을 얻기 어렵기 때문에, 각 팀은 요구사항 프로세스를 향상시키기 위한 방법을 발견하기 위해 노력해야 합니다.  

요구사항 관리는 프로젝트의 방향을 결정짓는 매우 중요한 프로세스이나 요구사항 수집을 위한 왕도가 없음에 따라 개발팀 간 이해공유, 우선순위설정, 표준문서화 등을 통해 충분한 협업을 수행하는 방안 등이 중요합니다.

Ⅰ. 이해공유(Shared understanding)
Ⅱ. 우선순위설정(Prioritizing)
Ⅲ. 테스트를 포함한 코딩(Driving coding with tests)
Ⅳ. 요구사항 표준문서화(Documenting requirements)

자바스크립트(Javascript) UI Part 1 - 모듈 패턴

자바스크립트 유효범위의 문제
HTML5 나 웹앱 등 웹 기술로 만들어진 어플리케이션이 속속 등장하고 있습니다 . 이런 웹 어플리케이션을 구현하는 핵심기술은 자바스크립트이나 , 실제로 많은 개발자들은 자바스크립트의 특성을 잘 이해하지 못하여 생기는 문제가 많이 발생하고 있습니다 .
자바스크립트의 특성 중 아쉬운 점은 유효범위가 다소 혼란스러운 점입니다 . 특히 자바나 C 언어를 다루는 개발자가 자바스크립트를 접하게 되면 더욱 그렇게 느껴질 수 있습니다 . 예를 들어 자바스크립트는 블록 유효범위가 없으며 함수 유효범위가 있을 뿐입니다 . 이런 차이를 잘 이해하지 못해서 생기는 문제는 실제로 매우 많습니다 .
이런 특징은 결국 중요 함수나 변수가 공개된 영역 ( 자바스크립트에서는 이를 scope 이라고 표현 ) 으로 노출 된다는 점입니다 . 자바스크립트는 public 이나 private 과 같은 함수나 변수의 노출 범위를 명시적으로 표현 할 수 있는 키워드가 존재하지 않습니다 . 하지만 자바스크립트의 다양한 표현방법을 활용하여 이를 모듈화하면 어느 정도 보호 할 수가 있습니다 .
이러한 방법을 설명할 것이며 , 여기에 나와 있는 방식은 대부분의 실제 웹서비스나 자바스크립트 라이브러리 등에서 많이 사용되고 있는 방법들입니다 .
‘ 어떤 문제가 실제 발생하는 것인지 ?’, ‘ 어떻게 해결 할 수 있는지 ?’ 를 알아보겠습니다.

접근 제어를 위한 모듈화
실제 자바스크립트로 어떻게 구현되는지를 알기 위해서, 실제 코드를 살펴봅니다. 예제 코드에서는 ‘현재 사과의 개수를 확인하는 것’ 과 ‘현재 사과의 개수를 하나 증가’ 하는 함수를 간단히 구현합니다.

예제 1

예제 2

모듈의 재활용
모듈화 패턴은 재활용될 수가 있습니다. 예를 들어 위에서 나온 즉시실행함수에서 어떤 결과를 반환할 수도 있을 것입니다. 그 반환 값에 공개된 함수를 포함하면 되는 것입니다. 코드를 살펴보겠습니다.

예제 5

애자일 적용과 프로젝트를 실패하게 만드는 5가지 공통요인

신속하고 민첩한 개발을 위해 도입한 애자일 개발방법론이 오히려 프로젝트를 실패하게 만드는 경우가 있습니다. 애자일 방법론에 대한 반감은 변화에 대한 단순한 반응은 아닌 애자일을 형편없이 실행하는 조직에 대한 반응일 경우가 대부분임. 애자일 프로젝트는 알지 못하는 사이에 CEO, PM, 계획·교육관련 실수를 하는 사람들, 애자일과 관계없는 개발측면의 문제들로 인해 큰 어려움을 겪고 있습니다.    
이에 따라 애자일 전문가들이 지적하는 애자일의 도입과 실행에서 불거지는 공통적인 실패요인들에 대해 다음과 같이 살펴 도록 합니다.

Ⅰ. 명확한 이유 없이 애자일을 도입하는 경우
Ⅱ. 사업부와 개발부를 별도로 관리하는 경우
Ⅲ. 팀원에게 문화적 변화에 적응할 충분한 시간이 주어지지 않을 경우
Ⅳ. 전체적으로 불충분한 교육을 받게 되는 경우
Ⅴ. 애자일과 상관없는 실패를 애자일 탓으로 돌리는 경우