2015년 8월 28일 금요일

사용자경험 분석 시 범하기 쉬운 5가지 흔한 실수

애자일 소프트웨어 개발 방법론을 사용할 때, User Story를 사용해서 대부분의 요구사항을 수집합니다. User Story는 "의사소통 대상과 대상별 요구사항“의 간결한 형태와 수락기준으로 구성됩니다. User Story는 간결하지만 잘 작성하는 것이 무척 어려운 작업입니다. User Story 작성 시 흔히 범하는 5가지를 실수를 검토해봄으로써 올바른 User Story 작성법을 살펴보도록 합니다.

[5 가지 흔한 실수들]

1. 단일 사용자를 위한 User Story
  • 예 : “ 사용자로써 나는 광고를 관리할 수 있기 원한다 . 왜냐하면 기한이 만료되고 실수가 있는 광고를 제거할 수 있기 때문이다 .”
  • 언뜻 보면 모든 요소가 있어서 User Story 로 별 문제가 없어 보임
  • 특색에 맞게 사용자를 살펴보면 광고관리를 이해하고 수행하는 사용자는 광고 조정을 하는 포탈 관리자나 모든 광고 목록을 가지고 상황에 따라 광고들을 교체하는 광고주들을 뜻함
  • 페르소나나 역할을 놓치고 있음
2. 제품 소유자를 위한 User Story
  • 예 : “ 제품의 소유자로써 나는 광고를 지울 수 있는 시스템을 원한다 . 왜나하면 사용자들이 광고를 지울 수 있기 때문이다 .”
  • 모든 요소들이 있지만 뭔가 어색함
  • ‘ 당신이 무엇을 원한다 . 당신은 그것을 가지고 있다 ’ 는 형식으로 User Story 를 쓰는 사람이 단지 하고 싶은 행위에 초점을 두고 있으며 , 사용자 기대에 대한 단서를 주는 역할이나 페르소나가 없음
3. 개발자를 위한 User Story
  • 예 : “ 개발자로써 나는 폴더 위젯을 재배치하기를 원한다 . 왜냐하면 나는 폴더 위젯을 유지하고 싶기 때문이다 .”
  • 기술적인 백로그 (Technical backlog) 나 기술적인 요구사항의 대표하는 예임
  • 이와 같은 User Story 는 기술적 채무 (Technical Debt) 으로도 불리며 , 기술적 채무는 소프트웨어 업데이트 , 리팩토링 (Refactoring), 프레임웍의 교체와 같은 유지보수 관련 필수적인 일을 포함함
  • 고객을 위한 가치를 대변하지는 않고 , 애자일 관점에서 매 주기의 마지막에 비즈니스적 가치를 수반해함
  • 역할에 페르소나를 붙여 사용자관점에서 기술하는 예로 ‘ 상업적인 사용자로서 나는 동시에 여러 검색을 할 수 있는 시스템을 원한다 . 왜냐하면 나는 일을 좀 더 빨리 하고 싶기 때문이다 .’ 를 둘 수 있음
  • 수락기준들은 향상을 측정 가능하고 테스트 가능하도록 정의해야 함
  • 예 : ‘ 한 사용자가 동시에 5 가지 검색을 할 수 있음 ’
4. 고객을 위한 비즈니스 가치나 혜택이 없음
  • 예 : “ 상업 광고주로써 나는 필터링 옵션을 원한다 ”
  • 역할도 있고 니즈도 있지만 이유와 비즈니스 가치가 없음
5. 수락기준이나 만족조건이 없음
  • 수락기준이 없는 것은 개발업무를 잘못 정의하거나 잘못된 평가로 시작해서 전체를 오류덩어리로 만들 수 있음
  • 이해부족으로 Story 가 테스트를 통과하지 못할 수도 있고 Test Case 가 다른 기준들을 적용할 수도 있음
  • 수락기준은 요구사항을 명확하게 이해하고 주기별 결과물을 받아들일지는 결정하는 중요한 역할을 함
  • 수락기준을 만드는 좋은 방법은 '~ 한다면 어떻게 될까 ?(What if ... ?)', ' 어디서 (Where) ...?', ' 언제 (When) ... ?', ' 어떻게 (How) ... ?' 와 같은 질문을 해보는 것임
  • 예제들을 사용해서 가정들을 제거해서 간결하게 만들어보면 Story 가 세련되어지고 재구성되고 좀 더 작은 Story 로 나뉘어질 것임 

