23-개발자는 멀티태스킹 기계까 아닙니다

직렬처리 방식은 평균적으로 결과값이 더 빨리 나온다. 과업 전환이 오래 걸릴수록, 멀티태스킹을 위해 지불해야 하는 대가도 커진다. 프로그래머의 과업 전환 시간이 오래 걸린다. 프로그램은 머리 속에 엄청나게 복잡한 내용을 한꺼번에 유지해야만 하는 일이기 때문에 이런 일이 벌어질 수 밖에 없다. 개발자 한명에게 한 가지 일을 던져주면 훌륭하게 처리하지만, 한 사람에게 두 가지 일을 한꺼번에 주면 그다지 매끄럽게 처리하지 못한다.

2024-09-15 · 1 min · 59 words

22-테스터를 두지 않는 (잘못된) 이유 다섯가지

소프트웨어는 버그가 있기 마련이다. 절대적으로, 반드시 QA 부서가 필요하다. QA부서는 독립적이며 권한이 있어야한다. QA 팀장은 품질 테스트를 통과하지 못한 소프트웨어는 출시하지 못하게 막을 권한이 있어야 한다. 테스터를 고용하지 않는 가장 흔한 이유 버그는 프로그래머가 게을러서 생기니까요 버그는 프로그래머가 자신의 코드에서 버그를 발견해내지 못하는 바람에 새어나오는 것이다. 대개 버그는 다른 사람이 더 쉽게 찾을 수 있다. 우리 소프트웨어는 웹에 올려놓아서, 버그는 금방 고칠 수 있으니까요 웹에 올려놓았다고 해도, 일단 출시한 뒤에 버그를 수정하는 데 드는 비용을 얕잡아 보면 안된다....

2024-09-15 · 1 min · 167 words

21-성과급은 오히려 해가 된다

부정적인 평가는 팀원 사기에 지대한 영향을 미친다. 긍정적인 평가라도 본인이 기대한 수준에 미치지 못한다면, 부정적인 평가만큼이나 사기를 떨어뜨린다. 부정적인 평가는 사기를 확 떨어뜨리는 반면, 긍정적인 평가는 아무런 영향을 미치지 못한다. 업무 완수나 성공적인 업무 수행으로 보상을 바라는 사람은 전혀 보상을 바라지 않는 사람보다 성과가 떨어진다.

2024-09-15 · 1 min · 45 words

20-인터뷰를 위한 게릴라 가이드

직원을 고용하는 방식 이력서 실수가 많은 경우 버린다. 과거에 특별히 어려운 선별 과정을 거친 사람이 있는지 확인 전화 인터뷰 프로그래밍 문제 하나로 30분 정도 진행 대면 인터뷰 면접관은 최소 6명, 최소 5명은 함꼐 일하게 될 동료 6명 중 2명이라도 지원자를 별로라고 여긴다면, 그 사람은 고용하지 않는다. 여러 지원자를 동시에 인터뷰하지 않는다. 인터뷰는 최소 1시간 인터뷰를 마치면 지원자에 대한 결간은 칼같이 내려야 한다. 합불 선정 기준 잘 모르겠으면 불합격 기준에 미달하는 지원자를 채용하는 실수보다는 훌륭한 지원자를 놓치는 실수를 저지르는 편이 차라리 낫다....

2024-09-15 · 1 min · 209 words

19-자동으로 충돌 보고서를 수집하세요

자료 수집 문제를 분석한느 과정에서 도움이 된다고 생각하는 질문만 골라 최소로 물어봐야한다. 질문을 많이 할수록 점점 더 대답은 줄어든다. 충돌을 보고 하는 과정에서 익명성과 사생활 보호를 강조하는 정책이 중요하다. 자동으로 수집한 자료가 개발자가 충돌 원인을 밝히는 데 도움이 될 수 있는지 고민해야된다. 제품의 정확한 버전 운영체제 버전과 인터넷 익스플로러 버전 충돌이 발생한 코드 파일명과 행 번호 문자열로 표현하는 오류 메시지 오류 종류를 위한 고유한 숫자 코드 어떤 작업을 하고 있었는지에 대한 사용자 설명 사용자 이메일 주소 정보를 최소한으로 수집해야된다....

2024-09-15 · 2 min · 331 words

18-더불어 살기

윈도우와 유닉스는 기능적인 차이점 보다는 유사점이 더 많다. 윈도우와 유닉스에는 기능적 차이점 보다는 문화적인 차이점이 존재한다. 유닉스 문화는 다른 프로그래머에게 유용한 코드를 제공하는 것에 가치를 두는 반면, 윈도우 문화는 프로그래머가 아닌 사람에게 유용한 코드를 제공하는 것에 가치를 둔다. 유닉스 프로그래밍 문화는 명령행에서 호출할 수 있고 모든 동작 방향을 제어할 수 있는 인수를 취할 수 있다. 유닉스 프로그래밍 문화는 질서 정연하며 기계가 읽을 수 잇는 일반 텍스트 형식으로 출력을 뽑아낼 수 있는 프로그램을 높게 평가한다....

2024-09-15 · 1 min · 161 words

17-컴퓨터과학 분야에서 떠도는 세가지 미신

