본문 바로가기

전체 글196

개발 가속도의 법칙 - 최적의 개발환경 먼저번 가정에서 개발 가속도는 최적의 개발환경에 비례한다고 가설을 세웠습니다. 개발환경은 최고 수준보다는 최적을 지향해야 합니다. 무조건 개발자 PC의 성능이 좋거나 네트워크가 빠르다고 해서 개발 생산성이 좋다고 말할 수 없으며, 가장 비싸고 성능이 좋은 IDE 도구를 갖춘다고 해서 개발 생산성이 높아진다고 단정할 수는 없습니다. 개발환경과 개발하려는 대상의 아키텍처와는 궁합이 맞아야 하며, 이를 가지고 작업하는 개발자에도 친숙하고 쉽게 접근할 수 있는 환경이 최적화된 개발환경입니다. 통상 개발환경은 작업자인 개발자의 환경인 개인 작업장(workspace), 공용으로 (통합용으로) 사용되는 공유 개발 환경, 형상항목을 이력 관리하는 형상 환경, 개인 작업장과 공유 개발 환경을 연결해주는 배포 환경 등으로.. 2012. 3. 26.
개발 가속도 법칙 물리 법칙에는 여러가지 종류가 있습니다. 지구상에 있는 대상들은 특정 조건에서 물리의 법칙에 지배를 받습니다. 그 중에서 속도(velocity)는 많은 법칙에 존재하며, 특히 속도가 늘어나는 현상의 가속도를 사용하기도 합니다. 뉴턴의 두번째 운동 법칙인 가속도의 법칙은 힘(F) = 질량(m) * 가속도(a)로 나타냅니다. 여기서 가속도는 시간에 따른 속도의 순간적인 변화량을 뜻합니다. 가속도의 법칙은 운동의 변화는 가해진 힘에 비례하며 힘이 가해진 직선 방향으로 일어난다라는 것을 의미합니다. SW 개발에 있어서 이 가속도의 법칙은 개발 속도에 비유될 수 있습니다. 개발 속도 역시 일정 시간 동안의 개발된 결과물이 산출되는 양으로 측정할 수 있다면, 어느 순간에 산출된 결과물의 양(특정 시점에 있어서 증분.. 2012. 3. 22.
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.. 2012. 3. 8.
컴포넌트 식별/구성과 빌드 프로세스, 그리고 의존관계 SW 아키텍처에서 최소한의 빌드 단위를 결정하는 것은 이제 중요한 이슈이다. 현재의 SW 아키텍처에서 빌드 단위는 하나의 애플리케이션 (자바의 경우 war) 단위 안에 물리적으로 모든 소스 코드를 위치하는 형태로는 잦은 비즈니스의 변화와 이에 따르는 응대를 하기란 쉽지 않기 때문에 재사용 가능한 단위의 컴포넌트를 최대한 많이 그리고, 최대한 확장 가능한 형태로 구성해야 한다. 이러한 컴포넌트를 식별하고 구성하는 행위들은 궁극적으로 빌드 단위에 영향을 미치게 되며, 이는 빌드 프로세스에 직접적으로 영향을 미친다. 컴포넌트는 재사용 단위를 높이고 의존관계를 최대한 느슨한 형태로 구성하게 되지만, 이는 그 말 자체가 균형을 이루기 힘든 상태임을 알 수 있다. 재사용 단위를 높이는 것은 궁극적으로 컴포넌트의 의.. 2012. 3. 5.
반응형