본문 바로가기

마케팅과 기술 기술의 발전은 다양한 형태로 그 모습을 대중들에게 표현되고 전파된다. 그러한 과정에서 어떤 기술은 극도의 발전 형태를 띠는 것들이 있는가 하면, 다른 기술들은 오히려 전파되는 과정에서 그 효력이 못미치는 것들도 있다. 기술이 마케팅의 수단을 이용하는 경우에는 소비자나 이를 접하는 사람으로 하여금 해당 기술의 본질을 파악하는 것을 어렵게 만드는 경우도 있다. IT 기술 역시 마케팅의 수단으로 사용되는 경우들이 많으며, 이러한 대표적인 예가 '클라우드(cloud)'가 아닐까 한다. TV 광고에까지 나타나는 '클라우드' 기술은 너무나도 광범위한 기술로 인식되기 때문에 이를 실제로 응용하려는 개발자에게는 어떻게 접근할지에 대해서부터 많은 고민을 가져다준다. 이러한 상황을 이전의 '컴포넌트(component)' ..
수확 체감과 한계효용의 체감 경제학에는 수확 체감의 법칙과 한계효융의 체감 법칙이 있다. 수확 체감(diminishing returns)이란 일정한 면적에 노동력을 추가 투입했을때 수확량(혹은 생산성)의 증가가 노동력의 증가를 따라가지 못하는 현상을 말한다. 즉, 노동력의 투입이 결코 생산성과 연결될 수는 없으며, 과다 투입된 노동력에 대해서는 단위 면적을 넓히던가 아니면 더 생산적인 수단 방식을 사용해서 효율을 높여야 함을 의미한다. 한계효용(marginal utility)은 재화나 용역이 증가 혹은 감소함에 따라 주관적으로 매겨지는 가치의 관계에 대한 개념이다. 예를 들어, 갈증이 심할 때 먹는 50원의 물의 가치와 그러한 갈증이 해결된 후에 먹는 50원의 물의 가치는 절대적인 수치는 동일할지라도 이를 접하는 이의 주관적인 가치..
인식의 전환 - NoSQL 철학의 한 분야인 인식론(epistemology)에서는 지식 습득에 대한 다양한 정의를 하고 있다. 즉, 인식론에서는 '앎(knowledge)이란 무엇인가?', '지식(knowledge)은 어떻게 얻는가?', '주어진 주제나 대상에 대해서 어느 정도까지 알 수 있는가?' 등의 질문에 대한 답을 구하는 과정을 이론화시킨다. 인식론은 앎의 성질을 분석하는데 초점을 두고, 진실(truth), 믿음(belief), 근거(justification)와 같은 개념과 어떤 관계가 있는지를 논한다. 이러한 인식론에 반해서 아무것도 알지 못한다고 하는 관점이 회의론(skepticism)이다. 인식론을 지식론(theory of knowledge)라고 한다. 인식론에 대한 내용은 소프트웨어 개발을 이해하는 방법에 마찬가지로 ..
빌드 시간을 더 빠르게 하라 빌드의 통합은 형상관리도구, 워크스페이스의 소스코드 관리 도구, 배포 바이너리 버전 관리 도구 등을 통해서 상당 부분 자동화를 시킬 수 있다. 빌드는 단순히 형상관리에 있는 소스 코드들을 모두 가지고 와서 실행 파일로 컴파일을 만들어주는 의미만 포함되는 것은 아니다. 물론, 이러한 자동화 역시 전체 소스 코드의 깨짐 현상을 방지할 수 있고, 이를 지속적으로 반복적으로 수행한다면 소스 코드 깨짐 현상에 대한 위험은 줄일 수 있을 것이다. 문제는 전체 소스 코드의 크기가 적고, 어느 정도 인내할 수 있는 시간 동안 빌드를 한다면 괜찮겠지만, 소스 크기가 상당하고 많은 사람들이 만들어내는 소스 코드 (심지어 서로 다른 지역에 있는 사람들이 만들어내는 소스 코드와 같이 빌드하는 경우) 라면 상황이 달라진다. 실..
문제는 속도가 아니라 방향과 제어이다. 다른 산업과 달리 SW 산업은 제품을 만들어내는 기간을 정확하게 예측하기 어렵다는 것이다. 지금 진행되고 있는 프로젝트들을 포함해서 그동안 수많은 프로젝트들은 일정 관리라는 고유의 영역에서 전체 SW 개발 주기를 항목 단위별로 매일, 매주, 매월로 개발 상태를 관리하지만, 정해진 시간 내에 SW를 완성시키기란 상당히 힘들다는 것을 늘 느낀다. 만일, 개발 속도(velocity)를 수치로 표현할 수만 있다면, SW 제품을 만드는데 걸리는 시간을 계산할 수 있을 것이다. 따라서, 모든 프로젝트에서는 개발 속도, 즉 개발 생산성을 그 어느 것보다도 더 중요하게 생각하고 이를 매일 관리하도 한다. 개발 속도는 당연히 그 이면에 개발 범위(scope)라는 제약 변수가 있지만, 개발 범위는 늘 애매모호한 형태로 식..
개발 가속도의 법칙 - 최적의 개발환경 먼저번 가정에서 개발 가속도는 최적의 개발환경에 비례한다고 가설을 세웠습니다. 개발환경은 최고 수준보다는 최적을 지향해야 합니다. 무조건 개발자 PC의 성능이 좋거나 네트워크가 빠르다고 해서 개발 생산성이 좋다고 말할 수 없으며, 가장 비싸고 성능이 좋은 IDE 도구를 갖춘다고 해서 개발 생산성이 높아진다고 단정할 수는 없습니다. 개발환경과 개발하려는 대상의 아키텍처와는 궁합이 맞아야 하며, 이를 가지고 작업하는 개발자에도 친숙하고 쉽게 접근할 수 있는 환경이 최적화된 개발환경입니다. 통상 개발환경은 작업자인 개발자의 환경인 개인 작업장(workspace), 공용으로 (통합용으로) 사용되는 공유 개발 환경, 형상항목을 이력 관리하는 형상 환경, 개인 작업장과 공유 개발 환경을 연결해주는 배포 환경 등으로..
개발 가속도 법칙 물리 법칙에는 여러가지 종류가 있습니다. 지구상에 있는 대상들은 특정 조건에서 물리의 법칙에 지배를 받습니다. 그 중에서 속도(velocity)는 많은 법칙에 존재하며, 특히 속도가 늘어나는 현상의 가속도를 사용하기도 합니다. 뉴턴의 두번째 운동 법칙인 가속도의 법칙은 힘(F) = 질량(m) * 가속도(a)로 나타냅니다. 여기서 가속도는 시간에 따른 속도의 순간적인 변화량을 뜻합니다. 가속도의 법칙은 운동의 변화는 가해진 힘에 비례하며 힘이 가해진 직선 방향으로 일어난다라는 것을 의미합니다. SW 개발에 있어서 이 가속도의 법칙은 개발 속도에 비유될 수 있습니다. 개발 속도 역시 일정 시간 동안의 개발된 결과물이 산출되는 양으로 측정할 수 있다면, 어느 순간에 산출된 결과물의 양(특정 시점에 있어서 증분..
Balanced shipping is a feature 조엘 온 소프트웨어의 블로그에는 The Duct Tape Programmer라는 제목으로 쓴 글에서 "shipping is a feature"라는 내용이 나온다. Duct Tape은 짐을 쌀때 주로 사용되는 강력한 테이프로 한번 물건을 접착시키면 완전히 고정시키는 테이프이다. Duct Tape 프로그래머는 이와 같이 특정 기능을 구현할 때 실질적으로 필요한 내용만을 빠르고 정확하게 구현하는 사람을 말한다. 즉, overengineering과 같은 불필요한 작업을 최소화시키고, 현실적으로 사용자에게 필요한 기능만을 제한 기간 내에 구현하는 사람을 뜻한다. Day 121 :: i will no longer censor myself for the sake of your comfort by Meredith_Fa..

반응형