검색에서는 충분한 결과를 찾는 기술이 가장 어렵다. 구글의 페이지랭크 알고리즘은 원하는 결과가 최상위 10개 안에 들어가도록 헤아릴 수 없이 수많은 검색 결과를 정렬하는 가장 뛰어난 방법이다. 앤티앨리어스 anti-aliased 문자가 더 보기 좋다. 앤티앨리어스는 컬러 디스플레이의 해상도가 낮을 때, 회색 그림자를 사용해서 해상도 ‘착각’을 불러 일으키는 편이 보기에 좋다는 생각에서 출발했다. 하지만 앤티앨리어스 문자로 구성된 단락을 읽을 때, 흐릿해 보인다는 문제점이 있다. 앤티앨리어스는 전체적인 외형이 지속적인 가독성보다 중요한 표제와 로고, 그리고 그림이라는 두 가지 측면에서 매우 뛰어난 기술이다....

2024-09-15 · 1 min · 142 words

16-장인정신

코드 작성은 설계이다. 설계는 투자 비용보다 값어치가 빨리 늘어나는 불투명한 영역이다. 진정한 장인정신으로 소프트웨어를 만들면, 무언가 예상치 못했던 작업을 할 때, 응용프로그램은 지능적으로 반응한다. 핵심기능이 아니라 자주 쓰지 않는 부가기능을 정확하게 처리하기 위해서는 훨씬 더 많은 노력이 들어간다. 일반 소비자를 위한 상용 소프트웨어를 개뱔하는 방법만이 장인정신에 투자할 수 있는 유일한 길이다.

2024-09-15 · 1 min · 51 words

15-쏘면서 움직여라

정지한 물체는 계속해서 정지하려고 한다. 하지만 최고 속력으로 굴러가기 시작하면, 속력을 유지하는 데 별다른 힘이 들지 않는다. 페어 프로그래밍은 동료와 페어 프로그래밍 세션 일정을 잡고 나서, 어서 일을 시작하자고 서로 북도아줬기 때문에 생산성을 높일 수 있다. 장기적인 암목을 키워야 하며, 매일 조금씩 앞으로 나아가야 한다.

2024-09-15 · 1 min · 45 words

14-화성인 아키텍터를 조심하세요

위대한 사상가는 문제에 대해 생각할 때, 패턴을 보기 시작한다. 하지만 추상화를 추구하기 위해 너무 높이 올라가면, 모순이 생기고 전체만을 아우르는 의미없는 내용만 담게 된다.

2024-09-15 · 1 min · 24 words

13-종이 프로토타이핑

제품이 수행할 모든 작업을 프로토타입이 할 수 없다면 쓸모없어진다. 종이 프로토타입은 소프트웨어 도구로 할 수 있는 어떤 작업보다도 엄청나게 저렴하다.

2024-09-15 · 1 min · 20 words

12-다섯 가지 세계

상품 소프트웨어 대규모 사요자가 자기 의지에 따라 선택해 사용할 수있는 소프트웨어 엄청나게 많은 사용자가 한 소프트웨어를 사용하지만, 늘 다른 대안이 있다. 상품이 성공하기 위해선 사용자 인터페이스를 평균 이상으로 쓰기 쉽게 만들어야 한다. 소프트웨어는 수많은 컴퓨터에서 동작하므로, 다양한 시스템 환경에서 매우 적극적으로 대응할 수 있는 코드여야 한다. 오픈소스, 웹 기반, 컨설팅웨어라는 세 가지 주요 변종이 있다. 오픈소스: 거의 대부분 돈을 받고 하는 일이 아니기 때문에, 역학 관계가 극적으로 바뀐다. 사용 편의성이 떨어니고, 서로 원하는 자옷에서 각자 개발을 진행할 가능성이 훨씬 더 높아져, 팀내 상호대화 수준에 따라 품질 격차가 심하게 벌어진다....

2024-09-15 · 1 min · 212 words

11-고리타분한 버그 수정

버그 수정은, 수정한 버그 가치가 수정 비용을 넘어설 때만 그의미가 있음에도 불고하고 해야된다. 무해한 버그일지라도, 회사와 제품 평판이 나빠지며, 장기적으로는 수익 감소를 초래한다. 경제적인 면에서 수정할 가치가 있는 버그를 찾아내는 방법 찾아낸 버그를 모두 확인하십시오. 무료 데모 서버에서 모든 버그를 포획하는데, 가능한 많은 정보를 수집해 전체 내용을 정리해서 개발팀으로 이메일을 보낸다. 기술지원 통화내역을 버그추적의 힌트로 사용한다. 경제적인 피드백을 확인하십시오. 경비를 영업부서 비용으로 계산하는 방법 제품 자체 버그문제로 기술지원 전화를 걸었을 때, 통화비를 사용자에게 전가시키지 않고 회사가 부담하는 방법 버그를 모두 수정하는 작업이 어떤 값어치가 있는지 계산기를 두드려 보십시오....

2024-09-15 · 1 min · 88 words

10-일일 빌드는 당신의 친구입니다

일일 빌드가 제공하는 장점 버그를 수정하고 나면, 테스터는 새 버전을 빠르게 얻어서 정말 해당 버그를 수정했는지 살펴보기 위해 다시 테스트 작업을 수행할 수 있다. 개발자는 테스트용 장비를 별도로 두지 않고서도 시스템의 버전 중 어느 버전도 망가뜨리지 않았다고 좀더 확신할 수 있다. 정기적인 일일 빌드 바로 직전에 변경을 체크인한 개발자는 어느 누구도 컴파일이 불가능한 상황을 만들어 버리지 않으리라는 사실을 안다. ‘빌드를 꺠버리는’ 어떤 파일을 체크인해 다른 사람을 방해하지 못한다. 미완성된 제품을 사용해야 하는 마케팅, 베타고객사이트와 같은 외부 그룹은 상당히 안정적으로 알려진 빌드를 구해서 잠시 동안 이를 사용해볼 수 있다....

2024-09-15 · 2 min · 245 words