Software Engineering
소프트웨어 엔지니어링의 이해
- 컴퓨터하드웨어와 소프트웨어를 개발하는 매우 큰프로젝트가 있다면, 소프트웨어 엔지니어링에 의존해야 한다.
- 오늘날의 소프트웨어 고객은 과거의 국방성뿐만이 아니다. 사용,공개소프트웨어, 어플리케이션패키지,게임소프트의 출현은 고전적인 소프트웨어 엔지니어링 접근방식으로부터 멀어지게 한다.
- 일단 우리가 소프트웨어 개발 방법을 재평가하기 시작하면, 소프트웨어 개발이 기계적활동이 아님이 명백해진다
- 그것을 공학으로 간주하는 것은 실수이다
- 그대신에, 우리는 더 좋은 비유를 필요로한다: 소프트웨어장인정신.
소프트웨어 엔지니어링에 관한 문제
- 체계적이고 훈련되고 측정가능한 접근방식의 공학적인 방법에 가깝다.
- 프로젝트의 결함 잠재성을 말하기보단 개발자의 결함잠재성에 관해서 말해야 한다.
- 언어를 가지고 무엇인가를 정확하고 분명하게 표현한다는 것은 실제적으로 불가능하다.( 대화의 중요성! )
- 무엇이 소프트웨어 엔지니어링에 대한 대안인가?
- 일단 소프트웨어 개발의 진정한 본질을 이해해야 한다.
소프트웨어 개발의 이해
- 프로젝트가 늦어진다고 더 많은 사람을 투입하는것은 소프트웨어 개발의 본질을 진정으로 이해하지 못하고 있는 것이다.
- 소프트웨어 개발하는 과정은, 분명하게 이해하고 그 이해를 소프트웨어에 구체화하는 과정이다.
- 예외적으로 특출한 디자인 담당자는 그들의 뛰어난 애플리케이션 도메인 지식으로 해서 특별히 앞서 있었다.
- 노동의 분할은 소프트웨어 개발에 효과가 있는가?
- 소프트웨어 개발은, 개발자가 요건, 디자인과 소스코드에 대해 깊이 이해하고 있을때, 가장 잘 진행된다.
- 한가지 사이즈가 모두에게 맞는 것은 아니다.
- 게임과 운영체제의 개발프로세스는 다르다.
- Tom DeMacro
하나의 방법이 심지어 두개의 서로 다른 프로젝트를 커버하려는 생각은 매우 의심스럽다. 프로젝트간의 차이는 유사성보다 훨씬 더 중요하다.
- 소프트웨어 엔지니어링은 매우 제한된 적용 가능성 때문에 실패한 것이다.
소프트웨어 엔지니어링보다 더 좋은 비유를 발견하는것
- eXtrem programmong: 프로젝트 사람들을 팀으로 함께 일하도록 만든다는것이다.
- 소프트웨어 개발은 예술과 과학과 공학의 창조적 혼합으로 본다.
- 소프트웨어 장인정신이라는 비유는 개발자가 그들장인적 기술의 모든측면을 이해하게끔 해준디. 측정가능하고 기계적인 측면뿐만아니라 예술적이고 미적인 측면까지.