반응형
반응형

SW업계의 잘못된 통념 5가지


전규현님 블로그에서 펌



소프트웨어 업계에는 정말 깨기 어려운 잘못된 통념이 몇가지 있다.

많은 이들이 이러한 잘못된 고정관념과 오해에 사로 잡혀서 쉽게 변화하지 못하고 계속 잘못된 길을 걸어가고 있다.

어떠한 잘못된 통념이 있는지 알아보자.


잘못된 통념 1 : 문서(스펙)를 작성하느라고 일정을 못 맞추는 것이 아닌가? (경영자)


많은 경영자들은 문서 작성 때문에 프로젝트가 더 오래 걸리는 것으로 생각하고 있다. 그래서 개발자들이 문서를 쓰고 개발하겠다고 하면 오히려 문서를 쓰지 말고 빨리 개발해 달라고 은근히 요구하는 경영자가 의외로 많다. 


이러한 경우 경험에 의해서 문서란 개발과는 상관없이 추가적으로 시간을 잡아먹는 작업이라는 것을 학습했기 때문이다.


스펙을 써보지도 않고 일정이 모자르다는 것을 아는 것이 모순이다. 스펙이 부정확한 상황에서는 일정을 산정하는 것이 의미가 없기 때문이다. 하지만 대충 짐작으로도 턱없이 기간이 모자른 프로젝트도 있다.

진짜 스펙을 쓸 시간조차 없는 프로젝트라면 애초에 시작을 하지 않는 것이 좋다.


개 발문서는 일정을 단축하기 위해서 작성하는 것이고, 그렇지 않은 목적을 가지고 있는 문서는 작성하지 않는 것이 좋다. 예외적으로 생명을 다루거나 우주선을 띄울 목적이라면 개발시간 단축외에 더 많은 것을 요구하기 때문에 시간이 더 오래 걸리는 문서도 작성하곤 한다.


하지만 대부분의 프로젝트에서는 개발 일정을 단축하는 문서만 작성해야 한다.



잘못된 통념 2 : 일정이 부족하니 당장 코딩부터 시작하자. (개발자)


진짜 개발자들 사이에서 만연해 있는 생각이다. 

개발자들은 위에서 촉박한 일정을 정해주기 때문에 무조건 일정을 맞춰야 하고 그러기 빨리 코딩을 시작해야 한다고 한다.


제대로된 스펙과 설계없이 코딩부터 시작한 프로젝트는 백이면 백 중간에 엄청난 재작업이 기다리고 있다. 통합에 막대한 시간이 소요되고 많은 버그를 생산하면 이를 고치는데 더 많은 시간이 소요된다.


코딩은 늦게 시작할수록 프로젝트가 빨리 끝나는 것이 맞다. 스펙과 설계가 충분할 수록 코딩 기간은 단축되고 일정이 부족하면 더 많은 개발자를 투입할 수도 있고 일부 기능을 미루는 것도 가능해진다.



잘못된 통념 3 : 지금은 잘 모르니 일단 개발해주면 보고나서 요구사항을 알려주겠다. (고객)


고객은 일단 개발해서 보여주면 아이디어가 마구 떠오르고 말만 하면 개발자가 바로바로 쉽게 고칠 수 있는 것으로 착각한다.


아키텍처에 영향을 주지 않는 사소한 것은 그럭저럭 바꿀 수 있어도 대부분의 기능은 고치거나 새로 추가하려면 처음부터 계획한 경우보다 몇배에서 몇십배의 비용과 시간이 들어간다.


하 지만 고객이 스스로 원하는 것이 뭔지 잘 모르는 경우 개발자들은 상당한 어려움에 처하게 된다. 개발자들도 워낙 일상적으로 벌어지는 일이기에 불충분한 고객의 요구에도 자신이 아는 한도에서 대충 개발해주고 고치기를 반복하는 일을 정상적으로 받아들이곤 한다.


이렇게 개발이 이루어지만 아키텍처가 엉망이 되기가 일쑤이고, 개발자들은 재미 있는 개발을 하는 것이 아니라 회의만 들게 된다.




잘못된 통념 4 : 일정이 정해져 있어서 어쩔 수 없다. (개발자)


개발자들은 경영자들이 무리한 일정을 일방적으로 강요한다고 한다. 물론 그런 경우도 있지만 많은 경우 위에서 일방적으로 일정을 지시하지 않는다. 

표면적으로 드러난 결과가 일정 지시지만 그 과정을 살펴보면 합리적인 일정 산정과 조정이 이루어 지지 않는 경향이 있다.