애자일 프로젝트 매니저가 갖춰야 할 3가지 필요기술

애자일 프로세스의 도입은 SW공학과 IT 프로젝트 측면에서 폭발적으로 늘고 있습니다. 애자일 프로젝트 매니저는 팀을 성공적으로 이끌기 위해서 애자일 기법들에 제대로 이해하고 사용해야 합니다. 사용자 경험 분석 등 요구사항분석을 통해 업무를 정의하고, Burn-down, Burn-up 차트 등을 이용하여 일의 진행사항을 체크하고, 용어의 통일이나 클라우드 컴퓨팅 등을 활용하여 팀 전체간의 의사소통을 원활하게 등 애자일 기법과 툴을 잘 활용해야 합니다.

*애자일 기본사항 (Agile fundamentals)
애자일 ALM 에서 프로젝트 매니저는 개발팀이 사용하고 있는 개발 프레임웍 (Scrum, XP, Kanban or 애자일 기법 조합 ) 에 대해 잘 이해하고 있어야 함.

추적 (Tracking) 과 척도 (Metric)
애자일 ALM 에서 프로젝트 매니저 훈련의 중요한 부분은 일의 진행사항을 추적하는데 사용되는 척도를 명확하게 이해하는 것임.

협업 (Collaboration)
애자일 기법들을 제대로 이해하고 진행상황을 올바로 측정하고 추적하는 것과 더불어 애자일 ALM 환경 상에서 프로젝트 매니저는 협업의 중요성을 잘 이해해야 함.

성공적인 요구사항관리를 위한 3가지 커뮤니케이션(협업) 유형

협업은 요구사항을 관리하는데 매우 중요한 요소입니다. 협업은 SW 개발자와 최종 사용자간의 협업, 고객 그룹들 사이의 협업, 회사 내부적인 협업의 3가지 형태가 있습니다. 이 3가지 형태의 협업을 잘 활용하여 요구사항을 효과적으로 관리하는 것은 경쟁력 있는 SW를 개발하는 데 도움이 됩니다.

◆ 세 가지 형태의 협업유형
  • 첫 번째 형태는 SW 개발자와 최종 사용자간의 대화임.
  • 두 번째 형태는 고객 그룹 사이에 활발하게 나타나는 의사소통임.
  • 세 번째 형태는 회사 내부적으로 발생하는 의사소통임.

2015년 8월 27일 목요일

소프트웨어 모델링

모델 존재의 이유
<문제와 답 사이의 디딤돌>
  • 문제와 연결성
  • 답과의 연결성
  • 모델 자체의 완전성 및 정확성



자세히 보기 →

사물인터넷(IOT) 주요 요소 기술

한 통신사가 ‘IoT’라는 용어를 TV광고전면에 내세우면서, 이제는 일반인에게도 ‘뭔지 잘 몰라도, 한번쯤은 들어 본’ IT전문 용어가 되었습니다. 사물인터넷-IoT는 ‘Internet of Things’의 약자로, 생활 속 사물들을 유무선 네트워크로 연결해 정보를 공유하는 환경을 말합니다. 쉽게 말하자면, 냉장고의 센서가 음식의 바코드를 읽어 유통기한을 알려주고, 집안의 보일러나 조명의 On-off 기능을 집밖에서도 스마트폰으로 컨트롤 할 수 있는 기술입니다. 쇼핑몰에 들어서는 순간 쇼핑정보가 제시되고, 관심 있는 상품 앞에 서면 상품의 상세 정보가 보이는 것도 가능합니다. 미국 벤처기업 코벤티스가 개발한 심장박동 모니터링 기계, 구글의 구글 글라스 등도 이 기술을 기반으로 만들어졌는데, 전자기기뿐만 아니라 헬스케어, 원격검침, 스마트홈, 스마트카 등 다양한 분야에서 사용됩니다. 현재, IT 변화의 주역은 IoT라고 해도 과언이 아닐 정도로 특히 가전업계에서 ‘미래 먹거리’로 주목 받고 있습니다. 스마트가전 시장이 올해부터 향후 5년간 연평균 134%의 높은 성장률을 기록할 것이라는 시장조사기관 IHS의 발표가 이를 뒷받침하고 있습니다. 임베디드 시스템 프로그래머로 활동하고 있는 장성균 개발자로부터 IoT 기술에 대해 깊은 이야기를 들을 수 있었습니다.

