Project Sizing Guide logo

Project Sizing Guide

CommunityPopular
zebbern
project-sizing-guide

Software project effort estimation assistant. Outputs three-point estimates (optimistic/most-likely/pessimistic values with confidence intervals), T-shirt sizes, or Function Point Analysis (FPA) counts. Triggered when users ask 'how long will this feature take,' need to assess project workload, perform PERT estimation, T-shirt sizing, FPA, sprint planning, or quote-based effort breakdowns.

Overview

Publisherzebbern
Repositoryclaude-code-guide
Skill nameproject-sizing-guide
Stars
4.6K
Forks
464
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by zebbern on GitHub. Read the source before you install it.

Installation

Install the Project Sizing Guide AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/zebbern/claude-code-guide.git /tmp/claude-code-guide
mkdir -p .claude/skills
cp -r /tmp/claude-code-guide/skills/project-sizing-guide .claude/skills/project-sizing-guide
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Project Sizing Guide in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Project Sizing Guide on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Project Sizing Guide is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Project Sizing Guide — Software Project Effort Estimation

Helps teams produce scientifically grounded effort estimates for software projects, based on three major methodologies: Three-Point Estimation (PERT), T-shirt Sizing, and Function Point Analysis (FPA). Outputs optimistic, most-likely, and pessimistic values along with risk intervals.

Quick Start

  1. User provides a requirements description → Agent identifies functional modules and breaks them into a Work Breakdown Structure (WBS)
  2. Select an estimation method → Choose the best-fit approach based on project stage and available information
  3. Estimate each item → Assign O/M/P (Optimistic / Most Likely / Pessimistic) values to every work package
  4. Aggregate and report → Generate an estimation report with risk analysis and confidence intervals

A calculation helper is available:

bash
python3 scripts/estimate_calculator.py --method pert --tasks '[{"name":"User Login","O":2,"M":3,"P":8}]'

Method Selection Guide

ScenarioRecommended MethodRationale
Early feasibility study, rough budgetingT-shirt SizingLittle information available; quickly align on order of magnitude
Sprint planning, iteration estimationThree-Point Estimation (PERT)Good granularity with confidence intervals
Contract bidding, large-project RFPsFunction Point Analysis (FPA)Most rigorous; industry-comparable
Team has historical dataPERT + historical calibrationCombines empirical correction with data

Method 1: Three-Point Estimation (PERT)

Core Formulas

MetricFormulaMeaning
Expected Value E(O + 4M + P) / 6Weighted average effort
Standard Deviation σ(P − O) / 6Estimation uncertainty
Variance Vσ²Used to aggregate across tasks
Project Total ExpectedΣESum of individual expected values
Project Total Std Dev√(ΣV)Square root of summed variances

Where:

  • O (Optimistic): Shortest duration assuming everything goes smoothly
  • M (Most Likely): Duration under normal circumstances
  • P (Pessimistic): Longest duration when significant difficulties arise

Confidence Intervals

Confidence LevelIntervalUse Case
68.3%E ± 1σInternal rough estimates
90%E ± 1.645σProject planning
95%E ± 2σExternal quotes
99.7%E ± 3σContractual commitments

Steps

  1. Build the WBS: Decompose requirements into the smallest independently estimable units (recommended ≤ 5 person-days each)
  2. Three-point estimation: For each work package, provide O / M / P values (use consistent units: person-hours or person-days)
  3. Calculate per-task expected value and standard deviation
  4. Aggregate project-level metrics: Total Expected = ΣE, Total Std Dev = √(Σσ²)
  5. Output confidence intervals: Choose a confidence level based on risk appetite

O/M/P Estimation Rules of Thumb

  • O should not be less than 30% of M (overly optimistic suggests essential steps were overlooked)
  • P should not exceed 5× M (overly pessimistic suggests unclear requirements that need clarification first)
  • If O ≈ M ≈ P, the task is either extremely well-understood or the estimator hasn't seriously considered risks
  • The P/O ratio (spread ratio) reflects uncertainty: < 2 = low risk, 2–4 = medium risk, > 4 = high risk

