Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "time estimation"
President of my employer: how long do you thing it will take to complete x type of migration?
Me: I don't know. We've never done one.
President: well how long do you think it will take based on your experience?
Me: I don't know. I've never done one.13
ESTIMATING FUCKING HOURS.
Well not literally, that only takes 10 minutes.
But software estimation... anyone pretending to be good at it is a dirty liar. Adding a button? Uh, let's say 2 hours, I mean I gotta poop in between as well, and it's probably some broken bootstrap theme with hacked custom margins.
Building a commenting system coupled to an ancient CRM? Uh... maybe one day? Maybe a month? I don't even know what the CRMs looks like? You won't show me because "that's irrelevant"?
WELL THEN I DON'T FUCKING HAVE A CLUE.
And in the time we spent on discussing time estimations, I could have written like half of the feature... or zero... because you still haven't fucking shown me what the CRM API looks like.
YOU KNOW WHAT I'LL GIVE YOU AN ESTIMATION. ME. VACATION. DONE IN 6 WEEKS.7
"How long will it take us to build X?"
"How long is a piece of string?"
Very similar indeed. Time estimates are insanely hard even with all the cards on the table, be sure to lay them all out before asking.1
You guys know the concept of devs giving a time estimation to their project manager, so that he can give a time estimation + pricing to the client, so the PM would leave them alone until the deadline is about to arrive, right?
Well, my PM doesn't.
Today is Tuesday. You friggin' gave the client an estimation of 5 days about this new project, and we started working on the project on Sunday, 2 days ago.
WHY THE FUCK ARE YOU ASKING ME ABOUT WHEN WE THINK WE'LL BE DONE SINCE YESTERDAY THEN?! IT'S NOT LIKE I'M JERKING OFF TO PORN OVER HERE FFS.7
I remember a bad freelance experience.
It was a sophisticated mobile applications (many UI, many customization, many APIs to integrate with). since the client have many future freelance projects, I give him 3 weeks as estimation time, and one day per week I work on its place to evaluate the progress and sync our work.
I worked hard, the quality was excellent.. but he kept ask for "small" changes and "small" features.. at first it was OK, and I was planning to give him a good example to profit from his future projects.. but he toke advantage for that and the same app extended from 3 weeks to 2 months and more.. he barely added a little to the initial price..
So what I did? I uploaded the code to a private repository in Bitbucket, added him to the team.. I wrote few lines how to sign and publish the app.. aand disappeared.
his luck, I disappeared from the country, I immigrated to another country for best job opportunity.2
The 5 stages of project management:
1 - the Mission:
Receive a project
2 - the Vision:
Over confidence and optimistic time estimation. Tell people how quick you can finish it.
3 - the Climax:
Adding unnecessary features. Try to be innovative. Think different. Feeling like a Rockstar.
4 - the Bargain:
Does not aware deadline is not far away. Reverse all unnecessary or impractical moomshot features. A bit stressed
5 - the Embarrassment:
Unpredicted obstacles or incidents. Late delivery or fail. Feel like a loser.1
If your boss asks you for an estimation don't follow your gut coz your gut sucks. Ask for time to analyse before giving any estimation. And yeah don't forget external factors such as :
- third party tool down (github I'm looking at you)
- updates (windows, IDE, etc.)
- 90% of the time it doesn't work
- if it involves front dev just go ahead and double your estimation
- YOUR BOSS THINKS YOU OVERESTIMATED
I'm on my first free lance project, and devRant asks me for my horror story. -_-
Well, I undersold myself and gave such a stupid time estimation. Fortunately, the client was smarter, and he wants just half the work in same time period and will still gave me the same amount xD2
So, 9months ago my scrum master came to me and asked me to spearhead a "little" API... 2months work, no worries... I started the analysis and quickly discovered that that estimation was grossly understimated...
I convinced them that it was not 3 months but 4. I alerted to the design mistakes that were made, I pushed changes and made sure the entire project worked, was stable and the best it could be... 4 months passed, target proposition donne... Several change requests since then and we have been implementing braindead CR after CR for 5 months... Most CRs came from design issued I raised but we're ignored at the time just to come back and bite them on the ass...
Horrible design, bad documentation, amateur requirements analysis... However, delivered successfully with great acceptance...
What was my reward? They rearranged my team, removing virtually every good performer.
Never did I receive a "good work" or a "thank you"... I don't want one, I am just doing my job... However can you please not fuck me in the ass!? I now have 2 projects to spearhead at the same time and virtually no team... I can only handle so much!!!
Some good news? Ok, just announced I'm the project owner of a new project, that we will take advantage and make a 2 in one.... Great! Some more work for my lap! Thank you for the workload raise!... Ok, timewise? One month! And I still don't if that includes implementation....
TL DR; did my job, got fucked with more work...
Sorry for the vent, just wandering if I should try and not do my job...2
We as developers often get a lot of pressure considering the deadline for $someProduct™.
But sometimes it happens to me that I need less than half of the estimated time for development of $randomFeature or $product™.
Do you think it is fair to (rarely) procrastinate a bit in order to not show your boss that it needed much less time, so he will not lower his time estimations for future stuff?2
The current project in working on. It is a complete nightmare.
It is the first large scale project that our company does. We were used to smaller projects that are basically fixed priced, and that's why my boss treated this one the same. Big, big mistake.
My CTO and another crew member gave an estimation of 8-9 months to finish this app. My boss said "eh" , and told the client we'll be ready in 5 months. What the actual fuck bro.
Because of that, we had no time for implementing tests, no time for proper QA and no time to cover edge case scenarios.
My CTO decided to go with Angular2. We hired this freelancer who supposedly knew Angular 2 but eventually did 3 weeks' work in 3 months. He got sacked and we had 2 months left for delivery. At the time, not even 20% of the app was actually ready.
Then I got into the project to replace the freewanker who got sacked.
I spent the first 2 weeks fixing the ridiculous amounts of spaghetti code and unoptimized builds he made while my CTO took care of the server side.
Now, 4 months later (7 months into the project), we still have the mobile version to work on and the desktop version isn't ready yet because we keep finding bugs BECAUSE THERE WASN'T ENOUGH FUCKING TIME FOR TESTING.
To make matters worse - my CTO got married 3 months ago and took a vacation overseas a month ago, for a full month. He's coming back next week.
So the deal is pretty much this right now -
- My boss is stressed as fuck, which means he's stressing me out and I'm really about to fucking lose it
- I'm taking care of this whole friggin' thing alone
- My boss wants me to put more hours into this, after spending 2 whole weeks (3 months ago) working 13 hours a day. I'm not going back to that situation, not a fucking chance. Not my CTO either.
- I absolutely love my boss and I understand where he's coming from, and I can't be mad at my senior because he got married (and who wouldn't want a long honeymoon?), but if this thing goes on, I'm gonna have to abandon ship. I've already had some interviews and it turns out that my years of experience are really noticeable, which feels nice.
In short - FML.
I hope my boss learns something from all of this. I'm moments away from just giving up after these last few months.
That said, I would be happy to receive some tips regarding the management of large scale projects. Whether it's pricing, estimations, QA/testing related, whatever. I welcome every little piece of advice, because I want to educate my boss if I do eventually decide to stay there.
Thanks ranters. ❤2
My first project it’s an emotional roller coaster. I was a little trainee/ junior dev at my job with a little more than a month learning RoR and one day my tech lead receives an email from the big boss saying: “We got a big client who wants a total redesign of his web and we said yes we can do it in a month, so please check if anything it’s reusable”, after reading my tech lead said to me “Do you want to help me with this ?” And well, we spend like 2-3 hours checking all the controllers, views, assets, etc. We conclude that the project was mostly front end changes and the back end will stay the same, so yeah it can be done in a month. The next day in a meeting with all the team I was nominee to be the person in charge of that project, because it was an easy project and all my teammates hate to do front end stuff, so I take the challenge. After that I met the Project Manager, another guy who recently start as PM about a month, so yeah we were two new guys who need to handle the project of a big client, nothing can go wrong. We did the planing, I give an estimation ( first one in my life ) for the tasks and added like 4 hours in case anything goes wrong. Then the first sprint came by, and I couldn’t finish it because the time given to some features was to low and the “design” was a mockup made by the PM, ok, no problems, we add more time to the tasks and we ask for a real design. At the half of the sprint the client start adding more and more stuff, the PM doesn’t talk back, just say yes yes yes. Then in a blink of an eye the easy project became a three months projects with no design at all, two devs ( a new guy who recently begin as dev enter the project ), just mockups and good hopes. But somehow we did it, we finish it! Nope. The early Monday of the next week I received an email of the PM saying we would have a second version and the estimation of the tech lead was a minimum of six months ( that became 8 months). This time was hell, because the client doesn’t decide what the hell he wants so a task would take a couple of days more or so, the PM became the personal bitch of the client, but it wasn’t his fault, because we later knew that the company became partner with this client and because of that the PM didn’t have too much choice :/, the designs were cool, but they weren’t on time ever, our only design guy had to do designs to our project and another 5 projects of the company, so yeah, we weren’t the only ones suffering. At the end we survive, the project was done and the client somehow was happy. Of course the project didn’t end and it was terminated half a year later, but I’ll always remember it because thanks to this project I was given the opportunity to work as a Front end dev and I’m happy still working as one.
MENTORS - MY STORY (Part III)
The next mentor is my former boss in the previous company I worked.
3.- Manager DJ.
Soon after I joined the company, Manager E.A. left and it was crushing. The next in line joined as a temporal replacement; he was no good.
Like a year later, they hired Manager DJ, a bit older than EA, huge experience with international companies and a a very smart person.
His most valuable characteristic? His ability to listen. He would let you speak and explain everything and he would be there, listening and learning from you.
That humility was impressive for me, because this guy had a lot of experience, yes, but he understood that he was the new guy and he needed to learn what was the current scenario before he could twist anything. Impressive.
We bonded because I was technical lead of one of the dev teams, and he trusted me which I value a lot. He'd ask me my opinion from time to time regarding important decisions. Even if he wouldn't take my advice, he valued the opinion of the developers and that made me trust him a lot.
From him I learned that, no matter how much experience you have in one field, you can always learn from others and if you're new, the best you can do is sit silently and listen, waiting for your moment to step up when necessary, and that could take weeks or months.
The other thing I learned from him was courage.
See, we were a company A formed of the join of three other companies (a, b, c) and we were part of a major group of companies (P)
(a, b and c) used the enterprise system we developed, but internally the system was a bit chaotic, lots of bad practices and very unstable. But it was like that because those were the rules set by company P.
DJ talked to me
- DJ: Hey, what do you think we should do to fix all the problems we have?
- Me: Well, if it were up to me, we'd apply a complete refactoring of the system. Re-engineering the core and reconstruct all modules using a modular structure. It's A LOT of work, A LOT, but it'd be the way.
- DJ: ...
- DJ: What about the guidelines of P?
- Me: Those guidelines are obsolete, and we'd probably go against them. I know it's crazy but you asked me.
Some time later, we talked about it again, and again, and again until one day.
- DJ: Let's do it. Take these 4 developers with you, I rented other office away from here so nobody will bother you with anything else, this will be a semi-secret project. Present me a methodology plan, and a rough estimation. Let's work with weekly advances, and if in three months we have something good, we continue that road, tear everything apart and implement the solution you guys develop.
- Me: Really? That's impressive! What about P?
- DJ: I'll handle them.
The guy would battle to defend us and our work. And we were extremely motivated. We did revolutionize the development processes we had. We reconstructed the entire system and the results were excellent.
I left the company when we were in the last quarter of the development but I'm proud because they're still using our solution and even P took our approach.
Having the courage of going against everyone in order to do the right thing and to do things right was an impressive demonstration of self confidence, intelligence and balls.
DJ and I talk every now and then. I appreciate him a lot.
Thank you DJ for your lessons and your trust.
Damit I always get in trouble after I give a deadline to any task :/
My estimation of work done is poor4
I know that everyone rants about clients "knowing how long it takes.."
But a customer says "it shouldn't take long because it is similar to .."
Just why..just because it looks somewhat similar doesn't mean it is just as simple/hard to make..2
feel stupid bcoz you underestimated the time to complete the project, feel even more stupid when you do it again and again1
During my time at university my friend got me a job, he said. He explained there was someone who was a member of some student club where they needed a website. Me and this person met and discussed the scope of the project, "nothing major but it will take some time" I thought to myself.
I gave her a rough estimation and told her my rate (extremely cheap). She looked at me and said "I was thinking a case of beer would be enough?".
We were both students, but seriously?? I almost contacted a proper company to give them the details just to get a real cost estimation to shove it in her snug fucking face!
Talking about some new feature he haven't totally thought about. so i tell him to think about it.
Talking about a bug, but can't reproduce it.
Talking about another enormous new feature but halt it after hearing the initial estimation.
Total time waster = 1.5 hours for every day.
DON'T LET CUSTOMERS WASTE YOUR DEVELOPMENT TIME.
instead of talking - use project tracking software (i.e. JIRA)
Screw Scrum, screw it very much. Is it a task or a story? Oh let's make it a story to track points. What are points, really? *20 minute grilling always follows* Well they're kind of a roundabout way of talking about time without talking about time, mkay? But last time 2 points took you a day, what gives now? What do you mean points are for internal use, but how will management plan ahead for next quarter? Ok, let's mix in all those new people, and propotionately bump the expectation for the sprint, mkay? Yeah, they did 34 points per sprint over there, we'll just add those in. Oh, and by the way, after the 4-day estimation session we had where everyone was seizuring, I scheduled us at 645 points for the coming quarter, mkay? Don't worry, I added 15% for the "unexpected dtuff" so you're safe. Fuck you scrum, scrum-fall, whatever you are. Lost a dev lead role once for being honest about it after a year with a team that loved me, and projects completed more or less on time. Been reconsidered for a dev lead role for being honest about it in another place. Somebody else peddle this kool-aid, this one prefers a walk-on role in the wall to a lead role in the cage.5
Perfect time estimation.
Handy side effect would be all specs become frozen and sealed the instant they're agreed on
Well I'm back on this stupid project with this stupid Product Owner and I really hate this, it really demotivates me.
I was assigned to this project (data analytics) for like 6 months, working alone with this stupid PO that knows nothing about team management or project management.
The guy had a "methodology" where he established all task to be done daily and would not tell me what we have to do in the entire project but instead would tell me day by day all the tasks to be done in each day. This means that HE was the one making the time estimation which is plain wrong!.
Anyways, I talked to him and told him that I need to have a wide overview of the project in order to be able to make a good time estimation, and it kind of worked.
But the guy is a pain in the ass, calls me every 4 hours to "talk" about the project and texts me every hour to check "how are we doing?".
This project was killing me, I had no motivation to work on it, I hated every minute of it, I didn't like it at all to the point my boss (not him) talked to me and asked me what was wrong with me. I told him: This is not the project for me. He told me: Ok let's try to move you to another project.
After six months of agony, the project was stale (customer approval, paperwork, blah, blah) I was assigned to two other projects that I liked, more software architecture and development, not data analytics.
And last week my boss came back to me with "well, the project was approved so we need you back at it".
WHAT PART OF I'M NOT THE RIGHT GUY FOR THIS PROJECT DIDN'T YOU GET?
Now I'm again with this dude, calling me, texting me, sending me infinite emails, asking for minutely updates...
I really don't want to be working on this project.
Just discovered "git hours" (https://github.com/kimmobrunfeldt/...) and it's as simple as awesome! I'm gonna start using it in combination with RescueTime to check how accurate are my estimations... Any thoughts, suggestions or experiences on this, guys?
Is it normal that devs go back home on time? Or it's only me sometime I didn't have any progress at the end of the day coz I stuck at something? Luckily my manager is cool with my 1 day extra for time estimation. Haha.