핀테크 서비스를 위한 소프트웨어 품질관리 포인트

정보기술(IT)을 금융에 접목한 핀테크(FinTech; Financial Technique)는 모바일 송금/결제, 온라인 간편결제, 전자화폐, 인터넷은행, 크라우드 펀딩 등과 같은 금융서비스를 말하고 있으며 최근에는 그 중에서도 모바일 결제에 관심이 높아지고 있습니다. 미국의 페이팔과 애플페이, 중국의 알리페이 등이 선두주자로 앞서나가고 있으며, 우리나라에서는 3개 통신사의 스마트월렛, 모카월렛과 카카오페이 등이 서비스 중이며, 삼성페이가 출시를 앞두고 있습니다. 핀테크는 여러 가지의 금융서비스를 미리 등록한 핀테크 서비스로 통합하여 사용하는 것을 기본으로 하고 있습니다. 이러한 이유로 핀테크는 다양한 금융서비스를 연결하는 정보기술과 이에 따른 높은 품질의 아키텍처, 보안 등도 함께 요구하고 있습니다. 이러한 기술들 중에 이번 회에서는 핀테크 시장에서 요구하는 품질을 확보하기 위해 아키텍처와 보안 관점의 품질확보 방안에는 어떠한 것이 있는지 살펴보기로 합니다.

FinTech Architecture

먼저 비즈니스 아키텍처 관점에서 살펴보겠다. 핀테크는 새롭게 만들어진 서비스가 아니라 기존의 금융서비스에 정보기술을 접목한 금융서비스의 변형된 형태라고 할 수 있다. 따라서 비즈니스 아키텍처를 수립할 때, 기존 금융서비스에 대한 이해가 절대적으로 필요하다. <그림1>은 인터넷 전문은행의 비즈니스 아키텍처를 수립하기 전에 기존 서비스가 어떠한 형태로 변화가 생길지 살펴본 것이다.

자료: SK C&C의 인터넷 전문은행 설명회



2015년 8월 26일 수요일

소프트웨어 품질과 소프트웨어의 경제적 가치

SW 품질향상에 따른 소프트웨어의 총 소유비용 (TCO, total cost of ownership) 절감

대규모 소프트웨어 프로젝트는 위험요소가 많은 사업입니다 . 10,000 개 이상의 기능요소 (function point, 대략 1,000,000 line 정도의 코드 ) 을 포함하는 소프트웨어 프로젝트의 절반가량은 중단되거나 예정보다 1 년 이상 지연되기도 합니다 . 문제점들이 있은 소프트웨어 프로젝트를 살펴보면 , 프로젝트의 중단이나 연기는 주로 심각한 결함들 때문에 발생합니다 . 역설적으로 성공적인 대규모 소프트웨어 프로젝트의 특징은 우수한 결함 예방과 결함 제거라 할 수 있습니다 . 최상의 소프트웨어 품질관리는 소프트웨어 프로세스 개선에 가장 중요한 목표입니다 .

대규모 소프트웨어 시스템 개발은 IT 시대에 가장 위험천만한 비즈니스 활동 중의 하나로 오랫동안 인식되어 왔습니다 . 수많은 대규모 소프트웨어 프로젝트들은 중단되거나 예정보다 1 년 이상 지연되고 예산을 100% 나 초과해 진행되기도 했습니다 . 
Software Productivity Research 의 저자와 그 동료들은 1983 년부터 2009 년에 진행된 약 13,000 개의 소프트웨어 프로젝트를 조사하였습니다 . 표 1> 에서는 프로젝트 규모 순으로 6 개로 나누어 조기 , 적기 , 연기 , 중단의 비율을 정리하였습니다 .