News for hackers. Stuff that matters.
Re:What to do when tech jobs go bad by some_account on Monday February 19, 2018 @10:36AM (#16413460)
I don't think your solutions will work. It's impossible to get time estimates right for building software. Too many variables in solving the problems, not only in writing code and testing it, but also including open office disturbances and meetings.

I understand product owners and businesses wants estimates but software engineering is not making a car. Forcing programmers to estimate their every task makes for a very bad work environment. They are not robots.

Re:What to do when tech jobs go bad by padobson on Monday February 19, 2018 @10:44AM (#16413505)
My solution to this has always been to break down the units of work into smaller pieces. Super small. Painfully small.

It requires more project management, but it's much easier to quarantine problems and explain them to stakeholders.

My rule of thumb is 4 hours. If you think it will take longer than 4 hours, it should be broken down. Ideally, most tasks will have estimates of 1 hour.

That way, when a 2-hour task requires 2 weeks to complete, you can point to the specific task and its challenges. It provides an easy explanation for why the release was late, why the requirements were too ambitious, etc.

Re:What to do when tech jobs go bad by ethnicify on Monday February 19, 2018 @10:52AM (#16413562)
This is micromanagement. You're describing micromanagement.

Engineers do not need to be managed down to the hour. Good grief.

Re:What to do when tech jobs go bad by janlaureys on Monday February 19, 2018 @12:09PM (#16414086)
This gives me PTSD to a consulting job I had as a web developer where every 15-30 minutes the project manager would come up to my desk to ask what I've been up to and what I had achieved (in the last 15 minutes). He'd also get upset when the feature I was working on wasn't finished yet since the last meeting.
Re:What to do when tech jobs go bad by EKLM-ZK88 on Monday February 19, 2018 @03:59PM (#16415699)
I've personally witnessed the VP of product stand over our senior engineer's shoulder while he tried to debug some serious bug that we couldn't reproduce in dev/stage for hours until it was done. That same engineer also had the CEO stand over his shoulder and actually ask "You don't mind if I stand here and watch do you?" The same CEO constantly brags about his "10 years of experience building companies with successful exits"(10 years of experience vs 1 year of experience ten times), and calls his company the "Amazon of the south". Reading this article gave me flashbacks, but it does help to know that it wasn't just that company.
Re:What to do when tech jobs go bad by matte_black on Monday February 19, 2018 @01:14PM (#16414515)
With an interruption every 15 minutes, sounds like you would never reach a state of flow.
Re:What to do when tech jobs go bad by veidr on Monday February 19, 2018 @11:09AM (#16413665)
In my own experience as a software developer, it is incontrovertibly true that the smaller the unit I/we use to break things down, the more accurate the resultant time estimate becomes.

However, as padobson notes, there's an overhead associated with breaking complex things down into smaller units. There's a point at which it becomes counterproductive.

I feel like I have, over the years, sometimes crossed that line.

(And, other times, not gotten close enough to that line and been surprised by weeks/months of schedule disintegration.)

Re:What to do when tech jobs go bad by analog31 on Monday February 19, 2018 @12:25PM (#16414185)
I wonder if this is because one never rounds down to zero, so that finer grained estimates automatically pad themselves. I've noticed that estimates run higher and higher, the longer the planning meeting lasts.
Re:What to do when tech jobs go bad by scarface74 on Monday February 19, 2018 @06:59PM (#16416781)
I was over a project and part of releasing the next feature, I decided that it was best to tackle some technical debt based on my now knowing a better way than I did when I first implemented the system - basically bringing it up to our current standards that involved a lot more automation and other features that would make my life easier.

I wrote down in detail all of the tasks involved just to help me estimate like I always did. By this time we were transitioning company wide to scrum.

Every task I put in was scrutinized by the contract “scrum master” as it wasn’t part of the MVP even though I knew it wouldn’t affect the schedule since I had prior work I could base it on.

The rest of the dev team had the same issue. I got tired of fighting and the scrum master was getting in our way. I told them to do what they thought was right and run it by me first if it was anything major. None of the things we were trying to do were customer facing, they were all backend architectural things.

I tried to fight the good fight but then had the epiphany - I didn’t have to. I’m the dev lead, I do the code reviews and no one higher than me will be looking at the code. I told them not to be detailed in the how within our project tracking system.

Re:What to do when tech jobs go bad by wil421 on Monday February 19, 2018 @07:56PM (#16417052)
Really love your comment as it strikes home. Just transitioned to scrum last year and have a terrible PM I mean Scrum Master. No help at all just and he only makes sure Scrum meetings happen. Also he’s way overconered about velocity and story points.

Another senior dev told me the same advice you realized. Now we just create more generic stories. He’s stared to go story by story and wants to know how it meets a business objective.

Our stuff is extremely customer facing and time critical. I welcomed Scrum over Agile but a bad Scrum Master can kill the benefits.

Re:What to do when tech jobs go bad by Retric on Monday February 19, 2018 @11:54AM (#16413966)
Smaller tasks have less accurate estimates. If you say something takes 1h and it actually takes two days that's ~16x as long or a week long task taking 4 months. All it takes as a small corner case or odd bug that you did not consider and suddenly your estimates are worthless.

The only thing that makes small estimates seem better is the worst case tends to be less time, but overall they don't help.

Re:What to do when tech jobs go bad by shagie on Monday February 19, 2018 @12:34PM (#16414243)
An estimate is not a single number. Rather, an estimate says “it may take 1h if everything goes well, it may take 16h if things go bad.” This is then followed up with “at 1h, I’ll update with either a done or a revised estimate.”

Giving single numbers for an estimate with uncertainty is bad for all parties.

Additionally, with experience one can get better at giving estimates with less uncertainty for well known tasks and recognize the uncertainty for other tasks.

Re:What to do when tech jobs go bad by Retric on Monday February 19, 2018 @02:15PM (#16414968)
That's not relevant. Low / high estimates can be written in this form: X hours +/- Y%. 1-3 days seems wide but it's just 2 +/- 50%. 1 hour or 2 days ~= 1 day 1 hour +/- 90%.

AKA Y is much higher when you deal with low hour estimates.

This is most noticeable when you have lot's of tasks. If you think 200 tiny tasks may take 1 month or just over 1 year that's an almost useless estimate.

Re:What to do when tech jobs go bad by ajb257 on Monday February 19, 2018 @12:41PM (#16414297)
It's not micromanagement. It's planning. There's nothing wrong with those tasks having no-user facing changes, or giving all the tasks to acheive a higher-level goal to one developer. However, going in and making those tasks forces you to think over the problem properly and come up with a game plan.

If you don't know a given approach will work, sometimes that's best to timebox some experimentation time (say an afternoon), but then you can also say to your PM/EM 'ok, we need a little time to work out how long it's going to take', and decisions can be made accordingly as to priorities.

Very little of being a software engineer is about writing code. That's just typing. The skill is being able to come up with a coherant plan to solve a problem. That's why architects don't tend to write a lot of code.

Re:What to do when tech jobs go bad by padobson on Monday February 19, 2018 @11:01AM (#16413616)
It's actually not micromanagement. It's micro-documentation, which provides more autonomy to the developer, not less.

The micro-tasks I'm describing go into a project management system. They are either assigned to or picked by developers who complete and document the micro-tasks on their own. Because the tasks are so small, there is almost no management of developers required.

Finally, it's trivial to find out where project estimates went wrong, because any hidden challenges are well-quarantined in the micro-tasks. If the task isn't well documented, it's still pretty easy to go to the developer and find out why it took longer than estimated.

Re:What to do when tech jobs go bad by alexashka on Monday February 19, 2018 @11:53AM (#16413957)
In no-developer-experience-manager's worldview, this is actually a good idea.

If development was so easy that a manager who doesn't understand programming can break developer tasks down into small chunks - we'd live in a completely different universe!

In reality, management breaking anything down into smaller tasks, instead of people who will actually do the work, breaking things down, is going to lead to ZERO architecture and a shit codebase, 100% of the time.

That's if you're lucky and the project is a clean slate.

Existing codebases are full of code smells that'd take days to comprehend, days to chase down and comprehend what the actual requirements were/are because those are never properly documented, and then re-write that 'micro-task' so that the next developer doesn't have to spend their days in hell.

Oh, this'd need to now be tested, there'd be new bugs, and those would need to be fixed also.

So instead, in the real world - your micro-task gets handed down, the developer doesn't bother understanding what the existing codebase is doing, they just patch it until it works, contributing to the unmaintainable piece of garbage that all developers with any self respect left in the world hate.

Since only the brave/crazy ones will say 'this micro task will take 2 weeks instead of 2 days because the existing code is garbage', those brave ones will get replaced by those who will say 'yes, 2 days'. Your project will need more and more time per task, and more and more developers doing maintenance, but the managers will continue reporting successful micro-tasks completed on time!

I've just described corporate programming and how you're directly contributing to the hell that it is.

Re:What to do when tech jobs go bad by dragonwriter on Monday February 19, 2018 @11:57AM (#16413981)
> In no-developer-experience-manager's worldview, this is actually a good idea.

More precisely, a no-development-management-knowledge manager’s worldview.

While obviously development experience can be a source of development management knowledge, there's no reason it should be the only source, and development managers ought to be screened for job skills as much as developers are.

Re:What to do when tech jobs go bad by alexashka on Monday February 19, 2018 @02:25PM (#16415032)
I don't see any reason why it shouldn't be the only source - even at McDonalds, managers graduate from being regular burger flippers.

That's why McDonalds works, and software development is a perpetual disaster - McDonalds understand that to manage even something as simple as flipping burgers, you need to have done it yourself first!

It's the arrogance of business school management that's responsible for a great deal of turmoil across many areas of everyday life. Just imagine going to school for something that's not difficult, to 'learn' how to boss people around. For good pay!

Isn't that the dream of every non-creative, lazy, half-wit you never want managing anybody ever? Yes... yes it is...

This is a recent phenomena on a mass scale and it isn't going to last - getting high rank without having earned it has always been a complete disaster, just look at any point in history.

Re:What to do when tech jobs go bad by padobson on Monday February 19, 2018 @10:17PM (#16417585)
In reality, management breaking anything down into smaller tasks, instead of people who will actually do the work, breaking things down, is going to lead to ZERO architecture and a shit codebase, 100% of the time.

This is just another way of saying management is incompetent. There's no project management strategy that is going to overcome incompetent project managers.

Re:What to do when tech jobs go bad by doseofreality on Monday February 19, 2018 @11:17AM (#16413709)
So, if a developer takes too long developing the pre-defined micro-task which you've assigned them, you have to followup with them and report on why a micro-task took too long?

If this isn't micromanagement, what would you define as micromanagement?

Re:What to do when tech jobs go bad by beegeezuz on Monday February 19, 2018 @11:37AM (#16413846)
Exactly, I see Devs in our company having small meeting all the time to discuss the most ridiculous things that you could imagine... if Eng ever get micromanaged like this, I'm out in a month.
Re:What to do when tech jobs go bad by chrisbennet on Monday February 19, 2018 @06:44PM (#16416705)
A month is too long to wait. Break it down into smaller units... ;-)

I think some managers just don’t have enough to do so they make work for themselves (and everyone else). Like a border collie with no sheep to herd, they will start herding ducks, children, etc.

Re:What to do when tech jobs go bad by fao_ on Monday February 19, 2018 @12:08PM (#16414079)
Hey, this post (and all of your posts) are marked as dead. ~I'm not sure why~
Re:What to do when tech jobs go bad by ethnicify on Monday February 19, 2018 @12:30PM (#16414223)
Please, help us understand how having a 60 item worklist per week is "micro-documentation". I'm sorry, but you haven't really worked with or had training from real-world engineering managers.

For the engineers, and yours, peace of mind and progress -- please spend some time with stellar execution managers that understand software development is a people problem, not a project management problem.

Re:What to do when tech jobs go bad by padobson on Monday February 19, 2018 @10:38PM (#16417678)
Good engineering managers (preferably someone who knows how to write code) are going to be able to break tasks down effectively. So yes, it always starts with people.

And I agree with you: talented people, be they managers or developers or janitors, will be able to overcome any process or planning shortfalls.

But there's no difference between what I'm describing - a project manager breaking down features into bite-size bits of work - and a developer taking on a single feature and writing down TODOs in code, on post-its, on a white-board, or in the comments of the project management software.

The difference is one of documentation and communication to stakeholders - which is the PRIMARY problem with software estimation. There are ALWAYS unknowns in software. A team leader needs to be able to go to his boss when something is falling behind and say, "We didn't anticipate this. This is the reason it's taking longer".

This is FAR superior to going to the developer and asking them why feature X is taking so long and having them compile a report from Notepad/post-its/white board scribbles. With my process, you can just pull up the project management software and find the tasks that went way over, and the developer stays almost completely insulated from management.

I'm sorry, but you haven't really worked with or had training from real-world engineering managers.

This is the worst kind of condescending ignorance, it betrays an inability for civility that I wouldn't tolerate in a colleague.

Re:What to do when tech jobs go bad by ethnicify on Tuesday February 20, 2018 @05:12AM (#16419151)
Apologies, your perceived "view" of engineers had me fuming. I din't mean to attack you - but I understand where you're coming from.

It is not your fault if your leadership demands detailed answers as to why X is off by Y days. All you're doing is cascading that mistrust/poor management skills to your engineers. I understand what you're doing is the most reliable way to do it, but there is a better way. This is why I mentioned its a people problem.

The better way is to not break down things into hourly tasks but weekly sprints as most teams do. Let your engineers break that down into how much ever granularity they're comfortable with. If something goes off track, build communication trust that helps them keep everyone in the loop and work towards a common goal.

As a product person, I've had the fortune of working in two of the big 4 with some of the best engineers there is - so maybe that contributes to my worldview and it might be terribly biased.

Thanks for explaining :)

Re:What to do when tech jobs go bad by drharby on Monday February 19, 2018 @11:18AM (#16413718)
Ive developed a habit of doing this very thing, to the point of drafting release schedules to communicate deadlines to management. I love the liberty with my job but you can hang yourself if you don't watch it
Re:What to do when tech jobs go bad by aje403 on Monday February 19, 2018 @11:18AM (#16413723)
I would definitely consider a gulag over this
Re:What to do when tech jobs go bad by expertentipp on Monday February 19, 2018 @11:51AM (#16413946)
My current team is estimating up the to one hour and afterwards reporting the work with an hour resolution. It's low cost center squeezing the last cent form the engineering workforce. We are not asked for opinion or for a decision but to implement the tasks distributed by architects and Scrum masters. I'm quitting this place with the first opportunity possible and before taking all holidays until the end of the notice period. I will not even say goodbye.
Re:What to do when tech jobs go bad by maxxxxx on Monday February 19, 2018 @01:02PM (#16414437)
That's exactly how our corporate IT department works. They get nothing done and working there must be a complete nightmare. I have told my boss that I will refuse to work on anything where they are involved.
Re:What to do when tech jobs go bad by s73v3r_ on Monday February 19, 2018 @12:23PM (#16414175)
"taking all holidays until the end of the notice period"

Do you mean bank holidays? Cause regardless of how you feel about your company, you should always take those. Rest and disconnect from work are important, especially in environments where you really like the work or the job, and the risk of overheating is much greater.

Re:What to do when tech jobs go bad by vanilla_nut on Monday February 19, 2018 @01:18PM (#16414543)
Presumably he means taking his vacation days so he doesn't have to put in any days of work in the 2 weeks after he puts in his notice. I'd guess he isn't American -- the term "holiday" is interchangeable with "vacation" in most of Europe, for instance.

That being said, your point about bank holidays is a good one. Never give your company free labor -- they'll never give you free capital.

Re:What to do when tech jobs go bad by EKLM-ZK88 on Monday February 19, 2018 @08:21PM (#16417155)
I would be careful with this, my last employer refused to pay for unspent vacation days, and if you put in your notice or thought the individual was likely to quit they wouldnt approve your PTO requests. I don't know if this is legal (South Florida), but all the information i find online for this state say that the employer is not required to pay out your time (varies by state).
Re:What to do when tech jobs go bad by expertentipp on Monday February 19, 2018 @02:05PM (#16414873)
I mean withdrawing entire remaining annual leave to spend in the office the minimal time possible during the notice period.
Re:What to do when tech jobs go bad by blauditore on Monday February 19, 2018 @11:32AM (#16413808)
I'm pretty sure if you've broken down a larger task to 1-hour pieces, you've already done a large part of the software engineering work. So you've implicitly consumed a considerable amount of (not accounted-for) project time.

My impression has always been that the true cost of a dev task is only revealed when solving it. That's why they're hard to estimate. If they were easy to estimate, they would be trivial to implement and therefore could be largely automated. And for the lack of work, we'd aim for the next larger goal (which is again hard to achieve and estimate).

Re:What to do when tech jobs go bad by hrktb on Monday February 19, 2018 @07:55PM (#16417048)
> If they were easy to estimate, they would be trivial to implement and therefore could be largely automated.

This seems to be a concept so hard to grasp for non technical managers.

By definition tasks aren’t that similar to other tasks, otherwise we would be a super crappy software shop that can’t provide semi-generic solutions.

Dev team’s mission is to solve unique problems to the stack. Discovery is a major time consuming task by definition, and can’t be properly estimated, as it’s an information problem.

Re:What to do when tech jobs go bad by maxxxxx on Monday February 19, 2018 @11:11AM (#16413679)
This works only if you do things that are well understood beforehand. If you are doing things that require a lot of research and experimentation this project plan falls apart quickly.
Re:What to do when tech jobs go bad by mateo411 on Monday February 19, 2018 @11:24AM (#16413759)
Correct. If you have to do research and experimentation before you can make good estimates, then you need to allocate time to do that.

I use the term discovery phase to describe this. You give the discovery phase a certain amount of time to complete, it should be from a few days to 2 weeks. The deliverable at the end of discovery phase is a document. The document explains what experiments were run and what we should do next.

Re:What to do when tech jobs go bad by maxxxxx on Monday February 19, 2018 @11:40AM (#16413863)
This still rubs me the wrong way. I guess I personally don't like micromanaged environments. I don't want to have to explain every little step and report back all the time to people whose only interest is the deadline. I prefer to be treated like an adult who can be trusted to do the right thing to get to the goal quickly without being supervised at every step.

But I know plenty of people who need constant monitoring and handholding.

Re:What to do when tech jobs go bad by atridan on Monday February 19, 2018 @11:48AM (#16413927)
I can see GP's point and I don't see it as micromanagement. It's more like intensive investigation. I was "promoted" into management recently and I've had to change my view from "tasks getting done" to "people working together to complete tasks." Getting people to work together fruitfully is pretty difficult and even more difficult when you have a deadline you're shooting for. I don't care as much for reports back to me on progress, but I definitely like to see communication between those doing the task.

This also goes well with the rule mentioned in the article: always have at least 2 people working on a project.

Re:What to do when tech jobs go bad by maxxxxx on Monday February 19, 2018 @12:18PM (#16414135)
People talking to each other is great. I like to bounce off ideas but I don't like to report to a manager who cares only about time all the time.

It doesn't make things faster but instead takes a lot of mental energy that could be better spent on solving the problem.

Re:What to do when tech jobs go bad by gregmac on Monday February 19, 2018 @03:00PM (#16415280)
This sort of works if you have only a couple discovery tasks. Once you have a few dependent tasks -- that is, C depends on outcome/method of B, which in turn depends on A -- the branching becomes crazy.

Frankly if I'm going to spend a couple days on one aspect, I'd rather just implement that aspect.

I prefer to identify the risky parts and do them first, and refine estimates along the way. TDD helps because it keeps components isolated, so you don't have to build "in order".

Waterfall development with adequate time for planning/discovery up front does for sure give better estimates -- but those estimates are very expensive to get and are usually not all that reliable anyway, especially for multi-month projects.

Re:What to do when tech jobs go bad by commandlinefan on Tuesday February 20, 2018 @01:25PM (#16422586)
> If you are doing things that require a lot of research and experimentation

In other words, "anything useful".

Re:What to do when tech jobs go bad by andyjohnson0 on Monday February 19, 2018 @11:37AM (#16413845)
> My solution to this has always been to break down the units of work into smaller pieces. Super small. Painfully small.

The problem with this is that the time required to complete all the pieces is almost never equal to the sum of their estimated durations.

Re:What to do when tech jobs go bad by AFNobody on Monday February 19, 2018 @03:31PM (#16415482)
I think you are overdoing it simply because per-hour estimates are extremely time consuming to produce and borders on micromanagement.

Realistically, tasks should be grouped into roughly day-sized estimates for any long project with an equally large QA pool possibly run in parallel.

Granularity only gets you so far before the returns diminish to the point of worthlessness. Imho anyway.

Re:What to do when tech jobs go bad by zintinio5 on Monday February 19, 2018 @11:44AM (#16413896)
I would quit this team.
Re:What to do when tech jobs go bad by laythea on Monday February 19, 2018 @02:08PM (#16414902)
1 hour tasks! Sound like a recent working environment I was in where I witnessed a poor permanent employee driven to booking 10 mins to a task by this mentality from management down. Also, none of them spoke to each other due to the time-micromanagement. No thanks.