PM 간접 체험
프로젝트 관리의 첫 번째 법칙: 언제나 뭔가 잘못됩니다.
지난 글에서 게임 플레이 패턴을 살펴보았습니다. 오늘은 좀 더 진지한 주제 “프로젝트 매니지먼트”를 다루는 간단한 텍스트 게임을 살펴보고, 게임 플레이 패턴을 활용할 때 고려할 요소들을 정리해 보는 시간을 갖겠습니다(하단에서 프로젝트 관리 대신 프로젝트 매니지먼트라는 표현을 사용한 이유는 이 글을 참고하세요).
프롬프트
#입력
[게임의 목적]
- 성공적인 프로젝트 완성을 통해 우수한 프로젝트 매니저가 되는 것입니다.
[플레이어가 해야 할 일]
- 다양한 팀원들과 협력하고, 팀의 역량을 최대한 활용합니다.
- 프로젝트 관련 결정을 내리고, 각종 문제를 해결합니다.
- 효과적인 커뮤니케이션과 리더십으로 팀을 이끕니다.
- 예산 관리, 일정 관리, 품질 관리 등 프로젝트 관리 기술을 활용합니다.
- 프로젝트의 성공을 위해 필요한 자원을 관리합니다.
[도전과 장애물]
- 팀 내 갈등을 해결하고, 팀원들의 사기를 관리해야 합니다.
- 제한된 자원과 시간 내에 프로젝트를 완수해야 합니다.
- 예상치 못한 문제와 위기 상황을 극복해야 합니다.
[게임 진행 조건]
- 프로젝트 관련 결정을 내리기 위한 여러 선택지가 제공됩니다.
- 팀원과의 상호작용, 자원 관리 등을 통해 게임을 진행합니다.
- 게임 도중 내리는 선택이 프로젝트의 성공과 실패에 영향을 미칩니다.
- 게임이 진행될수록 남은 일정이 줄어듭니다.
- 마감 일자까지 총 5개 내외의 문제 상황을 준비합니다.
- 반드시 한 문제씩 진행합니다.
[게임 엔딩]
- 마감 일자에 도달하면, 게임을 종료하고 평가 결과를 자세하게 알려 줍니다.
#처리
당신은 “프로젝트 매니지먼트 게임”입니다. 당신의 목표는 플레이어를 우수한 프로젝트 매니저로 만들기 위한 “교육용 게임”을 대화 형식으로 제공하는 것입니다. 상단의 입력 내용을 바탕으로 게임의 전체 구조를 설계합니다. 설계 내용을 설명할 필요는 없습니다. 지금부터 게임을 시작합니다.
#출력
[상태창]= 프로젝트 진행률, 팀원 만족도, 남은 예산(한국 원화), 남은 기한을 표시합니다.
[문제 상황]= 프로젝트를 진행하면서 경험할 수 있는 도전적인 문제 상황을 자세하게 제공합니다.
[선택지]= 문제를 해결하기 위한 여러 선택지를 구체적으로 제공합니다.
챗GPT(GPT-4)
[상태창]
- 프로젝트 진행률: 45%
- 팀원 만족도: 70%
- 남은 예산: 15,000,000원
- 남은 기한: 3주
[문제 상황]
당신의 팀은 현재 중요한 소프트웨어 개발 프로젝트를 진행 중입니다. 최근, 중대한 기술적 문제가 발생했고, 이로 인해 프로젝트 일정에 차질이 생겼습니다. 팀원들은 추가 근무를 해야 할 상황이며, 이로 인해 팀 내부에서 불만이 증가하고 있습니다. 또한, 이 문제를 해결하기 위해서는 추가 비용이 발생할 것으로 예상됩니다.
[선택지]
1. 근무를 요청하고, 팀원들에게 감사의 의미로 소정의 보너스를 지급합니다. 이로 인해 예산이 추가로 소모될 것입니다.
2. 프로젝트 기한을 연장하여 팀원들의 근무 부담을 줄입니다. 그러나 이것은 고객의 불만을 초래할 수 있습니다.
3. 외부 전문가를 고용하여 문제를 해결합니다. 이는 높은 비용이 들지만, 프로젝트 진행에 큰 도움이 될 수 있습니다.
4. 기술적 문제를 내부적으로 해결하려 하며, 팀원들에게 협력을 요청합니다. 추가 비용은 들지 않지만, 팀원들의 만족도가 더 낮아질 수 있습니다.
5. 현재 상황을 고객에게 투명하게 공유하고, 추가 자원을 요청합니다. 이는 고객과의 관계에 위험을 초래할 수 있지만, 필요한 자원을 확보할 수 있습니다.
사용자
1
챗GPT(GPT-4)
[선택 결과]
당신은 추가 근무를 요청하고, 팀원들에게 감사의 의미로 소정의 보너스를 지급하기로 결정했습니다. 이 결정은 팀원들의 사기와 만족도를 높이는 데 도움을 줬지만, 프로젝트의 예산은 추가로 소모되었습니다.
[업데이트된 상태창]
- 프로젝트 진행률: 50%
- 팀원 만족도: 80%
- 남은 예산: 10,000,000원
- 남은 기한: 3주
[새로운 문제 상황]
팀원들의 사기가 증가하면서 프로젝트 진행에 속도가 붙었습니다. 하지만, 예산이 줄어들면서 향후 발생할 수 있는 불가피한 추가 비용에 대비할 여유가 줄어들었습니다. 이와 동시에, 한 팀원이 개인적인 문제로 인해 일시적으로 업무를 수행하기 어렵게 되었습니다. 이로 인해 프로젝트에 필요한 중요한 업무가 지연될 위험이 있습니다.
[새로운 선택지]
1. 임시 인력을 고용하여 부족한 업무를 처리합니다. 이는 추가 비용이 발생하지만, 프로젝트의 일정을 유지할 수 있습니다.
2. 팀원들에게 추가 업무를 분배합니다. 이로 인해 추가 비용은 발생하지 않지만, 팀원들의 만족도와 업무 효율성이 떨어질 수 있습니다.
3. 프로젝트 일정을 재조정하여 팀원의 부재를 고려합니다. 이는 프로젝트 마감 기한을 늦추게 되지만, 팀원들에게는 더 많은 시간을 제공합니다.
4. 부재한 팀원의 업무를 외주에 맡깁니다. 이는 품질 관리에 위험을 감수해야 하지만, 일정과 예산을 유지할 수 있습니다.
5. 고객과 협의하여 중요하지 않은 프로젝트 요소를 제거하거나 변경합니다. 이는 프로젝트 범위를 축소시키지만, 예산과 일정을 효과적으로 관리할 수 있습니다.
(전체 내용이 너무 길어서 중간 대화는 생략했으며, 다음은 게임 엔딩)
챗GPT(GPT-4)
[선택 결과]
당신은 남은 예산을 최대한 절약하면서 팀원들의 기존 역량을 활용하여 프로젝트를 완료하기로 결정했습니다. 이 결정은 추가 비용을 발생시키지 않으면서도 팀원들의 전문성과 창의력을 극대화하는 데 중점을 두었습니다. 팀원들은 자신들의 능력을 최대한 발휘하여, 높은 수준의 완성도를 달성하기 위해 노력했습니다. 이로 인해 프로젝트는 예산 내에서 성공적으로 완료되었고, 팀원들의 협력과 헌신이 프로젝트의 성공을 이끌었습니다.
[업데이트된 상태창]
- 프로젝트 진행률: 100%
- 팀원 만족도: 92%
- 남은 예산: 500,000원
- 남은 기한: 0일 (프로젝트 완료)
[게임 엔딩]
프로젝트가 성공적으로 마무리되었습니다. 당신의 뛰어난 리더십과 의사결정 능력이 프로젝트 팀을 이끌고, 각종 도전과 장애물을 극복하는 데 중요한 역할을 했습니다. 팀원들의 만족도는 높으며, 고객도 프로젝트의 결과에 만족하고 있습니다. 프로젝트의 성공은 당신이 우수한 프로젝트 매니저로 성장한 것을 증명합니다. 축하합니다!
이번 프롬프트는 GPT-3.5와 클로바에서도 그럭저럭 작동하지만, 바드에서는 모델 역량의 한계로 제대로 작동하지 않습니다. 모델의 응답 무작위성으로 인해 원치 않은 답변이 나올 경우에는 Regenerate 해서 이용하세요.
앞선 예시는 정교한 시뮬레이션 게임이라기보다는, 프로젝트에서 발생하는 여러 문제 상황과 이를 해결하기 위한 여러 선택지를 간접적으로 체험하는 데 중점을 둔 것입니다. 이처럼 만들 수 있다는 정도로 생각하시면 되겠습니다.
게임 플레이 패턴의 기본 형식은 다음과 같으며, 유사한 표현의 문장을 사용하면 됩니다.
다음 내용을 반영하여 대화 형식으로, 지금부터 게임을 시작합니다: [게임 규칙]
"대화 형식"이라는 표현이 꼭 필요한 건 아니지만, 간혹 전체 게임 내용을 한 번에 출력하는 현상이 발생하는데 대화 형식을 요청하면 그런 현상이 줄어듭니다. 또한 게임 요구사항이 복잡하면 전체 내용을 한 번에 출력하는 현상이 더 증가하는데, 그걸 막기 위해 "반드시 한 장면(또는 문제)씩 진행합니다"와 같은 표현을 추가하면 그런 현상을 좀 더 줄일 수 있습니다.
[게임 규칙]에는 모델이 게임 내용을 이해하고 설계할 수 있도록 필요한 내용을 지정합니다. 이를 위해서 다음과 같은 사항들을 고려할 수 있습니다.
게임 컨텍스트 설정하기: 첫걸음은 게임 세계를 구축하는 것입니다. 게임의 목적, 장르, 대상을 명확히 합니다. 장르에 따라서 필요하다면 내러티브 요소를 포함합니다. 즉, 게임에 스토리 라인을 추가하여 플레이어가 더 몰입할 수 있도록 합니다.
플레이어의 역할과 해야 할 일 설정하기: 플레이어가 게임에서 어떤 역할을 맡고, 무엇을 해야 하는지 구체적인 지침을 제공합니다.
도전과 장애물 설정하기: 게임은 도전적이어야 합니다. 플레이어가 극복해야 할 장애물이나 문제를 설정하여 게임에 긴장감과 재미를 더합니다.
게임 진행 조건 설정하기: 게임 내에서 플레이어의 선택이 미치는 영향을 설계합니다. 이는 게임의 다이나믹함을 증가시키는 요소입니다. 필요에 따라 게임 내 특정 단계에 도달하기 위한 조건을 설정합니다.
게임 엔딩 설정하기: 어떤 상황에서 게임을 종료할지 명확히 하고, 게임 종료 시 제공할 내용을 설정합니다.
너무 가이드가 없으면 막막할 수 있어 참고로 나열하기는 했습니다만, 대형언어모델의 특성상 설정 가능한 항목과 내용에는 사실상 아무런 제한이 없습니다. 마음대로 상상하되 논리적으로 작성하면 됩니다. 다만, 그렇게 작성한 프롬프트가 생각한 대로 작동한다는 보장은 없습니다. 막상 실행해 보면 기대하지 않은 결과가 나올 수 있으므로, 모델의 응답 결과를 받아본 후 반복적으로 프롬프트를 개선하고 최적화해서 사용하면 됩니다.
디음번 글에서 게임 플레이 패턴의 다양한 용도와 다른 예시에 관해 추가로 살펴보겠습니다.
게임이 참 좋습니다. 언제나 새로 시작할 수 있는 기회를 주니까요.