Skip to content

Instantly share code, notes, and snippets.

@byme8
Last active May 5, 2025 18:16
Show Gist options
  • Select an option

  • Save byme8/3a4d9e5a20afa82cad755645e34cf2b1 to your computer and use it in GitHub Desktop.

Select an option

Save byme8/3a4d9e5a20afa82cad755645e34cf2b1 to your computer and use it in GitHub Desktop.
Estimation

Experienced Team

Experienced professionals never proceed directly to completion, but follow from the starting point along an arc, consisting of points equidistant from both the starting point and the result point (circumference).

After traveling halfway, the team usually stops to think and rushes toward completing the task. (fig. 1) Thus, the formula for expected execution time looks like this:

t = R × (π + 1) + β

where t is the time spent to achieve the goal, and R is correctly estimated initial timeframes for project completion.

Unexperienced Team

Here everything is simpler - an inexperienced team covers with their chaotic movements the entire area formed by the figure of the experienced team. The formula is also trivial:

t = R² × π + β

Pay attention to the constant β - this is Bobyk's universal number. According to Bobyk's theorem, any literate specialist working alone in panic will write the entire project in β time, regardless of the complexity of the project itself. It has been empirically determined that Bobyk's number equals about two weeks.

Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 1024 1024"
version="1.1"
id="svg1"
sodipodi:docname="estimate.svg"
width="1024"
height="1024"
inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<rect
x="18.04619"
y="667.70903"
width="214.54915"
height="56.143702"
id="rect8" />
<marker
style="overflow:visible"
id="RoundedArrow"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Rounded arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
id="path8" />
</marker>
</defs>
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.49872023"
inkscape:cx="83.212987"
inkscape:cy="556.42419"
inkscape:window-width="1512"
inkscape:window-height="916"
inkscape:window-x="0"
inkscape:window-y="38"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<ellipse
cx="512"
cy="512"
fill="none"
stroke="#3498db"
stroke-width="21.8536"
id="circle1"
style="stroke:#c9c9c9;stroke-width:16.1052;stroke-dasharray:none;stroke-opacity:1"
rx="439.94742"
ry="439.94739"
inkscape:label="Circle" />
<path
d="M 512,950 C 396.07308,949.97853 280.97629,899.06473 199.01121,817.10014 117.04614,735.13554 71,623.97681 71,508.07211 71,392.16741 117.04614,281.00867 199.01121,199.04408 280.97629,117.07948 396.07308,72.021472 512,72 v 384.07213"
fill="none"
stroke="#ff7f00"
stroke-width="21.8558"
id="path4"
style="stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#RoundedArrow)"
sodipodi:nodetypes="cssscc"
inkscape:label="Exp" />
<path
style="fill:#ff00fd;fill-opacity:1;stroke:#00c5ff;stroke-width:8.727;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#RoundedArrow)"
d="M 512,570 V 950"
id="path5"
sodipodi:nodetypes="cc"
inkscape:label="R" />
<ellipse
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:8.727;stroke-opacity:1;stroke-dasharray:none"
id="path2"
cx="511.99997"
cy="512"
rx="11.636358"
ry="11.63638"
inkscape:label="Target" />
<ellipse
style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:8.727;stroke-dasharray:none;stroke-opacity:1"
id="path2-5"
cx="511.99985"
cy="951.99988"
rx="11.636358"
ry="11.63638"
inkscape:label="Start" />
<text
xml:space="preserve"
style="font-size:42.6667px;line-height:0;font-family:'Fira Mono for Powerline';-inkscape-font-specification:'Fira Mono for Powerline';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
x="553.41656"
y="743.90411"
id="text5"
inkscape:label="R Text"><tspan
sodipodi:role="line"
id="tspan5"
x="553.41656"
y="743.90411">R</tspan></text>
<text
xml:space="preserve"
style="font-size:42.6667px;line-height:0;font-family:'Fira Mono for Powerline';-inkscape-font-specification:'Fira Mono for Powerline';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
x="517.3241"
y="1006.5764"
id="text6"><tspan
sodipodi:role="line"
id="tspan6"
x="517.3241"
y="1006.5764">Start</tspan></text>
<text
xml:space="preserve"
style="font-size:42.6667px;line-height:0;font-family:'Fira Mono for Powerline';-inkscape-font-specification:'Fira Mono for Powerline';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
x="617.58069"
y="521.33441"
id="text7"><tspan
sodipodi:role="line"
id="tspan7"
x="617.58069"
y="521.33441">Target</tspan></text>
<text
xml:space="preserve"
id="text8"
style="font-size:42.6667px;line-height:0;font-family:'Fira Mono for Powerline';-inkscape-font-specification:'Fira Mono for Powerline';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect8);fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:42.6667px;line-height:0;font-family:'Fira Mono for Powerline';-inkscape-font-specification:'Fira Mono for Powerline';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
x="-517.4505"
y="50.044384"
id="text9"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan9"
x="-517.4505"
y="50.044384">t = R × (π + 1)</tspan></text>
</svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment