Live data from Hacker News

Reality Driven Development: Fixing Project Management in Software

brightball.com

11–20 of 147 posts

Re: Reality Driven Development: Fixing Project Management in Software

#11

Author here if anybody has any questions.

With paired programming I have always felt comfortable sharing a Googling of the problem with either the co-driver or the driver, depending which role I am in.

Can you explain what you perceive to be the problem with accessing something like StackOverflow to help solve a persistent problem or even to simply jog one's memory?

I find that this fear of being shamed for using the obvious resources at our fingertips to be one of the things that makes people less likely to want to pair. IMO there is nothing wrong with consulting books, websites, other people's ideas/opinions, or other knowledge repositories to help make good decisions or solve problems elegantly.

Re: Reality Driven Development: Fixing Project Management in Software

#12

Author here if anybody has any questions.

I think what a lot of people fail to take into account is the amount of effort it can take to "estimate" tasks. From my experience, the more pressure there is to give an estimate the less time they want you to spend researching the work. To increase the accuracy of an estimate, you need to do more research and if you take that to its logical conclusion then the best estimate is given after the work is completed. So t…

I’ve got to do a lot of contract software work back in the day and was the one working first draft requirements with clients before the actual contract.

It was common to spend a week into planning for every six man/month of project

Using that as ballpark we never got an estimate having more than 10% error.

Anectodal, I know, but without that kind of effort one is not doing an estimate is doing a guess.

That also why I don’t like the agile approach of piling up efforts and then use actual time to tune speed hoping the inaccuracies will level off one another. It just feel like a sequence of dice rolls hoping you don’t end up at the far tail of the gaussian.

Re: Reality Driven Development: Fixing Project Management in Software

#13
post #10

Fantastic summary. What do you think about Hiten Shah's solution which is to use hourly estimates and in depth upfront technical research? https://producthabits.com/overcome-the-guess-work-of-product...

EDIT: Now I've read it.

This and the Joel on Software piece both have their heads in the write place...which is putting a lot more time into estimating by actually diving in and planning your tasks with more detail.

It's the trade off of investing a lot more time in your estimating process to say that you had more accurate estimates. If you can afford to pull that time from somewhere in your organization, I'm sure it does produce more accurate estimates.

The value proposition boils down to how often you're going to do that? Are you going to spend 8 hours every sprint to dive into estimates to try to make them more accurate? If you're making a decision between multiple projects, the time investment to decide which path to travel down the road will make more sense.

Allocating the time every 2 weeks on the path you're currently travelling though? Is the value still there in that situation any more than re-evaluating the weight of a story when it's being worked?

This is where I steer clear of hours. Formula's like that also disregard things like turnover on teams, learning curve between different team members, on boarding time, experience differences, etc. The time trade off is rarely there.

Re: Reality Driven Development: Fixing Project Management in Software

#14

Author here if anybody has any questions.

With paired programming I have always felt comfortable sharing a Googling of the problem with either the co-driver or the driver, depending which role I am in. Can you explain what you perceive to be the problem with accessing something like StackOverflow to help solve a persistent problem or even to simply jog one's memory? I find that this fear of being shamed for using the obvious resources at our fingertips to be…

Sorry, I probably need to re-word that. I didn't mean to suggest it that way.

It was more of a reflection of being unwilling to ask team members for help and just depending on Google/SO for answers if you're stuck. I'll re-evaluate the wording there and get it corrected.

Re: Reality Driven Development: Fixing Project Management in Software

#15
The author touches on this indirectly a couple of times, but I think the main realization this gives me is that we tend to conflate two things when doing software project management:

* Getting the project done well and on time.

* Evaluating the performance of invidual programmers.

This is probably a natural thing to do because one measure of "good programmer" is "gets projects done well and on time", but I think directly mixing those two goals together interferes with both.

If you have any experience, you've certainly been put in a situation where the project went poorly through no fault of your own. I shipped "Superman Returns: The Videogame". Every developer knew the game was going to suck. Conversely, you've probably known (or been) someone who coasted through a successful project without contributing much of value.

So that argues that project outcome is a poor individual performance measure.

Worse, when people know project outcome is tied to their performance review, it puts pervese incentives into play. It encourages even well-meaning people to over-estimate tasks, bury technical debt where it won't be seen, point fingers when projects go poorly, choose conservative projects to work on, etc.