개발자들이 제대로 스펙을 적어서 합리적인 일정을 제시하지 못하니 경영자도 일방적으로 도전적인 일정을 밀어 붙이고, 거꾸로 경영자가 그러하니 개발자들은 어쩔 수 없이 따르게 된다.

이는 어느 한쪽의 책임은 아니라고 볼 수 있다.


합리적으로 일정 산정을 하고 정확한 데이터를 제시할 때 경영자에게 일정에 대해서 어필할 수 있게 된다.




잘못된 통념 5 : 우리 회사는 달라서 일반적인 원칙이 적용되지 않는다. (경영자)


고객이 요구사항을 너무 자주 바꾼다. 

고객이 요청하면 당장 들어 줘야 한다. 

개발일정은 상상할 수 없을만큼 짧다.

고객이 요청하면 무조건 달려가야 한다. 


그래서 일방적인 소프트웨어 공학이 적용되지 않는다고 한다. 이것도 명백한 오해이다. 고객은 원래 그렇기 때문에 이러한 환경에서 빠른 시간에 적은 비용으로 개발하기 위해서 소프트웨어 공학이 존재하는 것이다.


우리만 그렇다고 생각하는 것도 오해이다. 많은 회사들이 정도는 다르지만 이러한 상황에 놓여 있고 많은 부분은 영업 전략으로 선택을 한 것 뿐이다.



이러한 잘못된 통념은 회사가 한단계 앞으로 나아가기 위한 변화를 방해하고 점점 열악하게 만드는데 일조한다.



image by  HikingArtist.com

 


반응형
반응형
[출처] http://mooki83.tistory.com/2656530 에서 온전히 펌

루씬 (Lucene) -  http://lucene.apache.org/ 
JAVA 기반 색인과 검색 기술

솔라 (Solr) - http://lucene.apache.org/solr/ 
루씬 코어로 구성된 검색 서버
(with XML/HTTP and JSON/Python/Ruby APIs, ...)

패스트캣 -  http://www.getfastcat.org/ 
국내 오픈소스 검색엔진

$2
루씬 한글분석기 오픈소스 프로젝트

검색이야기 with Lucene, solr
http://zeous.egloos.com/1412280

Solr : Lucene을 더 쉽고, 확장성 높게 사용하자!
Solr
[SOLR] SOlR 1.2 Windows 설치기 - 한글 셋팅 포함
Apache Solr 3.5.0 셋팅하기(db dataimport), Lucene, 한글형태소분석기
Lucene + Solr 연동한 한글검색 세팅하기
Solr 톰캣 연동 세팅 방법
[pylucene] Python용 lucene검색엔진에 한글형태소 분석기 lucenekorean 붙이기
Lucene 공개 한국어 형태소 분석기 개발 시작의 변
루씬, 톰켓, 이클립스 삽질기
루씬 설치 방법.
쿠폰모아에 검색엔진 ‘실제로’ 적용하기 Part.1
Sunspot과 Lucene을 이용한 풀 텍스트 검색엔진 구축하기
--
[패스트캣]1. 시작하기
반응형
반응형
소프트웨어 우수 인재 양성·확보를 위한 제언
http://www.seri.org/db/dbReptV.html?s_menu=0202&pubkey=db20111109001
소 프트웨어가 기업 경쟁력의 핵심으로 부상하면서 우수 인재를 확보하기 위한 기업 간 인재 전쟁이 치열하다. 한국은 우수한 소프트웨어 인재가 부족해 소프트웨어 경쟁력의 취약성을 노출하고 있다. 고급 인재 수요 증가에도 불구하고, 소프트웨어 개발이 열악한 직무라는 인식이 지배적이어서 인재難의 악순환이 지속되고 있다. 이러한 악순환 구조를 탈피하고 우수 인재를 양성·확보하기 위한 전략을 제시한다.
Ⅰ. 소프트웨어 인재, 왜 중요한가?
Ⅱ. 소프트웨어 인재難의 악순환
Ⅲ. 인재 양성·확보의 5大 전략
Ⅳ. 시사점




반응형
반응형
http://allofsoftware.net/entry/%EC%82%AC%EC%97%85%EB%B6%80%EC%9D%98-%ED%95%9C%EA%B3%84



우리나라 많은 기업들이 선택하고 있는 사업부제는 단기적인 성과를 내기에는 유리하나 장기적인 관점으로 보면 문제가 많다.

물론 사업부제 자체의 문제를 말하는 것은 아니다. 우리나라에서 사업부가 어떻게 동작하는지를 보면 된다.

사업부는 사업부내에 모든 기능 조직을 포함하여 마치 하나의 회사처럼 동작을 하며 모든 전략, 매출 등을 책임지고 물론 그 성과에 대한 보상도 사업부가 누리는 것이다.