Method 2: T-shirt Sizing

Size Reference Table

SizeTypical Range (person-days)Typical Story PointsSuitable For
XS0.25 – 0.51Config changes, copy edits, simple bug fixes
S0.5 – 22 – 3Single-component development, simple API, minor UI tweaks
M2 – 55 – 8Complete feature module, moderately complex API
L5 – 1513 – 21Cross-module features requiring integration
XL15 – 4034 – 55Subsystem-level development requiring architecture design
XXL40+89+Should be split across multiple iterations; not recommended as a single estimation unit

Converting T-shirt Sizes to Three-Point Estimates

When more precise numbers are needed, T-shirt sizes can be converted to three-point estimates:

SizeO (person-days)M (person-days)P (person-days)
XS0.250.51
S0.512.5
M23.57
L51020
XL152550
XXL4070150

Steps

  1. Team alignment: Confirm what each size means (the table above is a reference; teams may customize)
  2. Independent assessment: Each person assigns a size independently to avoid anchoring bias
  3. Discuss discrepancies: When estimates differ by more than 2 sizes, a discussion is mandatory
  4. Reach consensus: Adopt the team consensus value
  5. Convert to numbers (optional): Use the table above to derive O/M/P values

Method 3: Function Point Analysis (FPA)

Five Function Component Types

Component TypeAbbreviationDefinitionExample
Internal Logical FileILFLogical data group maintained by the applicationUsers table, Orders table
External Interface FileEIFData group referenced but not maintained by the applicationThird-party exchange rate data
External InputEIData processing entering the system from outsideForm submission, API POST
External OutputEOData generated and sent outside the systemReport generation, exports
External InquiryEQSimple data retrieval + displayList queries, detail pages

Complexity Weight Matrix

Component TypeLowMediumHigh
ILF71015
EIF5710
EI346
EO457
EQ346

Complexity Assessment Rules

ILF / EIF Complexity (based on DET – Data Element Types and RET – Record Element Types):

DET 1-19DET 20-50DET 51+
RET 1LowLowMedium
RET 2-5LowMediumHigh
RET 6+MediumHighHigh

EI Complexity (based on DET and FTR – File Types Referenced):

DET 1-4DET 5-15DET 16+
FTR 0-1LowLowMedium
FTR 2LowMediumHigh
FTR 3+MediumHighHigh

EO / EQ Complexity (based on DET and FTR):

DET 1-5DET 6-19DET 20+
FTR 0-1LowLowMedium
FTR 2-3LowMediumHigh
FTR 4+MediumHighHigh

Converting Function Points to Effort

After calculating Unadjusted Function Points (UFP):

  1. Calculate the Value Adjustment Factor (VAF) (optional; deprecated since IFPUG 4.3+ but still used by some teams)

    • 14 General System Characteristics (GSC), each scored 0–5
    • VAF = 0.65 + 0.01 × Σ(GSC)
    • Adjusted Function Points AFP = UFP × VAF
  2. Function points to person-hours

    • Industry benchmark: 8–15 person-hours per function point (varies by language and team maturity)
    Technology StackPerson-hours / FPNotes
    Low-code / Mature Frameworks4 – 8Many reusable components available
    Python / JS / Modern Web8 – 12Mainstream development productivity
    Java / C# Enterprise10 – 15Includes architecture and standards overhead
    Embedded / C / C++15 – 25High debugging and testing cost
    Legacy System Maintenance20 – 30Comprehension and regression cost

Steps

  1. Identify function components: List all ILFs, EIFs, EIs, EOs, and EQs
  2. Assess complexity: Rate each component as Low / Medium / High
  3. Calculate UFP: Sum (count × weight) for all components
  4. Select conversion factor: Choose person-hours per FP based on technology stack
  5. Compute total effort: UFP × conversion factor
  6. Add buffer: A 15–30% management and risk buffer is recommended

Estimation Adjustment Factor Checklist

After completing the estimation, verify that the following factors have been accounted for:

Technical Factors

  • Technology stack familiarity (Is the team experienced? If unfamiliar, add 30–50%)
  • Technical debt (Poor legacy code quality? Add 20–40%)
  • Third-party dependencies (Unstable APIs? Missing documentation? Add 10–30%)
  • Performance / security requirements (Special non-functional requirements? Add 15–25%)

Team Factors

  • Team size (Communication overhead increases significantly above 5 people; add ~5% per person)
  • Personnel turnover risk (Key members may leave? Add 15–25%)
  • Parallel projects (Team context-switching across multiple projects? Add 20–30%)
  • Onboarding new members (New hires? Expect ~50% reduced efficiency for the first 2 weeks)

Process Factors

  • Requirements stability (Requirements likely to change? Add 20–50%)
  • Approval processes (Multiple layers of approval needed? Add 10–20%)
  • Deployment complexity (Multi-environment, multi-region deployments? Add 10–15%)
  • Compliance requirements (Audit or compliance processes? Add 15–30%)

Commonly Underestimated Work

  • Code review: +10–15%
  • Unit test authoring: +15–25%
  • Integration / E2E testing: +10–20%
  • Documentation: +5–15%
  • Bug fixing and regression: +10–20%
  • Environment setup and DevOps: +5–10%
  • Meetings and communication: +10–15%

Estimation Output Template

After the Agent completes the estimation, it should produce output in the following format:

## Estimation Report: [Project / Feature Name]

### Estimation Method: [PERT / T-shirt / FPA]

### Work Package Breakdown

| # | Work Package | O (person-days) | M (person-days) | P (person-days) | E (person-days) | σ |
|---|-------------|-----------------|-----------------|-----------------|-----------------|---|
| 1 | xxx         | x               | x               | x               | x.x             | x.x |
| 2 | xxx         | x               | x               | x               | x.x             | x.x |

### Summary

- Total expected effort: X person-days
- Total standard deviation: X person-days
- 68% confidence interval: X – X person-days
- 90% confidence interval: X – X person-days
- 95% confidence interval: X – X person-days

### Adjustment Factors
- [Factors considered and adjustments applied]

### Final Recommendation
- For internal planning: X person-days (90% confidence)
- For external quotes: X person-days (95% confidence)

### Risk Alerts
- [Key risk items and mitigation suggestions]

Calculation Tool

The scripts/estimate_calculator.py script supports numerical calculations for all three estimation methods:

bash
# Three-Point Estimation (PERT)
python3 scripts/estimate_calculator.py --method pert \
  --tasks '[{"name":"Login Module","O":2,"M":3,"P":8},{"name":"Payment Module","O":5,"M":10,"P":20}]'

# T-shirt Size Conversion
python3 scripts/estimate_calculator.py --method tshirt \
  --tasks '[{"name":"Login Module","size":"M"},{"name":"Payment Module","size":"L"}]'

# Function Point Analysis
python3 scripts/estimate_calculator.py --method fpa \
  --components '[{"type":"ILF","complexity":"medium","count":3},{"type":"EI","complexity":"low","count":5}]' \
  --hours-per-fp 10

References

  • IFPUG (International Function Point Users Group) CPM 4.3.1
  • PMI PMBOK Guide — 6th Edition, Section 6.4: Estimate Activity Durations
  • Steve McConnell, Software Estimation: Demystifying the Black Art
  • Mike Cohn, Agile Estimating and Planning

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Project Sizing Guide AI skill do?

Software project effort estimation assistant. Outputs three-point estimates (optimistic/most-likely/pessimistic values with confidence intervals), T-shirt sizes, or Function Point Analysis (FPA) counts. Triggered when users ask 'how long will this feature take,' need to assess project workload, perform PERT estimation, T-shirt sizing, FPA, sprint planning, or quote-based effort breakdowns.

Why use Project Sizing Guide on TypingMind?

Because you install it once and use it with any model. Project Sizing Guide is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Project Sizing Guide in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/zebbern/claude-code-guide/tree/main/skills/project-sizing-guide. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Project Sizing Guide?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Project Sizing Guide?

As many as you like. As long as a model supports skills, you can use Project Sizing Guide with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Project Sizing Guide AI skill free?

Yes. It is published on GitHub by zebbern under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