성적 예제에서 처음에는 가중치가 부여된 성적을 지원해야 한다는 요구사항을 몰랐다. 이런 요구사항이 생기리라는 사실을 몰랐기 때문에 새로운 클래스를 만들어내는 번거로움을 굳이 감수할 이유가 없었다. 파이썬 내장 딕셔너리와 튜플은 사용하기 편하기 때문에 내부에 계속 딕셔너리, 리스트, 튜플 등의 계층을 추가해 가면서 코드를 사용하기 쉽다. 하지만 내포 단계가 두 단계 이상이 되면 더 이상 딕셔너리, 리스트, 튜플 계층을 추가하지 말아야 한다. 딕셔너리 안에 딕셔너리를 포함시키면 다른 프로그래머들이 코드 읽기도 어려워지고, 프로그래머 스스로 유지보수의 악몽 속으로 들어가는 셈이다(아이템 9 “흐름 제어 시 구조분해에 match를 사용할 것을 고려하라. 하지만 if 문으로 충분하다면 match를 피하라”에서 이를 처리하는 다른 방법을 볼 수 있다).
코드에서 값을 관리하는 부분이 점점 복잡해지고 있음을 깨달은 즉시 해당 기능을 클래스로 분리해야 한다. 이를 통해 데이터를 더 잘 캡슐화해주는 명확하게 정의된 인터페이스를 제공할 수 있다. 이 접근 방법을 택하면 인터페이스와 구체적인 구현 사이에 잘 정의된 추상화 계층을 만들 수도 있다.