2장 디자인 싱킹 기초
디자인 싱킹은 문제 해결의 모든 기준을 인간에게 두고, 창의적이고 분석적으로 문제를 풀어가는 접근법
2.1 디자인 싱킹의 네 가지 원칙
- 인간중심의 원칙
- 모호함의 원칙
- 재디자인의 원칙
- 촉각의언칙
2.1.1 모든 디자인은 사회적이다.
디자인은 본질적으로 인간중심적인 노력이다.
우리는 사람을 위해 소프트웨어를 디자인하며, 사람들과 함께 소프트웨어를 디자인한다.
아키텍트는 모든 이해관계자들과 공감대를 형성해야한다.
인간중심 원칙은 아키텍트가 팀과 분리된 사람이 아니라 팀의 일부다.
아키텍트는 팀원들과 직접 소통하면서 함께 설계해야한다.
2.1.2 모호함을 유지하라
소프트웨어 아키텍처의 목적은 품질 속성을 끌어올릴 수 있도록 여러 구조를 정리하는 것이다.
아키텍트는 최소한의 아키텍처를 만들어야 한다.
2.1.3 모든 디자인은 다시 디자인한 것이다.
'다시 디자인한다'는 의미는 과거의 디자인에서 패턴을 찾고 고찰해보는 것이다.
소프트웨어를 만들수록 더 나은 소프트웨어를 만드는 지식도 발전한다.
2.1.4 손에 잡히는 디자인이 대화를 이끌어낸다.
다른 사람들과 아키텍처를 공유하려면 코드만으로는 할 수 없는 방식으로 구현해야한다.
그림으로 그리고, 코드로 구현하라.
프로토타입을 만들어서 사람들이 품질 속성과 아키텍처를 직접 경험할 수 있게 해라.
2.2 디자인 마인드셋 장착하기
소프트웨어 시스템을 설계할 때는 여러 관점의 디자인 마인드 셋을 가지고 진행해야한다.
디자인 마인드셋은 이해하기, 탐색하기, 실현하기, 평가하기이다.
2.2.1 문제 이해하기
문제를 이해하려면 이해관계자들이 중요하게 생각하는 비즈니스 목표와 품질 속성도 조사해야한다.
그리고 어떻게 팀을 운영하고 설계할 때 트레이드오프와 우선순위를 결정해야한다
2.2.2 아이디어 탐색하기
통상적인 다자인 싱킹에서 브레인스토밍과 포스트잇은 시작이다 끝이다.
브레인스토밍은 강력하지만 탐색하기 단계에서는 하나의 훈련 방법에 지나지 않는다.
최선의 조합을 찾으려면 다양한 패턴, 기술, 구현 방법에 대해 조사해야한다.
2.2.3 실현하기
아이디어는 다른 사람에게 온전히 전달하지 못하면 아무 의미가 없다. 그렇기 때문에 실현하기는 다른 사람들에게 아이디어를 전달하는 방법뿐만 아니라
아이디어 자체를 시험해볼 수 있는 기회도 제공한다.
그렇기 때문에 실현하기 단계에서 설계 콘셉트를 현실 세계의 실체로 만들게 된다.
2.2.4 평가하기
설계상의 의사결정이 실제 인식과 얼마나 잘 맞는지 평가한다.
디자인 마인드셋이 제대로 동작하려면 빠른 피드백 순환 고리를 만들어 단계별로 빠르게 옮겨갈 수 있어야한다.
2.2.5 직접 해보기 : 이해하기, 탐색하기, 실현하기, 평가하기
- 문제를 제대로 이해하기 위해 사람들과 협업한적 이 있나요? 만약, 협업했다면 특별한 방법론을 사용했나요?
- 아이디어를 탐색하기 위해 다른 사람들과 어떻게 협업했나요? 그리고 제시한 아이디어에 이어서 어떤 대안을 생각해봤나요?
- 여러분이 이해관계자 또는 팀원들과 일하는 방식을 변경했을 때 어떻게 했나요?
- 스스로의 설계는 어떻게 평가했나요? 가설을 테스트하기 위해 어떤 기술을 사용했나요?
2.3 생각-실행-확인하기
매일 소프트웨어 만드는 일을 할수록 새롭게 알게 되는 소프트웨어 지식도 많아진다.
새로운 지식으로 더 나은 아키텍처를 만들고 또 이를 이용해 새로운 정보를 창출한다.
이 선순환을 계속하려면 설계할 때 빠른 피드백 순환 고리를 만들어서 지속적으로 변화로 기회를 만들어내야한다.
생각하고 실행하고 확인하는 것 매번 디자인 마인드셋을 적용할 때 마다 생각-실행-확인을 반복해야한다.
2.3.1 지속적인 학습을 위한 선순환
- 생각 : 무엇을 배우고 싶은가?
- 실행 : 손에 잡히는 결과를 만들어보며 필요한 정보를 파악하거나 아이디어를 공유한다.
- 확인 : 실행하기 단계에서 했던 항목들을 비판적으로 평가해보고 다음 목표를 설정한다. 그리고 다시 생각하기 단계로 돌아가서 반복
소프트웨어 시스템을 만드는 데에 중단이란 없다. 릴리스만 계속할뿐이다.2.3.2 어떤 상황에서든 마인드셋을 활용하자.'이해하기'에서는 이해관계자들이 필요로 하는 바를 요구사항으로 구체화하는 방법에 집중해라
'탐색하기'에서는 문제를 패턴, 기술 등 여러 수단으로 파악해본 후 해결 방법을 브레인스토밍 해라
'실현하기'에서는 시스템을 모델링해 구체적인 결과를 공유해라
'평가하기'에서는 결과물이 요구사항에 맞는지 테스트해라
디자인 싱킹은 소프트웨어를 개발하는 데서 기술과 사람을 잇는 법을 알려준다.
HART 원리는 소프트웨어에 마음을 심는 일이다.
'책 > 기록' 카테고리의 다른 글
[Effective Java] 아이템2 생성자에 매개변수가 많다면 빌더를 고려하라 (0) | 2022.06.18 |
---|---|
[Effective Java] 아이템1 생성자 대신 정적 팩토리 메서드를 고려하라 (0) | 2022.06.16 |
[프로그래머의 뇌] 변수의 역할 (0) | 2022.06.03 |
개발자에서 아키텍트로 #3 -설계-전략-고안하기 (0) | 2021.08.04 |
개발자에서 아키텍트로 #1 소프트웨어 아키텍트가 되다 (0) | 2021.07.01 |