얼핏 들으면 아주 그럴듯 하지만 사업부의 이익과 회사의 이익이 상반되는 경우는 대단히 많다. 이런 경우 사업부에서는 회사 전체의 이익을 따르지 않는다.

그럼 소프트웨어 쪽으로 포커스를 해보자. 사업부제에서 소프트웨어 개발을 담당한 부서가 쪼개져서 각 사업부로 흩어지게 된다. 그러면서 전사적으로 소프트웨어 역량이 많이 떨어지게 된다.
  • 전사적으로 일관된 소프트웨어 전략을 구사할 수 없다.
  • 사업부간 소프트웨어 지식이 공유되지 않는다.
  • 사업부간 인력의 왕래가 자유롭지 않다.
  • 소프트웨어는 하드웨어의 부속물로 전락하는 경우가 많다. 특히 사업부의 장이 하드웨어 출신인경우이다.
  • 단기적인 이익에 급급해서 소프트웨어 아키텍처는 크게 신경쓰지 못한다.
  • 전사적인 큰 그림은 그리지 못한다.
이런 체제에서는 위에서 지시하면 뭘 빨리 만들어 내기는 하지만 흉내만 낼뿐 금방 밑천이 드러나게 된다.

사실 기업의 경영자들이 이러한 것을 모르는 것이 아니다. 그래서 기업의 조직 구조는 수시로 바뀌지만 인내심이 부족한 경영자들은 금방 다시 사업부제로 돌아온다. 그래도 그럴 것이 대기업의 최고 경영자들도 6개월, 1년안에 눈에 띄는 성과를 내지 못하면 자리를 보존하기 어려운 환경에서 그렇게 하기란 쉬운 일이 아니다.

많은 대기업들이 소프트웨어 역량을 향상하고 싶다면 소프트웨어 조직을 분리를 해야 한다. 사업부에서는 반대를 하겠지만 우선 가능한 부분부터 소프트웨어 조직을 통합하여 좀더 전문적이고 장기적인 관점으로 투자를 해야한다. 단기적인 성과에 집중하는 전략의 폐해는 이미 드러났다.

이것이 변화가 가능한 중소, 중견 기업에 기대를 거는 이유이다.

반응형
반응형

혁신적인 아키텍처와 창발적 설계: 언어, 표현성 및 설계, Part 1


코드의 표현성을 개선하여 창발적 설계를 가능하게 하는 방법

Neal Ford, 소프트웨어 아키텍트, IBM

요약: 창발적 설계의 경우에는 관용적 패턴을 찾아서 개선하는 기능이 중요합니다. 또한, 설계하는 데 있어서는 코드의 표현성이 매우 중요합니다. 두 개의 파트로 구성된 이 기사에서 Neal Ford는 표현성과 패턴의 교차점을 논의하고 관용적 패턴과 정규 설계 패턴을 사용하여 이러한 개념을 설명합니다. 그는 JVM용 동적 언어의 고전적인 네 가지 패턴 중 일부를 수정하여, 모호한 언어로 인해 불명료해진 설계 요소를 표현성이 우수한 언어를 이용하여 어떻게 파악할 수 있는지 설명합니다.


반응형
반응형
프로토타이핑은 개발기간을 수개월에서 혹은 수년 단축할 수 있다.
더 이상 망설일 이유가 없지 않은가?
어떤 형태로든 우리는 프로토타이핑을 하고 있다.

프로토타이핑은
* 창의적이다.
* '보여주기' 와 '말하기'를 통해 커뮤티케이션 한다.
* 시간과 노력, 그리고 비용을 절감시킨다.
* 빠른 피드백 순환 구조를 생성하여, 궁극적으로는 프로젝트의 위험 부담을 줄여준다.

"무언가 설명할 것이 있다면, 스토리보드와 실제상황을 함께 보여주라."
- Robert Hoekman, Jr.

디자인을 문서화하고, 커뮤니케이션 하는 방법에는 요구사양서, 와이어프레임, 비주얼 컴포넌트, 프로토타입을 포함한 다양한 기법들이 존재한다.

프로토타입은 최종적인 시스템의 시뮬레이션, 또는 대표모델이라 할 수 있다.
다른 기법들과 달리 실제로 디자인을 경험 할 수 있도록 도와주는 것이다.

요구사양서는 보는 관점에 따라서 각기 다른 해석을 불러올수 있다.
프로토타입은 디자인과 시스템에 대한 보다 명확한고 매우 구체적인 표현방법으로
사람들에세 손에 잡히는 경험을 제공해준다.

반응형

+ Recent posts