개발 및 디자인 혁신을 위한 원칙 모음

소프트웨어 혁신을 위한 원칙 모음

1. 파이썬의 선(禪)

  1. Beautiful is better than ugly.
    아름다운 것이 추한 것보다 낫다.
  2. Explicit is better than implicit.
    명시적인 것이 암시적인 것보다 낫다.
  3. Simple is better than complex.
    간결한 것이 복합적인 것보다 낫다.
  4. Complex is better than complicated.
    복합적인 것이 복잡한 것보다 낫다.
  5. Flat is better than nested.
    수평적인 것이 내포된 것보다 낫다.
  6. Sparse is better than dense.
    여유로운 것이 밀집한 것보다 낫다.
  7. Readability counts.
    가독성은 중요하다.
  8. Special cases aren’t special enough to break the rules.
    특별한 경우들은 규칙을 어길 정도로 특별하지 않다.
  9. Although practicality beats purity.
    허나 실용성은 순수성을 이긴다.
  10. Errors should never pass silently.
    오류는 절대로 조용히 지나가지 않는다.
  11. Unless explicitly silenced.
    명시적으로 오류를 감추려는 의도가 아니라면.
  12. In the face of ambiguity, refuse the temptation to guess.
    모호함을 대할 때, 이를 추측하려는 유혹을 거부하라.
  13. There should be one– and preferably only one –obvious way to do it.
    명확한, 그리고 가급적이면 유일한 하나의 방법은 항상 존재한다.
  14. Although that way may not be obvious at first unless you’re Dutch.
    비록 그 방법이 처음에는 명확해 보이지 않을지라도.
  15. Now is better than never.
    지금 행동에 옮기는 것이 아예 안 하는 것보다는 낫다.
  16. Although never is often better than right now.
    비록 아예 안 하는 것이 지금 당장 하는 것보다 나을 때도 많지만.
  17. If the implementation is hard to explain, it’s a bad idea.
    구현 결과를 설명하기 쉽지 않다면, 그것은 나쁜 아이디어이다.
  18. If the implementation is easy to explain, it may be a good idea.
    구현 결과를 설명하기 쉽다면, 그것은 좋은 아이디어일지도 모른다.
  19. Namespaces are one honking great idea – let’s do more of those!
    네임스페이스를 사용하는 것은 완전 좋은 생각이다!

2. 디터 람스의 좋은 디자인 10원칙

  1. Good design is innovative.
    좋은 디자인은 혁신적이다.
  2. Good design makes a product useful.
    좋은 디자인은 제품을 유용하게 한다.
  3. Good design is aesthetic.
    좋은 디자인은 심미적이다.
  4. Good design makes a product understandable.
    좋은 디자인은 제품을 이해 가능하게 한다.
  5. Good design is unobtrusive.
    좋은 디자인은 요란하게 거슬리지 않는다. (불필요하게 장식적이지 않다.)
  6. Good design is honest.
    좋은 디자인은 정직하다.
  7. Good design is long-lasting.
    좋은 디자인은 영속적이다.
  8. Good design is thorough down to the last detail.
    좋은 디자인은 마지막 디테일까지 철저하다.
  9. Good design is environmentally friendly.
    좋은 디자인은 환경 친화적이다.
  10. Good design is as little design as possible.
    좋은 디자인은 가능한 최소한으로 디자인된다.

3. 애자일 소프트웨어 개발을 위한 선언

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: 우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다:

  • Individuals and interactions over processes and tools
    공정과 도구보다 개인과 상호작용
  • Working software over comprehensive documentation
    포괄적인 문서보다 작동하는 소프트웨어
  • Customer collaboration over contract negotiation
    계약 협상보다 고객과의 협력
  • Responding to change over following a plan
    계획을 따르기보다 변화에 대응하기

That is, while there is value in the items on the right, we value the items on the left more. 이 말은, 왼쪽(해석상 오른쪽)에 있는 것들도 가치가 있지만, 우리는 오른쪽(해석상 왼쪽)에 있는 것들에 더 높은 가치를 둔다는 것이다.

【참고자료】