TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: How to estimate my stories properly and not let them overflow

4 pointsby WeekSpellerover 3 years ago
I am currently struggling with this issue where I am not able to estimate efforts properly for stories and they get moved out of the sprint because I could not finish them on time.<p>There are multiple reasons for that.<p>1. I work on a legacy codebase and our lead told us to refactor along with normal task. It means every story has some wider scope that it looks from the title and description.<p>2. I am a wanna be perfectionist and try to refactor the older code and make it &quot;beautiful&quot; even when I am not told to do it, so I end up with a wider scope than the story was initially planned<p>3. Sometimes when I am in the &quot;zone&quot; and I find the work interesting I do finish task very quickly but when I am not in the &quot;zone&quot; I struggle to even write basic unit tests. This has given me a false sense of &quot;quickness&quot; in my mind and I end up overcommitting. How do I overcome this?<p>I would like some advice from the experienced devs out there. Please help.

5 comments

ksajover 3 years ago
Consider song writing. You have a framework in mind, and a pretty good idea of the end goal. You know from the start if it&#x27;s a ballad or a stadium rocker. But rarely does a song writer sit down and steadily write a song from beginning to end.<p>There are inspired periods. There are tired periods. Starts and fits. Amazing stuff comes out, but there wasn&#x27;t a straight and narrow path taken to get to it.<p>Developing and coding are really similar that way. Some coders may be particularly capricious. But even they aren&#x27;t robots.
jbjbjbjbover 3 years ago
Checklists work well to make sure you’ve accounted for everything you know will usually come up but often get forgotten. These are things like the code cleanup and refactoring.<p>You should try to go quite granular rather than broad when coming up with your estimates. Better to have lots of small tasks, it shows you’ve put enough thought into the estimate and you have enough small tasks that estimation errors will average out.<p>You should also consider the level of detail the requirements have. For example if you don’t have wireframes there’s a lot more uncertainty than if you do. You should put confidence intervals or buffers to account for that.<p>It’s always better to overestimate than underestimate. There’s an asymmetry here where underestimating can cause chaos and overestimating is much less painful.<p>I recommend reading Software Estimation by Steve McConnell.
muzaniover 3 years ago
Your estimates should be way higher with the legacy codebase. Science says 1.7x what you first expect. I&#x27;d pad that to 2.5x if not higher. If you can do it in 1 day, estimate 3 days for it. If you have 1 day to do it, get it done in 2 hours.<p>There&#x27;s a lot of literature around estimates and most of them encourage data. Which is a poor approach for this case because of your points 1 and 3. It&#x27;s helpful to compute, but take into account that the data is off by a lot.
jcun4128over 3 years ago
I&#x27;m still skeptical about the whole Fibonacci thing like why but that&#x27;s my opinion.<p>For our team we story point things together after discussing the task and asking questions.<p>About the scope thing... Mention it or at least do the actual main story first then clean it up if you have time. There is always the code review part to get feedback on how to write it better.<p>Beauty may also be personal bias.
theGeatZhopaover 3 years ago
I&#x27;m sorry, I&#x27;m whether experienced developer neither a programmer. I hope besides mine, you&#x27;ll get right answers to your question :)<p>It looks like there is no proper lead &#x2F; project management in that. I, too, tend to overperfectize my work. Me, too, struggle to be on time. And, too, sometimes I work like superhero and on other days I&#x27;m like a zero.<p>At first, I&#x27;ve identified the parts and events of a workday that cost me time without me being productive.<p>No. 1 Timekiller &quot;smoking and coffee&quot;. On a typical 8h workday I smoke like 10 cigs.. every cig I need about 5min. So I lose approx 1h daily.<p>No. 2 Timekiller &quot;emails, talks&quot;. This does distract you from the &quot;flow&quot;. You again have to find into what you&#x27;ve been up to.. but then, it&#x27;s time for a cig again.<p>This might be your problem too.<p>There are a lot of microdistractions around us. Like hearing music while working (&quot;oh.. I don&#x27;t like this song, let&#x27;s search the one I like...&quot; WASTED!)<p>Or getting notifications, adjusting the volume.. or, too, google an answer for the problem isn&#x27;t the problem by itself, if you get your answer instantly. But if you have to read a ton of comments to get your problem solving answer, you probably have already lost some other ideas out of scope.<p>So, one have to identify this small microdistractions and be aware that anything you do besides reading, understanding, directly rewriting parts of code, is a time consuming distraction.<p>So the best is to minimize breathing :)<p>You can&#x27;t absolutely and effectively minimize distractions, as, being aware that something is a distraction and trying to minimize it, you invest some thoughts &amp; time on that - what in fact is a distraction by itself :)<p>I came up with a strategy to handle that:<p>- know it &amp; accept it<p>- quantify the needed time for the tasks. Like smoking a cig approx. 5 mins, writing answer emails 5 mins, drinking coffee 2 mins. .. and so on. Every Microtask is viewed in bigger context and so is the time spent.<p>By that you get the feeling for the daily work&#x27;s time flow. It&#x27;s all just about the time awareness.<p>The next part of my strategy handling that:<p>- make up a &quot;house&quot; in your mind with a few rooms.<p>Sounds strange, but this is how our brain works. We think in &quot;boxes&quot;&#x2F;&quot;rooms&quot;&#x2F;&quot;spaces&quot;. Try it by yourself:<p>Sometimes, you want to do something, stand up, go there - when you&#x27;re there, suddenly you can&#x27;t remember what you wanted to do anymore. Have you experience this once or twice?<p>... Just go back into the room&#x2F;place where you came up with the idea you forgot, and It will strike you again :)<p>So, analogue to this brain workings, I made up a house in my mind with dynamic rooming for ideas &amp; problems i work on in one room, drinking coffee in the other - by actively switching the body &amp; mind to the respective rooms, when doing the respective tasks.<p>By that I can separate distractions from the actual problem-solving. By that I can imaginary lockup my working room and being in a state of pure concentration - actively minimizing all distractions that are in the other brain rooms :)<p>I needed quite some time to incorporate this into my thinking - I think the most time needed, was to realize where the problems are and to do the abstraction to the room level :)<p>.. this is my productivity booster method. It doesn&#x27;t account to creativity, though.<p>For creativity, one needs chaos - pure chaos! With ideas buggling around like worms (yes, ideas, they&#x27;re longish, not roundish like flies, so they&#x27;re not flying around xD)<p>For that I have developed a different method: - filter<p>But that&#x27;s quite difficult to explain and would touch the database max capacity.<p>Creativity is completely different from structured.<p>If you need to code and refactor at the same time, you mix creativity with plain, I call it, &quot;translation&quot; of old legacy code. This both things are opponents as the second requires pure 1-to-1 work, while the first, explosions of ideas, playing, mixing, deleting... Which is a distraction by the definition.<p>You&#x27;ll need a playroom for that :)<p>Every playroom is usually equipped with games &amp; plays, so you can start at once.<p>In your context it would mean: First translate, then refactor. But this means 2x work.<p>Or, first, the legacy code needs to be analyzed and understood properly. Then &quot;the refactoring&quot; takes place as a &quot;rewrite&quot; - having the legacy codes structures by side for look ups of disered return values or similar...<p>But, that&#x27;s the problem of the lead to recognize that. It&#x27;s a problem of the whole team, so everyone knows what parts are when and how rewritten and what classes&#x2F;objects&#x2F;functions are to be expected from the fellow coworkers...<p>That&#x27;s how I would do that haha but I&#x27;m completely unexperienced in working in teams :(<p>So, dunno if this could help you and dunno whether it&#x27;s completely bullshiat - what this probably can show you, is:<p>every brain is unique and you have to find your own way to handle that. There are no quick solutions or advices for this kind of problem-solving...<p>One answer also could be: Train your programing skillz. While true, it&#x27;s a no-brainer.<p>Peace.