본문 바로가기

관심사/독후감

제럴드 와인버그 <Quality Software Book : How Software Is Built > - 4장 요약

How Software Is Built


본문 중에서..

4.1 Shooting at Moving Targets

When teaching someone to shoot at a moving target, you cannot give instructions about which direction to shoot, because the direction is constantly changing. Instead, you must give general instructions about aiming guns, instructions that can then be applied to a wide variety of moving targets. That's why the study of patterns of software control starts with the question, "What is needed to control anything?

소프트웨어 개발은 움직이는 타겟대상을 잡는거다. 그래서 방향을 지시하는게 아니라, 총을 쏘는 방법을 알려주고, 방향을 잘 찾아서 쏠 수 있게 해줘야한다.


4.2.1 Aggregation in the software industry as a whole

to be sure of getting a good product, start a large number of projects and choose the one that produces the best product. .. Is this a reasonable strategy? Perhaps not for the small, efficient Swiss, but from the point of view of the software industry in a large, rich country like the United States, aggregation is not as dumb a strategy as it first sounds.

Aggregate Model 1은 여러제품을 만들고, 이 중 제일 좋은 제품을 선택하는 전략이다. 자원이 많은 회사에서는 적합할 수 있지만, 작은 회사에서는 적합하지 않다.


4.2.3 Natural selection in a Pattern 1 Organization

Pattern 1 organizations do make great use of redundancy, but not in this obvious way. This Pattern 1 use of the aggregate strategy is exactly analogous to natural selection, the process whereby variant species arise and are tested in the give and take of the natural environment. Natural selection guarantees improved fitness for any environment, but it is very expensive and slow. But, then, Pattern 1 organizations are often rich and laid back.

패턴1은 개별적으로 일하면서, 중복작업을 한다. 이게 어떤 점에서는 편해도, 좋기만한 방법은 아니다. 패턴1에서의 aggregate strategy는 자연 선택된다. 자연적으로 전파되고, 테스트되고, 채택된다. 이게 환경에 가장 잘 맞는 방법이긴 하지만, 비싸고 느린 방법이다.


4.3.3 Feedback control (the focus of Patterns 3)

But feedback measurements and control actions are not enough for effective control. We know that behavior depends on both state and input. In order for the control actions to be effective, the Pattern 3 controller must possess models to connect the state and input with the behavior—models of what "depends" means for this system. Overall, for feedback control to operate, the system of control must have

• an image of a desired state (state D) • the ability to observe the actual state, (A) • the ability to compare state A and state D for differences • the ability to act on the system to bring A closer to D.


피드백 컨트롤이 잘 되려면,

기대하는 상태를 명확히 하고,

현재 상태를 관찰하고,

기대하는 상태와 현재 상태의 갭을 이해하고,

현재상태에서 기대하는 상태로 갈 수 있게 하는 능력이 필요하다.


4.6. Helpful Hints and Variations

When trying to introduce change in software engineering practices (or any practices, for that matter), it's often better to work by addition, rather than subtraction. Instead of continually emphasizing what people are doing wrong, emphasize what they are doing right so that they will do more of it. Also, you can point out that there are things

변화를 만들 때는 특정 행동을 줄이는 것을 목표로하는게 아니라, 더 나은 행동을 추가적으로 만들어내는 것에 초점을 맞춰야한다.

부정적인 요소를 강조하기 보다는, 무엇을 잘하고 있는지 강조하는 것이 좋다.

( 스터디에서 추천받은 포스팅 - 영리하나 열정이 없다 )