Perhaps a way out is for the organization to very clearly and explicitly separate these two concepts. Repeatedly acknowledge that you can do good work on projects that go poorly and vice verse. Do not take project outcome into account in performance reviews.

That still leaves the question of how do you evaluate performance then? Peer review is one approach — everyone on the team probably knows who does and doesn't carry their weight. Unfortunately, this can lead to nasty biases. People whose gender/culture/whatever lines up with the majority of the team are likely to get rated higher because we like people similar to ourselves. People that are more outgoing, outspoken, or charismatic will get unfairly better reviews — a particular problem in programming where some of the best people lack those attributes. It might trigger nasty competitive behavior with cabals forming and other stuff like that.

I don't know if those problems are worse than the status quo of using project outcome for performance evaluation too. It's difficult.

Re: Reality Driven Development: Fixing Project Management in Software

#16

Earlier quoted context omitted.

With paired programming I have always felt comfortable sharing a Googling of the problem with either the co-driver or the driver, depending which role I am in. Can you explain what you perceive to be the problem with accessing something like StackOverflow to help solve a persistent problem or even to simply jog one's memory? I find that this fear of being shamed for using the obvious resources at our fingertips to be…

Sorry, I probably need to re-word that. I didn't mean to suggest it that way. It was more of a reflection of being unwilling to ask team members for help and just depending on Google/SO for answers if you're stuck. I'll re-evaluate the wording there and get it corrected.

I would add that if engineers/developers are unwilling to ask team members for help you have a big problem with the team, likely a recruitment or culture/leadership problem, not just a project management problem.

Teams work best together and to work together egos need to be checked at the door and people need to trust each other. Any problem on a team is the whole team's problem, and while one person may be accountable for introducing bugs, a good team will view that team mate as valued and capable and perhaps pitch in to mentor or help fix the problem quickly.

The Five Dysfunctions of a Team obviously points out a lot of what I am talking about much more elegantly than I can. What I am saying is that project management can only go so far, team leadership, culture, and recruitment is also hugely important to fix many of the problems you identified in the article.

Great article though, I shared it with my work-mates :)

Re: Reality Driven Development: Fixing Project Management in Software

#17

Author here if anybody has any questions.

I think what a lot of people fail to take into account is the amount of effort it can take to "estimate" tasks. From my experience, the more pressure there is to give an estimate the less time they want you to spend researching the work. To increase the accuracy of an estimate, you need to do more research and if you take that to its logical conclusion then the best estimate is given after the work is completed. So t…

High level estimates aren’t optional for most development. Customers waiting for an important feature won’t take “ it’ll come when it comes, estimates aren’t real” as an answer.

You can skip low level estimates, but the consequence of that is that high level timelines are uninformed by them. That’s how you end up in the archetypal situation where all the engineers know a project will slip while their managers report it’s right on track.

Re: Reality Driven Development: Fixing Project Management in Software

#18
Estimation is a skill. You have to learn it and practice it. Estimation is not something you can just do. You have to be taught how.

OA touched on this, for many companies and types of projects the majority of development is doing things you do not understand and/or don't know how to do. Yet.

You don't figure those things out until long after someone wanted an estimate and tonolan release date. It's not infrequent to have shipped v1 before you figure out how things work. Or needed to work.

The quite "no plan survives contact with enemy" applies to softdev as "no design survives contact with production"

Re: Reality Driven Development: Fixing Project Management in Software

#19
post #3

Earlier quoted context omitted.

Have you read "The Principles of Product Development Flow: Second Generation Lean Product Development" by Donald G. Reinertsen?

I have not but I just ordered it. From the description, it looks like we're on the same page.

[deleted]

Re: Reality Driven Development: Fixing Project Management in Software

#20

The author touches on this indirectly a couple of times, but I think the main realization this gives me is that we tend to conflate two things when doing software project management: * Getting the project done well and on time. * Evaluating the performance of invidual programmers. This is probably a natural thing to do because one measure of "good programmer" is "gets projects done well and on time", but I think dire…

It's pretty refreshing to read posts that admit 'management is difficult' on HN. We can get a bit lost in our bubble of tech work, and forget how important management is to actually accomplishing things.
Post reply on HN