본문으로 건너뛰기
강홍재/ James
← Work
Live2026 · Founder · Product · Engineer· Started(First Commit date)

Frameboard

RICE · ICE · MoSCoW · Value × Effort를 한 워크스페이스에서 - 오픈소스 우선순위 도구.

  • Next.js 15
  • FastAPI
  • PostgreSQL
  • Open Source
스크린샷
  • RICE 보드 - 우선순위 카드 그리드와 점수 분포가 한 화면에

  • Effort × Score 산포도 + Top-N 막대 차트로 우선순위 분포를 본다

  • 워크스페이스마다 프레임워크를 자유 선택 (RICE · ICE · MoSCoW · Value × Effort)

  • 멤버별 점수, 평균, min-max 스프레드를 한 칸에 - 합의를 가장한 평균만 보여주지 않음

Setup

Problem

PM이 매 스프린트마다 "다음에 뭘 만들지"를 스프레드시트·포스트잇·슬랙 스레드로 토론하며 시간을 흘린다. 기존 도구는 두 갈래로 갈린다. 한 프레임워크에 가두는 도구(RICE 전용, ICE 전용)는 팀이 익숙한 기준이 다르면 처음부터 끼지 못한다. 다른 갈래는 자유롭지만 시트당·사용자당 과금이라 10분짜리 결정 한 번에 도입 결재를 받아야 한다. 결과적으로 우선순위 회의는 "수치를 정리하는 시간"이 되고, 정작 중요한 "왜 이게 더 중요한가"의 토론은 마지막 5분에 몰린다.

Context

QA로 우선순위·릴리즈 결정을 가까이서 보며"우선순위 도구를 직접 써본 경험"이 필요했다. 책으로 읽은 RICE는 도구로 굴려보지 않으면 "왜 점수 분포가 이렇게 나오는지"가 안 보인다. 사용하면서 개선이 보였고, 오픈소스로 공개해 같은 결정을 더 빨리 내려야 하는 다른 팀이 무료로 가져다 쓸 수 있도록 했다. 도입 결재 단계가 사라지면 10분짜리 결정이 10분 안에 끝날 수 있다.

Users

팀 단위로 우선순위 워크숍을 돌리는 PO/PM과 프로덕트 리드.

Hypothesis

프레임워크를 워크스페이스마다 따로 고르고, 팀원 각자가 자기 점수를 남기고, 집계는 자동으로 - 이 세 가지면 우선순위 회의가 "수치 정리"가 아닌 "이견 토론"이 된다.

Build

What I did
  • RICE / ICE / MoSCoW / Value × Effort 다형 보드 - 프레임워크별로 입력 컬럼·범례·공식이 자동 전환
  • 팀 협업 점수 - 멤버 초대, 각자 점수 행, 평균·기여자·min-max 스프레드가 한 칸에
  • Ship-it 토글 - 완료 항목은 strikethrough되고 보드 하단으로 가라앉음, 회고용 토글 별도
  • Effort × Score 산포도 + Top-N 막대 차트 (RICE)
  • CSV / Notion / Linear export, GitHub OAuth, 자체 호스팅 Docker compose
Product decisions
  • 프레임워크를 자유 선택 - 팀마다 익숙한 기준이 다르다는 현실 인정
  • 점수 평균과 함께 min-max 스프레드 노출 - 합의된 척 평균만 보여주면 이견이 사라진다
  • 오픈소스 + Cloudflare Pages 무료 배포 - 도입 결정의 책임을 줄이는 것이 첫 진입을 만든다
QA considerations
  • 한 보드 컴포넌트가 4 프레임워크(RICE·ICE·MoSCoW·Value×Effort)의 입력 컬럼·범례·공식을 각각 정확히 전환하는가
  • 모드 전환 시 다른 프레임워크의 공식이 잘못 적용되거나 입력 컬럼이 사라지는 회귀가 없는가
  • 프레임워크별 점수 공식이 결정론적이어서 같은 입력에 늘 같은 순위·산포도 위치가 나오는가(백엔드 pytest 129개로 고정)
  • 멤버별 점수 집계에서 평균만 남고 min-max 스프레드가 죽지 않는가 - 합의를 가장한 노이즈가 이견을 지우지 않게
  • 프레임워크 스위치를 E2E 시나리오로 고정해 리팩토링에도 4모드가 같은 무게로 유지되는가
  • export(CSV·Notion·Linear)가 프레임워크별 컬럼 구조를 정확히 반영하고 왕복 데이터가 유실되지 않는가
  • OSS·자체 호스팅(Docker compose) 배포에서도 인증·데이터 무결성이 매니지드 환경과 동일하게 유지되는가

Outcome

Metrics

오픈소스 알파 - frameboard.pages.dev에 라이브. 백엔드 pytest 129개·E2E 5 시나리오 CI 그린.

Result / Learning

직접 PM 워크플로우를 도구로 만들어보면서 "우선순위는 점수가 아니라 토론을 시작하는 트리거"라는 걸 확인. 같은 항목에 대해 멤버별로 점수가 갈리는 칸이 보일 때 비로소 "왜 너는 이게 8점이고 나는 3점인가"의 대화가 시작됐다. 점수 평균은 합의를 가장한 노이즈고, min-max 스프레드가 진짜 토론의 입구라는 게 다음 라운드 가설. 토론 흔적이 점수와 함께 남는 형태를 실험할 예정.

Retrospective
  • 출발할 때는 "점수를 매기는 도구"로 설계했지만, 실제 가치는 토론을 시작하는 트리거에 있었다. 다음 라운드는 토론 흔적 보존부터 다시 짠다.
Tech stack
  • Next.js 15
  • TypeScript
  • Tailwind
  • shadcn/ui
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • Playwright