티스토리 뷰

원본글은 github에 있습니다.


정말 중요한 것은 무엇일까요?

소프트웨어는 - 중요하지 않는 일에 시간을 쓰기에는 - 빌어먹게 어렵습니다.
그래서, 처음부터 다시 시작해서, 우리에게 절대적으로 중요한 것은 무엇입니까?

  1. 코딩(Coding)
    궁극적으로, 프로그램이 실행되지 않거나, 고객을 위해 돈을 벌지 못한다면,
    당신은 아무것도 하지 않은 것입니다.
  2. 테스팅(Testing)
    당신은 당신의 작업이 완료되었는지 알아야만 합니다. 테스트는 이것을 당신에게 알려줍니다.
    당신이 지혜롭다면, 테스트를 먼저 작성하여 작업이 완료되는 즉시 알 수 있습니다.
    그렇지 않으면, 당신은 아마도 완료할 수 있다는 생각에 사로잡히고, 그런데 또 끝낼수 없다는 것을 알게되고, 결국 완료에 얼마나 가까워지는지 확신하지 못합니다.
  3. 경청(Listening)
    가장 먼저, 당신은 문제가 무엇인지 배워야합니다.
    그런 다음, 테스트에 어떤 숫자를 넣어야하는지 배워야합니다. 당신은 이걸 아마 스스로 알지 못할 것 입니다.
    따라서 고객 - 사용자, 관리자, 사업담당자 - 의 말을 잘 들어야 합니다.
  4. 설계(Designing)
    당신의 프로그램은 어떻게 구성되고 싶은지 당신에게 이야기합니다.
    그 이야기대로 프로그램에 적용해야 합니다.
    그렇지 않으면, 당신은 당신의 추측의 무게에 짓눌리게 될 것입니다.

Listening, Testing, Coding, Designing. 이것이 소프트웨어의 전부입니다.
누군가 당신에게 다른 것을 이야기한다면, 무언가를 파는 것입니다.

켄트백, ExtremeProgrammingExplained 저자

번역오류가 있을 수 있습니다. 밑에 원문을 참고해주세요.


What really matters?

Software is too damned hard to spend time on things that don't matter.
So, starting over from scratch, what are we absolutely certain matters?

  1. Coding. At the end of the day, if the program doesn't run and make money for the client, you haven't done anything.
  2. Testing. You have to know when you're done. The tests tell you this. If you're smart, you'll write them first so you'll know the instant you're done. Otherwise, you're stuck thinking you maybe might be done, but knowing you're probably not, but you're not sure how close you are.
  3. Listening. You have to learn what the problem is in the first place, then you have to learn what numbers to put in the tests. You probably won't know this yourself, so you have to get good at listening to clients - users, managers, and business people.
  4. Designing. You have to take what your program tells you about how it wants to be structured and feed it back into the program. Otherwise, you'll sink under the weight of your own guesses.

Listening, Testing, Coding, Designing. That's all there is to software.
Anyone who tells you different is selling something.
-- KentBeck, author of ExtremeProgrammingExplained

출처: https://wiki.c2.com/?ExtremeProgramming