brunch

You can make anything
by writing

C.S.Lewis

by 안영회 습작 Sep 27. 2023

짝 프로그래밍처럼 함께 설계하기

한국의 마틴 파울러가 되기

동료가 스윔레인으로 구분한 업무 흐름도를 그렸습니다. 특정 표기법 형식을 따른 것이 아니라 일의 순서와 시간의 흐름이 좌에서 우로 가는 방향을 기준으로 자유롭게 내용을 표현한 그림입니다.

보통 이렇게 그리면 행위자 위주로 그리기 쉽습니다. 그래서, 객체라고 하는 인위적인 정의를 하기보다는 일을 풀어가는 맥락을 표현하는 형태가 되기 쉽습니다.


일의 중심이 되는 개념을 정의하기

이제 일의 중심이 되는 개념을 정의합니다. 지난 글에서 제가 붉은색 바운더리(경계)를 지은 부분이 후보입니다.

이렇게 경계를 지어 소프트웨어 덩어리에 일을 할당하는 행위가 설계를 구성하는 주요 의사결정 중 하나입니다.


동료가 제가 붉은색으로 범주를 지은 해당 영역에 대해 다시 그린 내용은 다음과 같습니다. 의사결정 트리 같기도 하고, 아주 오래전에 쓰이던 플로우 다이어그램 형상 같기도 합니다.

제가 동료가 그린 그림에서 다시 경계를 추가합니다. 핵심 개념을 포착하는 일은 보통은 상당한 노하우를 요구합니다. 그래서 3년 정도 훈련한 동료에게 맡기는 대신에 제가 20년 동안 경험하며 쌓인 직관을 활용하여 객체의 경계를 조정해 나갑니다.


절차를 명시적으로 회고하기

제가 동료의 상황에 맞춰서 안내한 방법과 앞으로 전개할 방식을 글로 써 봅니다. 제 머릿속에 있던 작전을 동료도 같이 보게 하는 것이죠.

<대상이 되는 사태의 주요 내용을 한 장에 담다>편에서 설명했던 On the Same Page 기법을 반복하는 것으로도 볼 수 있습니다.



지난 한국의 마틴 파울러가 되기 연재

1. 현실과 시스템의 불일치, 그리고 UX의 역할

2. 대상과 조건 그리고 자기 속도에 부합하는 조건 만들기

3. Code Smells 비유와 기술 부채

4. 기술 부채를 Code Smell로 관리할 수 있는가?

5. 형상 구성단위로 TestCase 유용할까?

6. 설계 요소의 사분면

7. 입자와 파동의 이중성을 소프트웨어 설계에 응용하기

8. 즉흥적으로 그린 그림에 입자와 파동 이중성 적용하기

9. 소프트웨어 설계에서 입자의 응용

10. 소프트웨어 설계에서 파동의 응용

11. 설계란 무엇인가 IV Part.1

12. 설계란 무엇인가 IV Part.2

13. 설계는 변화에 대한 준비인가?

14. 대상이 되는 사태의 주요 내용을 한 장에 담다

15. 스윔레인으로 경계와 상호작용 드러내기

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari