{"id":10,"date":"2026-03-13T22:42:51","date_gmt":"2026-03-13T22:42:51","guid":{"rendered":"https:\/\/harmonic-framework.com\/?page_id=10"},"modified":"2026-04-08T16:26:34","modified_gmt":"2026-04-08T21:26:34","slug":"project-design","status":"publish","type":"page","link":"https:\/\/harmonic-framework.com\/es\/methodologies\/project-design\/","title":{"rendered":"Project Design"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Project Design<\/h1>\n\n\n\n<p style=\"font-size:20px\">Projects fail not because teams lack effort, but because they lack informed planning. You cannot estimate what you have not designed.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The Core Premise<\/h2>\n\n\n\n<p>Traditional project management estimates cost and schedule from requirements alone, producing plans that are routinely two to four times off from reality. Project Design addresses this by treating the <strong>system architecture as the foundation for all planning decisions<\/strong>.<\/p>\n\n\n\n<p>The premise: the system architecture <em>is<\/em> the project plan. This is not a metaphor. Components become work packages. Dependencies between components become the project network. Integration points become milestones. The critical path through dependencies determines duration. The staffing required to execute that path determines cost.<\/p>\n\n\n\n<p>Without an architectural decomposition, you cannot identify the components that constitute the work. Without components, you cannot identify the dependencies that constrain sequencing. Without dependencies, you cannot identify the critical path that determines duration. Without duration, you cannot calculate cost. Without cost and risk, you cannot make informed decisions. Every project management failure traces back to planning without designing first.<\/p>\n\n\n\n<p>This premise inverts the traditional relationship between architecture and project management. In conventional practice, project managers estimate effort from requirements, construct schedules from those estimates, and treat architecture as a technical detail handled during execution. In Project Design, the architecture comes first. It must be substantially complete before any meaningful estimation can begin.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Core Triad<\/h2>\n\n\n\n<p>Three roles collaborate throughout the planning process, each bringing a perspective the others cannot provide:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Architect<\/strong> \u2014 owns the system decomposition, identifies components, defines dependencies, analyzes the critical path, and provides technical risk assessment. Responsible for the structural integrity of the plan.<\/li>\n<li><strong>The Project Manager<\/strong> \u2014 owns resource allocation, assesses availability, cost, organizational constraints, and political feasibility. Responsible for the operational integrity of the plan.<\/li>\n<li><strong>The Product Manager<\/strong> \u2014 owns requirements prioritization, serves as the customer proxy, resolves requirement conflicts, and manages stakeholder expectations. Responsible for the value integrity of the plan.<\/li>\n<\/ul>\n\n\n\n<p>In agile contexts, these roles map to Tech Lead, Scrum Master or Delivery Lead, and Product Owner respectively. All three perspectives must be present throughout planning. Removing any one produces plans with blind spots that manifest as failures during execution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Fuzzy Front End<\/h2>\n\n\n\n<p>The period between project inception and the commitment to a specific plan is the fuzzy front end. During this period, the Core Triad produces the architecture, the project design, and the options for management. This period typically consumes fifteen to twenty-five percent of the total project duration.<\/p>\n\n\n\n<p>This is not wasted time. It is the mechanism by which the remaining seventy-five to eighty-five percent is executed efficiently. Projects that skip the front end invariably spend more total time and money, because the cost of planning failures during execution far exceeds the cost of planning itself. Staffing during the front end is minimal \u2014 only the Core Triad. Full team staffing begins after management commits to a plan.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Activity Inventory<\/h2>\n\n\n\n<p>The first step in Project Design is constructing a complete inventory of all activities required to deliver the system. The most common source of estimation error is not incorrect estimates for known activities, but the complete omission of activities that were never identified.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture-Derived Activities<\/h3>\n\n\n\n<p>Each component identified during design \u2014 whether Manager, Engine, Resource Accessor, or Utility \u2014 becomes a work package with a predictable lifecycle: detailed design, implementation, unit testing, code review, and documentation. Each pair of connected components generates an integration activity. Each use case generates a system-level verification activity.<\/p>\n\n\n\n<p>A useful calibration: total activity effort is roughly six times the design effort \u2014 one unit for design, three for implementation, one for unit testing, one for integration. This ratio varies by complexity and team experience, but provides a starting point for cross-checking individual estimates.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Non-Code Activities<\/h3>\n\n\n\n<p>A software project involves substantially more than writing code. Non-code activities often account for thirty to fifty percent of total project effort, yet are routinely excluded from initial estimates. Failing to include them is not conservatism \u2014 it is miscounting. Categories that are consistently omitted:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Planning and design<\/strong> \u2014 requirements analysis, architectural design, technology spikes, proof-of-concept development, and the project design process itself<\/li>\n<li><strong>Organizational coordination<\/strong> \u2014 stakeholder communication, vendor procurement, licensing, legal and regulatory review<\/li>\n<li><strong>Quality and compliance<\/strong> \u2014 security review, accessibility audit, performance and load testing, penetration testing, disaster recovery testing<\/li>\n<li><strong>Operational setup<\/strong> \u2014 CI\/CD pipeline, monitoring and alerting, runbooks, on-call rotation setup, release planning, go-live and cutover, rollback procedures<\/li>\n<li><strong>Knowledge and documentation<\/strong> \u2014 learning curves for new technology, architecture documentation, API documentation, onboarding materials<\/li>\n<li><strong>Post-launch stabilization<\/strong> \u2014 hypercare period, post-mortems, warranty support<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Network Construction<\/h2>\n\n\n\n<p>With the activity inventory complete, the project network is constructed \u2014 a directed graph modeling the precedence relationships between all activities. The network is the structural foundation for all subsequent analysis.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture-Derived Dependencies<\/h3>\n\n\n\n<p>In a VBD decomposition, dependencies flow naturally from the component taxonomy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Utilities<\/strong> have no upstream dependencies \u2014 they form the leaf nodes, enabling early construction starts<\/li>\n<li><strong>Resource Accessors<\/strong> depend on infrastructure and Utilities<\/li>\n<li><strong>Engines<\/strong> depend on Resource Accessors<\/li>\n<li><strong>Managers<\/strong> depend on Engines and Resource Accessors<\/li>\n<\/ul>\n\n\n\n<p>This ordering provides the skeleton of the project network. It is the natural consequence of the communication model: you cannot build what orchestrates before you build what is orchestrated. Non-code activities slot into the network at appropriate positions \u2014 preparation activities precede all construction, test planning runs parallel to early construction, integration testing follows each connected component pair.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dependency Consolidation<\/h3>\n\n\n\n<p>Unconsolidated networks contain redundant dependencies that distort analysis. If activity A depends on B and B depends on C, then A implicitly depends on C and the explicit dependency is redundant and should be removed. Redundant dependencies inflate apparent complexity, produce incorrect float values, and obscure the true critical path. A well-consolidated network has roughly three to four dependencies per activity. Higher counts warrant architectural review \u2014 network complexity often signals architectural coupling that should be addressed before planning proceeds.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Critical Path Analysis<\/h2>\n\n\n\n<p>The critical path is the longest path through the project network from start to finish. Its duration is the duration of the project. No project can be accelerated beyond its critical path regardless of resource availability.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Forward and Backward Pass<\/h3>\n\n\n\n<p>The forward pass traverses the network from start to finish, calculating the earliest possible start and finish time for each activity. The earliest start of each activity is the maximum of the earliest finish times of all its predecessors. The backward pass traverses from finish to start, calculating the latest allowable start and finish time. The latest finish is the minimum of the latest start times of all successors. Together, these two passes define the float of every activity.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Float Analysis<\/h3>\n\n\n\n<p><strong>Float<\/strong> \u2014 the amount of time an activity can slip without delaying the project \u2014 is the objective measure of risk. Activities with zero float are on the critical path. Free float measures how much an activity can slip without delaying any immediate successor. Interfering float is the difference between total float and free float: consuming it delays successors but not the project overall.<\/p>\n\n\n\n<p>The distribution of float across all activities determines the overall risk profile of the project. A plan where most activities have near-zero float is fragile. A plan with healthy float distribution across non-critical activities absorbs normal execution variability without cascading into delays.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Float Classification and Resource Assignment<\/h3>\n\n\n\n<p>Activities are classified into four risk categories based on their float:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Critical (zero float)<\/strong> \u2014 receive the best available resources. Any delay extends the project.<\/li>\n<li><strong>Red (small float, typically under 5 days)<\/strong> \u2014 near-critical. Assigned strong resources and closely monitored.<\/li>\n<li><strong>Yellow (moderate float)<\/strong> \u2014 medium risk. Standard resource allocation.<\/li>\n<li><strong>Green (large float)<\/strong> \u2014 can be staffed flexibly; float can be traded for resource availability.<\/li>\n<\/ul>\n\n\n\n<p>This classification is not just a risk label \u2014 it is the primary input to resource assignment decisions. Getting the best people onto critical and near-critical paths is one of the highest-leverage interventions available to a project manager.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Proactive Risk Management<\/h3>\n\n\n\n<p>The primary reason well-managed projects slip is that non-critical activities consume their float and become critical, creating a new critical path that was not planned for and does not have the best resources assigned to it. Continuous monitoring of float degradation enables proactive resource reassignment before this transition occurs. A sudden degradation in float on a near-critical chain is an early warning signal \u2014 acting on it before activities cross into the critical zone preserves options. Waiting until they become critical eliminates them.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Three-Level Estimation<\/h2>\n\n\n\n<p>Estimation operates at three levels, each serving a distinct purpose. The levels validate each other \u2014 significant discrepancies indicate problems that must be resolved before proceeding.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Activity-based<\/strong> \u2014 bottom-up, activity-by-activity estimation including the complete lifecycle: design, implementation, testing, review, documentation. Estimates are made by the people who will do the work, expressed in five-day increments. Both underestimation and overestimation are harmful. The goal is nominal estimation \u2014 the most likely duration assuming normal conditions and competent execution.<\/li>\n<li><strong>Broadband<\/strong> \u2014 input from twelve to thirty diverse participants through successive refinement rounds. The statistical advantage: the error of the sum is less than the sum of the errors. Individual overestimates and underestimates cancel. The participant pool should include veterans and newcomers, specialists and generalists, optimists and skeptics. In agile contexts, Planning Poker is a form of broadband estimation.<\/li>\n<li><strong>Historical calibration<\/strong> \u2014 comparison against past performance on similar projects to reveal systemic biases. Teams that consistently underestimate integration effort, or fail to account for organizational overhead, will repeat those biases unless historical data surfaces them.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Cost and Efficiency<\/h3>\n\n\n\n<p>Project cost is the area under the staffing curve \u2014 the integral of staffing level over time. Direct costs (salaries, tools, equipment) scale with team size and duration. Indirect costs (management overhead, facilities) scale primarily with duration. The total cost is a quadratic polynomial of time: both excessively compressed and excessively extended projects are more expensive than the optimal point, which typically falls near the all-normal solution.<\/p>\n\n\n\n<p>Project efficiency \u2014 productive effort as a fraction of total effort \u2014 commonly falls between fifteen and twenty-five percent on complex multi-contributor projects. The remainder is communication overhead, coordination, waiting, and context switching. Efficiency estimates significantly above this range likely underestimate communication costs and should be scrutinized.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Schedule Compression<\/h2>\n\n\n\n<p>Schedule compression reduces the project duration below the all-normal solution. There are exactly two mechanisms: making individual activities shorter, and restructuring the network to enable more parallelism.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Activity Compression<\/h3>\n\n\n\n<p>A top-performing resource can complete an activity faster than the normal estimate, but at disproportionately higher cost \u2014 the relationship between time saved and cost incurred is nonlinear. Only activities on or near the critical path should be compressed; compressing non-critical activities consumes budget without accelerating the project. Practical maximum compression typically falls in the range of twenty-five to thirty percent of normal duration, after which creating new critical paths through previously non-critical activities \u2014 staffed with weaker resources \u2014 produces fragility that exceeds the schedule benefit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Network Restructuring<\/h3>\n\n\n\n<p>The more powerful acceleration technique is restructuring the network to enable parallel work: investing in detailed interface contracts that allow implementation against specifications rather than completed implementations, developing simulators that decouple Manager development from Engine and Accessor availability, and pipelining architect design with developer construction. Network restructuring costs more \u2014 simulators must be built, contracts specified in detail \u2014 but schedule reductions can exceed what activity compression alone achieves.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Time-Cost Curve<\/h3>\n\n\n\n<p>Plotting all feasible solutions \u2014 from maximum compression to padded decompression \u2014 produces the time-cost curve. Points below the curve are infeasible regardless of resources. Points on the curve represent efficient solutions. Points above represent waste. Several named points anchor the analysis:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>All-normal<\/strong> \u2014 every activity at nominal duration; lowest-cost starting point<\/li>\n<li><strong>Least-cost<\/strong> \u2014 minimum total cost; typically near all-normal<\/li>\n<li><strong>All-crash<\/strong> \u2014 maximum compression of all critical activities; highest cost on the curve<\/li>\n<li><strong>Least-duration<\/strong> \u2014 absolute minimum achievable schedule, including network restructuring<\/li>\n<li><strong>Death zone<\/strong> \u2014 to the left of least-duration; no amount of resources can achieve these schedules<\/li>\n<\/ul>\n\n\n\n<p>When management requests delivery in the death zone, the project designer&#8217;s responsibility is to communicate this clearly with supporting analysis \u2014 not to find a way to comply.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Risk Quantification<\/h2>\n\n\n\n<p>Risk in Project Design is measured objectively from the float distribution. Risk represents the fragility of the plan \u2014 its sensitivity to activities slipping \u2014 not the probability of specific events occurring. Subjective risk registers are inputs to conversation. Quantified float-based risk is a property of the plan itself.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Criticality Risk Index<\/h3>\n\n\n\n<p>The criticality risk index classifies all activities by float into the four categories \u2014 critical, red, yellow, green \u2014 and computes a weighted average. The result falls between 0.25 and 1.0.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Below 0.30<\/strong> \u2014 over-decompressed; resources are being wasted on excessive buffer<\/li>\n<li><strong>0.30\u20130.50<\/strong> \u2014 comfortable zone; adequate buffer without waste<\/li>\n<li><strong>\u2248 0.50<\/strong> \u2014 design target; optimal balance of schedule efficiency and plan resilience<\/li>\n<li><strong>0.50\u20130.75<\/strong> \u2014 increasing fragility; scrutinize near-critical chains<\/li>\n<li><strong>Above 0.75<\/strong> \u2014 avoid; too brittle to survive normal execution variability<\/li>\n<\/ul>\n\n\n\n<p>Risk is not linear. A risk index of 0.69 is substantially more dangerous than 0.50 \u2014 the relationship is closer to the Richter scale than a percentage. Small numerical differences in the upper range represent dramatically different exposure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Risk Decompression<\/h3>\n\n\n\n<p>Deliberately planning for a slightly later delivery than the all-normal solution reduces risk by adding float to near-critical activities. Even two weeks of decompression can significantly reduce the risk index. The optimal decompression point typically produces a risk index near 0.50. The cost of decompression is modest compared to the risk reduction achieved, making it one of the most cost-effective mitigation strategies available.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Options, Not a Single Plan<\/h2>\n\n\n\n<p>The result of Project Design is not one plan but a set of viable options \u2014 typically three \u2014 spanning the feasible zone of the time-cost curve. Presenting a single plan is not a recommendation. It is a demand. Management cannot make a rational decision between alternatives that were never offered.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Conservative<\/strong> \u2014 longest schedule, lowest cost, lowest risk. Minimal compression, substantial float buffers, accommodates uncertainty in requirements, technology, and team capability.<\/li>\n<li><strong>Balanced<\/strong> \u2014 recommended for most projects. Moderate compression, risk index near 0.50, balances schedule efficiency against plan resilience.<\/li>\n<li><strong>Aggressive<\/strong> \u2014 shortest feasible schedule at highest cost and risk. Maximum practical compression, requires top resources on all critical activities, minimal buffer for absorbing delays.<\/li>\n<\/ul>\n\n\n\n<p>Each option includes quantified values for duration, direct and indirect cost, risk index, peak staffing, critical path identification, milestone schedule, key assumptions, and the top three to five specific risks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Feed Me or Kill Me Decision<\/h3>\n\n\n\n<p>Management reviews the options and makes one of two decisions: commit resources to a selected option, or cancel the project. Both outcomes are valid. Killing a project that cannot be executed within acceptable parameters is a responsible act that preserves resources for better opportunities. The architect recommends. Management decides. Never staff up before this decision. Never let management select an option outside the feasible zone.<\/p>\n\n\n\n<p>Once management commits, scope is locked, resources are assigned, milestones are set, staged delivery begins, and earned value tracking commences against the selected option&#8217;s planned progress curve.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Earned Value Planning and Tracking<\/h2>\n\n\n\n<p>Earned value serves dual purposes: as a validation tool during planning, and as a tracking tool during execution.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Plan Validation \u2014 The S-Curve<\/h3>\n\n\n\n<p>Each activity is assigned a value representing its contribution to system completion. Plotting cumulative earned value over time for a well-designed plan produces an S-curve: slow initial progress during the Core Triad&#8217;s front-end work, accelerating progress during ramp-up and construction, decelerating progress during integration and testing. The shape validates the plan&#8217;s sanity:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Steep early curve<\/strong> \u2014 unrealistic optimism<\/li>\n<li><strong>Flat early, steep late<\/strong> \u2014 unrealistic pessimism<\/li>\n<li><strong>Straight line<\/strong> \u2014 fixed team size; nearly always suboptimal<\/li>\n<li><strong>Very shallow, nearly straight<\/strong> \u2014 sub-critical staffing<\/li>\n<\/ul>\n\n\n\n<p>A well-designed plan produces an S-curve with a coefficient of determination exceeding 0.95 when fit to a third-degree polynomial.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Execution Tracking<\/h3>\n\n\n\n<p>During execution, three lines are tracked: planned progress, actual progress, and actual effort. Their relationship is diagnostic. When progress falls behind while effort exceeds the plan, the project is underestimating complexity. When progress leads while effort is below the plan, the project may be overestimating. When progress falls behind while effort dramatically exceeds the plan, there is a resource leak \u2014 effort is being consumed without proportional progress.<\/p>\n\n\n\n<p>The critical capability is projection: by extrapolating actual progress and effort curves, the project manager can forecast completion date and final cost while there is still time to act. The ability to project is the essence of project management.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Staffing<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">The One-to-One Rule<\/h3>\n\n\n\n<p>Each component is assigned to one developer. This principle enables reliable estimation, clear ownership, and minimal communication overhead. Assigning multiple developers to a single component introduces coordination costs that are difficult to estimate and manage. If a component cannot be built by one developer within the project timeline, it should be decomposed further \u2014 this is an architectural problem, not a staffing problem. Conway&#8217;s Law makes this concrete: interaction between team members mirrors interaction between the components they build. Well-decomposed architecture minimizes both.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Staffing Curve<\/h3>\n\n\n\n<p>A properly planned project produces a staffing curve shaped like a smooth hump: a small core team during the front end, gradual ramp-up as construction begins, a peak during maximum parallel activity, and gradual wind-down during integration and testing. Anti-patterns that indicate poor planning:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Peaks and valleys<\/strong> \u2014 poor float utilization; team members churning in and out<\/li>\n<li><strong>Steep ramp<\/strong> \u2014 exceeds absorption capacity; new team members reduce velocity before they add to it<\/li>\n<li><strong>Fixed team size<\/strong> \u2014 ignores critical path dynamics; over-staffs early, under-staffs late or vice versa<\/li>\n<li><strong>Flat, anemic curve<\/strong> \u2014 telltale sign of sub-critical staffing; earned value approximates a straight line<\/li>\n<\/ul>\n\n\n\n<p>Sub-critical staffing \u2014 resource levels insufficient to staff the critical path \u2014 tends to increase cost by twenty-five percent or more while extending the schedule by a comparable margin. There are no savings from sub-critical staffing. The combination of extended duration and increased overhead consistently exceeds the cost of adequate staffing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Hand-Off Point<\/h3>\n\n\n\n<p>The hand-off point determines where the architect transfers design responsibility to developers. At the senior hand-off point, the architect specifies service-level contracts and interfaces; developers handle detailed design and implementation. This enables pipelining and is faster and cheaper, but requires senior developers. At the junior hand-off point, the architect specifies detailed class-level design; developers implement to specification. The hand-off point must match actual team composition \u2014 using a senior hand-off with a junior team produces architectural drift and quality problems.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Staged Delivery<\/h2>\n\n\n\n<p>Project Design always uses staged delivery. The system is delivered in incremental stages, each producing a working increment that demonstrates progress and enables early feedback. In systems built using Volatility-Based Decomposition, stages align naturally with the component taxonomy:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Infrastructure and Utilities<\/strong> \u2014 the foundation. No upstream dependencies; builds confidence and unblocks all parallel work.<\/li>\n<li><strong>Resource Accessors<\/strong> \u2014 verified data access and external integration. The boundary is tested before business logic is built on top of it.<\/li>\n<li><strong>Engines with their Accessors<\/strong> \u2014 working business logic verified against real data access.<\/li>\n<li><strong>Managers<\/strong> \u2014 complete workflows and orchestration. End-to-end functionality is first available here.<\/li>\n<li><strong>Client applications and user interfaces<\/strong> \u2014 public-facing delivery.<\/li>\n<\/ol>\n\n\n\n<p>Public releases begin after Managers are complete, because only at that point do user-visible workflows function end-to-end. Earlier stages are internal releases that build confidence and enable early integration testing. Milestones are based on integration, not features \u2014 a feature only exists when the components required to produce it are integrated and functioning together.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Agile Alignment<\/h2>\n\n\n\n<p>Project Design is not opposed to agile delivery \u2014 it is complementary to it. The distinction is between planning and execution. Project Design provides the planning discipline that determines what is built, in what order, with what resources, and at what cost. Agile methods provide the execution discipline that governs how the work is performed day to day.<\/p>\n\n\n\n<p>The mappings are direct: Feed Me or Kill Me \u2192 Sprint Zero or PI Planning commitment. Core Triad \u2192 Product Owner, Scrum Master, Tech Lead. Activity inventory \u2192 refined backlog with architectural dependencies. Three options \u2192 release plan scenarios. Broadband estimation \u2192 Planning Poker. Sprint velocity \u2192 earned value rate. S-curve \u2192 cumulative flow diagram or burnup chart.<\/p>\n\n\n\n<p>Good agile combines architectural discipline with iterative delivery. Bad agile uses agile terminology as justification for skipping architecture and project design, producing teams that are busy but not productive. All agile construction techniques \u2014 standups, Kanban, user stories, burndown charts \u2014 are assembly techniques. They are excellent for execution. But they are not design techniques. Just as lean manufacturing depends on meticulous design of both the product and the assembly line, good agile depends on meticulous architecture and project design.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Work Package Classification<\/h2>\n\n\n\n<p>Every activity in the project \u2014 whether it produces code, tests, documentation, or infrastructure \u2014 is a work package. The characteristics of each work package derive from its source: which component tier or activity category it belongs to. Click any type to see its estimation and risk profile.<\/p>\n\n\n\n<div class=\"pd-wp-tool\">\n  <div class=\"pd-wp-sidebar\">\n    <div class=\"pd-wp-group\">\n      <div class=\"pd-wp-group-label\">Backend (VBD)<\/div>\n      <button class=\"pd-wp-btn active\" data-role=\"manager\">Manager<\/button>\n      <button class=\"pd-wp-btn\" data-role=\"engine\">Engine<\/button>\n      <button class=\"pd-wp-btn\" data-role=\"accessor\">Resource Accessor<\/button>\n      <button class=\"pd-wp-btn\" data-role=\"utility\">Utility<\/button>\n    <\/div>\n    <div class=\"pd-wp-group\">\n      <div class=\"pd-wp-group-label\">Frontend (EBD)<\/div>\n      <button class=\"pd-wp-btn\" data-role=\"experience\">Experience<\/button>\n      <button class=\"pd-wp-btn\" data-role=\"flow\">Flow<\/button>\n      <button class=\"pd-wp-btn\" data-role=\"interaction\">Interaction<\/button>\n    <\/div>\n    <div class=\"pd-wp-group\">\n      <div class=\"pd-wp-group-label\">Non-Code<\/div>\n      <button class=\"pd-wp-btn\" data-role=\"planning\">Planning &amp; Design<\/button>\n      <button class=\"pd-wp-btn\" data-role=\"quality\">Quality &amp; Compliance<\/button>\n      <button class=\"pd-wp-btn\" data-role=\"operations\">Operations &amp; Infra<\/button>\n      <button class=\"pd-wp-btn\" data-role=\"knowledge\">Knowledge &amp; Docs<\/button>\n    <\/div>\n  <\/div>\n  <div class=\"pd-wp-main\">\n    <div class=\"pd-wp-card visible\" data-role=\"manager\">\n      <div class=\"wp-tag\">Integration Milestone<\/div>\n      <div class=\"wp-name\">Manager<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Topmost VBD layer. Depends on Engines and Resource Accessors. Consistently on or near the critical path.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Dominated by integration effort. Complexity scales with number and depth of seams, not implementation volume.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Integration failures at seams. Only as stable as every dependency beneath it. Seam defects surface here first.<\/div>\n        <div class=\"wp-item\"><label>Testing<\/label>Integration tests with all Engines and Accessors mocked \u2014 verifying orchestration logic and seam contracts. Fewer unit tests than Engines; less independent behavior to assert.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"engine\">\n      <div class=\"wp-tag\">Core Work Package<\/div>\n      <div class=\"wp-name\">Engine<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Mid-layer. Depends on Resource Accessors and Utilities. Predecessor to Managers.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Highest functional volatility. Widest estimation ranges. Most design iteration. Business logic complexity concentrates here.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Requirements volatility and algorithmic complexity. Functional changes propagate through Engines before surfacing at Manager seams.<\/div>\n        <div class=\"wp-item\"><label>Testing<\/label>Dense unit test coverage \u2014 Engines carry the most independent behavior. Integration tests verify Accessor contracts with mocked responses.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"accessor\">\n      <div class=\"wp-tag\">Boundary Work Package<\/div>\n      <div class=\"wp-name\">Resource Accessor<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Boundary layer. Depends on infrastructure and Utilities. Prerequisite for all Engines above it.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Structurally simple \u2014 a thin translation layer. Estimation uncertainty comes from external system behavior, not internal logic.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>External system reliability, schema changes, and API evolution. Risk is largely outside the team&#8217;s control.<\/div>\n        <div class=\"wp-item\"><label>Testing<\/label>Unit tests validate translation and mapping logic. Integration tests verify live behavior against the actual external system \u2014 real infrastructure is required here.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"utility\">\n      <div class=\"wp-tag\">Shared Infrastructure<\/div>\n      <div class=\"wp-name\">Utility<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Leaf nodes. No upstream dependencies. Fully parallelizable from project start. Unblocks every layer above.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Most stable estimates. Tightest ranges. Behavior is self-contained and well-bounded.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Scope creep. Utilities that absorb logic belonging elsewhere grow beyond their bounds and become hard to test.<\/div>\n        <div class=\"wp-item\"><label>Testing<\/label>Unit tests only. No external dependencies to integrate against. High coverage is straightforward and expected.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"experience\">\n      <div class=\"wp-tag\">Integration Milestone<\/div>\n      <div class=\"wp-name\">Experience<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Topmost EBD layer. Orchestrates Flows and Interactions into complete user-facing workflows. Near the critical path.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Dominated by integration effort across the frontend. Complexity scales with the number of coordinated Flows and the depth of state management.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Integration failures between Flows and across runtime environments. Functional seams at this layer are visible to end users.<\/div>\n        <div class=\"wp-item\"><label>Testing<\/label>End-to-end and integration tests with mocked Flow and Interaction responses. Verifies orchestration correctness and cross-Flow state handling.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"flow\">\n      <div class=\"wp-tag\">Core Work Package<\/div>\n      <div class=\"wp-name\">Flow<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Mid-layer EBD. Encapsulates non-functional concerns \u2014 async state, event dispatch, loading and error management. Predecessor to Experiences.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>High volatility. Non-functional requirements are often discovered late. Estimation ranges are wide.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Non-functional volatility \u2014 performance constraints, async edge cases, and state synchronization complexity that is hard to scope upfront.<\/div>\n        <div class=\"wp-item\"><label>Testing<\/label>Dense unit coverage for async behavior and state transitions. Integration tests verify contracts with Interactions using mocked responses.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"interaction\">\n      <div class=\"wp-tag\">Boundary Work Package<\/div>\n      <div class=\"wp-name\">Interaction<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Boundary layer of the frontend. Translates between EBD&#8217;s internal model and the external environment (React, CLI, native, etc.).<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Structurally simple when the environment is known. Uncertainty comes from environmental variability, not internal complexity.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Environment-specific behavior differences. The same responsibilities manifest differently per platform \u2014 Web, mobile, CLI, native.<\/div>\n        <div class=\"wp-item\"><label>Testing<\/label>Unit tests validate mapping and rendering logic. Integration or visual regression tests verify environment-specific behavior.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"planning\">\n      <div class=\"wp-tag\">Non-Code<\/div>\n      <div class=\"wp-name\">Planning &amp; Design<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Precedes all construction activities. The fuzzy front end. Critical path for the planning phase itself.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>15\u201325% of total project duration. Difficult to compress \u2014 design quality degrades under time pressure. Must be treated as a real deliverable.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Under-investment. Skipping or shortening the front end shifts cost and risk into execution, where recovery is far more expensive.<\/div>\n        <div class=\"wp-item\"><label>Includes<\/label>Requirements analysis, architectural decomposition, technology spikes, proof-of-concept, project design, and the Feed Me or Kill Me review.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"quality\">\n      <div class=\"wp-tag\">Non-Code<\/div>\n      <div class=\"wp-name\">Quality &amp; Compliance<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Spans construction and post-construction phases. Some activities (security review, accessibility audit) gate delivery.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Often excluded from initial estimates entirely. Typically 10\u201320% of total project effort when properly inventoried.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Discovery of blocking issues late in the schedule \u2014 accessibility violations, security findings, or compliance gaps that require rework.<\/div>\n        <div class=\"wp-item\"><label>Includes<\/label>Security review, penetration testing, accessibility audit, performance and load testing, user acceptance testing, disaster recovery testing.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"operations\">\n      <div class=\"wp-tag\">Non-Code<\/div>\n      <div class=\"wp-name\">Operations &amp; Infrastructure<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Environment setup precedes construction. Pipeline, monitoring, and runbook work runs parallel to late-stage construction and gates release.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Routinely underestimated. Complexity scales with environment count, deployment topology, and compliance requirements.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Operational readiness gaps discovered at go-live \u2014 missing runbooks, incomplete monitoring, untested rollback procedures.<\/div>\n        <div class=\"wp-item\"><label>Includes<\/label>CI\/CD pipeline, environment setup (dev\/staging\/prod), monitoring and alerting, runbooks, on-call setup, release and cutover planning, rollback procedures.<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"pd-wp-card\" data-role=\"knowledge\">\n      <div class=\"wp-tag\">Non-Code<\/div>\n      <div class=\"wp-name\">Knowledge &amp; Documentation<\/div>\n      <div class=\"wp-grid\">\n        <div class=\"wp-item\"><label>Network Position<\/label>Runs parallel to construction and extends into post-launch. Not on the critical path but gates handoff and support readiness.<\/div>\n        <div class=\"wp-item\"><label>Estimation Profile<\/label>Consistently deferred and under-resourced. Learning curves for new technology are often omitted from estimates entirely.<\/div>\n        <div class=\"wp-item\"><label>Primary Risk<\/label>Deferred documentation becoming a post-launch crisis. Knowledge trapped in individuals rather than systems.<\/div>\n        <div class=\"wp-item\"><label>Includes<\/label>Learning curves for new technology, architecture and API documentation, onboarding materials, knowledge transfer, hypercare, post-mortem.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n<script>\n(function() {\n  document.querySelectorAll('.pd-wp-btn').forEach(function(btn) {\n    btn.addEventListener('click', function() {\n      var role = btn.getAttribute('data-role');\n      document.querySelectorAll('.pd-wp-btn').forEach(function(b) { b.classList.remove('active'); });\n      document.querySelectorAll('.pd-wp-card').forEach(function(c) { c.classList.remove('visible'); });\n      btn.classList.add('active');\n      document.querySelector('.pd-wp-card[data-role=\"' + role + '\"]').classList.add('visible');\n    });\n  });\n})();\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Where Project Design Applies<\/h2>\n\n\n\n<p>The underlying techniques \u2014 critical path analysis, float-based risk quantification, earned value tracking, compression analysis, and structured decision-making \u2014 apply to any project with a decomposable structure and identifiable dependencies. In software, the architecture provides the components, dependencies, and integration points. In construction, product development, or infrastructure programs, the structural decomposition takes a different form, but the planning discipline is identical: design the project before you estimate it.<\/p>\n\n\n\n<p>Project Design is particularly valuable when the team size exceeds the number of network paths, when management needs defensible options rather than a single plan, when prior similar projects have experienced estimation failures, or when schedule pressure demands a clear understanding of compression limits. Small projects are paradoxically more sensitive to project design errors \u2014 with small teams on short durations, almost every planning mistake becomes critical.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link\" href=\"\/whitepapers\/project-design\/\">Read the Full Whitepaper<\/a><\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Project Design Projects fail not because teams lack effort, but because they lack informed planning. You cannot estimate what you have not designed. The Core Premise Traditional project management estimates cost and schedule from requirements alone, producing plans that are routinely two to four times off from reality. Project Design addresses this by treating the &#8230; <a title=\"Project Design\" class=\"read-more\" href=\"https:\/\/harmonic-framework.com\/es\/methodologies\/project-design\/\" aria-label=\"Read more about Project Design\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"parent":6,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"methodology":[],"class_list":["post-10","page","type-page","status-publish"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"post-thumbnail":false,"hf-card":false,"hf-hero":false},"uagb_author_info":{"display_name":"","author_link":"https:\/\/harmonic-framework.com\/es\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"Project Design Projects fail not because teams lack effort, but because they lack informed planning. You cannot estimate what you have not designed. The Core Premise Traditional project management estimates cost and schedule from requirements alone, producing plans that are routinely two to four times off from reality. Project Design addresses this by treating the&hellip;","_links":{"self":[{"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":6,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":662,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/pages\/10\/revisions\/662"}],"up":[{"embeddable":true,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/pages\/6"}],"wp:attachment":[{"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"methodology","embeddable":true,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/methodology?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}