티스토리 뷰

728x90

velog 블로그에서 tistory로 이전한 데이터 입니다. - 2020-9-20

1. 파레토 법칙(Pareto principle)

파레토 법칙은 80:20 법칙으로 알려져있는데
전체 결과의 80%가 전체 원인의 20%에서 일어나는 현상을 말한다.

이 법칙은 통계, 품질관리 등 여러 곳에서 사용되지만 나는 개발자니까 소프트웨어 측면으로 말해본다.

개발자마다 20:80 법칙을 바라보는 시각과 사용하는 용도가 다르다.

다른 개발자분들은 어떻게 생각하는지 찾아봤을 때,
개발자 1
엔터프라이즈용 개발을 할 떄, 고객의 요구사항에 맞춰 구축한다고 할 때, 소프트웨어 자체 결함보다 고객 관점이 잘못되어 있거나 조직의 비 논리적인 관행 등으로 프로세스가 잘못되어 있는 경우가 많았다고 합니다.

프로세스가 잘못되어 있는 경우 바로잡지 못하면 어쩔 수 없이 소프트웨어의 결함이 유발되어 좋은 서비스를 제공할 수 없게 됩니다.

20%의 잘못된 프로세스를 고치면 80% 버그를 제거할 수 있다.

나의 경우,
개발을 하다보면 좀 더 신경써서 할 파트가 있다.
20%가 핵심인 반면 80%는 감싸고 있는 껍데기와 같다. 문제가 발생할 80% 확률이 20% 모듈 내에서 발생하고 있다. 20% 모듈부분이 외부 API에 의존하다보니 오히려 문제는 더 크게 느껴진다.

마이크로소프트의 경우,
리본 메뉴

MS가 처음 리본을 출시했을 떄, 20%의 기능만 중점적으로 사용해서 리본 메뉴식으로 바꿨다고 한다.
그렇다면 20%의 기능을 주로 사용한 고객은 누구를 의미할까?
수많은 사람들 가운데 누구를 선택했는지. 문화권은 어딘지, 확인할 부분이 많다.

모든 사용자를 너무 일반화 시키면 중요한 사용자를 위한 기능을 놓칠 수 있다.

일반화가 20%의 함정이라고 생각한다.

정리를 해보면 20:80은 "코드를 보는 시각인지, 사용자 측면인지, 프로세스 논리를 보는 시각인지"
어디에나 붙여 쓰면 되지만 긴밀한 연관관계가 있어야된다고 생각한다.

20:80을 20%의 핵심기능과 80%의 특화기능을 제공하여 소프트웨어 경쟁력을 높이는 생각도 가져보자.

반응형

'CS > Software Engineering' 카테고리의 다른 글

콘웨이 법칙이란?  (0) 2023.10.08
디미터의 법칙이란?  (0) 2023.10.08
점진적인 개선은 어떻게 이루어질까?  (1) 2023.10.08
깔끔한 코드를 구현하자  (1) 2023.10.08
의사결정을 최적화 하라  (0) 2023.10.08