Category Archives: Software Conflict 2.0

방어적 설계


  1. 예외처리(exception handling) – 평상시에는 발생하지 않으나 때때로 발생하는 오류의 처리
  2. 자가 점검(assertion) – 프로그램에 내장된 오류 점검 코드와 발견한 오류를 처리하는 치유 코드
  3. over-engineering –  장래에 발생할 문제를 고려하여 유지보수를 염두한 프로그램 계획
  4. Fault tolerance – 소프트웨어 실패에 대처하는 기술
Advertisements

소프트웨어 프로젝트 관리 원칙, W이론


  1. 사전에 모두가 승리하는 조건을 찾는다.
  2. 모두가 승리하는 프로세스를 구축한다.
  3. 모두가 승리하는 제품을 개발한다.

문제나 갈등이 발생할 시,

  1. 문제와 사람을 분리한다.
  2. 입장이 아니라 이익에 집중한다.
  3. 상호 이익이 되는 방안을 찾는다.
  4. 결과를 분석할 객관적인 기준을 사용하자고 주장한다.

소프트웨어 생산성을 바라보는 새로운 방법


우수한 사람들은 각종 소프트웨어 관련 업무에서 다른 사람들보다 7배에서 28배나 더 뛰어났다.

References:

  • Problem solving for effective systems analysis: An Experimental Exploration
  • You Can Observe a Lot Just Watching How Designers Design
  • Why Software Maintenance is Hard

우수한 인력이 갖고 있는 특징

  1. 목표와 하위 목표를 더 많이 설정했고 목표로부터 top down으로 일했다.
  2. 과거에 풀었던 문제와의 유사성으로부터 모델을 만들었다.
  3. 더욱 systematic했다. 더 많은 전략을 말로 표현하고, 가정, 제약사항, 기대치를 기록했다. 최종 제품을 더 구체적으로 묘사했다.
  4. 더 많은 가설을 세우고, 시도하고, 포기했다. 더 많은 전략을 수정했다.
  5. 여러 방면에서 좀 더 사람을 고려하는 성향을 보였다.