2

What is the most frustrating part of software development?

 2 years ago
source link: https://dev.to/ben/what-is-the-most-frustrating-part-of-software-development-31im
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Discussion (51)

Collapse

Expand

I'd say it's gotta be development effort estimation. In an Agile workflow, this would involve planning poker during sprint planning, where each member goes about assigning story points for various tasks. The results can be widely subjective. Here are some reasons in my experience:

  1. Firstly it can depend on who's picking up the particular feature and their working style.
  2. Often in planning stage, there are these little gaps in our current understanding of the code-base, which can either delay or speed up the feature development - and the only way to find out is when you actually start working on it.
  3. Also depends on the understanding of the overall product feature. Sometimes during actual development you tend to discover these edge cases that haven't been accounted for by the product team. So you kinda have to circle-back to them and wait for their response on what they think should be the expected behavior, which can introduce further delays.
  4. Development could also potentially get delayed if some key member of the team who has a more in-depth understanding of something essential is unavailable. Maybe they're too busy, or maybe they're on a holiday.

Most activities in software development can be solved to a degree, but this one seems so subjective that it almost feels like rolling a dice. Other than just adding extra time to the estimate (which raises the question - how much time?) to account for contingencies, I don't know if there is any strategy for this. Would love to hear other's thoughts. 😃

Comment button Reply

Collapse

Expand

I worked in a setting where estimates were not essential to business. The founder came up with a system like the following for communicating what work was being done and raising awareness of blockers:

  • create Asana project for each major effort (a product line, a consulting project, ...)
  • define some high level milestones along with any known tasks
  • each developer, in increments of about one hour (potentially logged at end of day), defines micro tasks which spanned an hour or a few hours, as they start the work or as they come close to completing the micro tasks
  • mark milestones complete when they are completed

You get very detailed visibility about blockers, direction of tasks, and choice of approach. Tech leads can daily or weekly provide feedback and steer in a different direction if choice of tasks or milestones are not leading to delivered results that will continue to accomplish overall project goals. There is no estimation, but you can look back and see gantt charts or calenders of microtasks.

Comment button Reply

Collapse

Expand

This is an interesting approach to work! Would love to know more on what was the business domain that you worked in, where estimates were not super essential.

Thread

Thread

The company was a mixture of custom scientific consulting (writing running long, expensive batch jobs), custom application development, and a long term SaaS product, still in development. The projects that I worked on were for custom application development, and our clients were very flexible about delivery dates.


We had four experienced engineers using this workflow on four solo projects and they each loved it. I especially liked the visuals that Asana produces once you enter the microtasks. We also did a weekly report to summarize our feelings on how the project was going.

Thread

Thread

I see! I think more companies should adopt this working style. From what I've seen, many of them just want you to keep grinding sprint after sprint, insisting on deadlines even when there isn't any actual pressure from clients to ship a certain feature.

Thread

Thread

It actually is agnostic about how hard you work. For example, I put a lot of pressure on myself in that system to deliver a lot each day. I just like that it focuses on recording as you go and looking back, rather than spending lots of time on estimation, velocity, etc, and excessive time specifying tasks so that you can estimate them. I like deep requirements gathering though. I just don't like an obsession with estimation. My ideal system is something between the described system and kanban with bi-weekly retros.

Thread

Thread

The worst job that I ever worked (worked for about 10 different development shops), at a "best employer in healthcare" and "best employer in region", shoved this top down quarterly planning process on all the developer teams and had us spend 15% of our time in backlog grooming, task creation, scrum ceremonies, etc. Mostly well meaning people, just horrible experience for developers, no ability to focus or reach flow, task creation and grooming was a constant nightmare.

After that experience, I shudder whenever I see a tech company that has won "best employer" awards. I also don't trust Glassdoor anymore. I think the only way to learn about these problems is to experience a company first hand for a few weeks.

Also, if I see someone is using Jira, I start to ask very probing questions in interviews to try to understand why they arrived at heavyweight, clumsy jira.

Comment button Reply

Collapse

Expand

Estimation is definitely a challenge that requires a team effort to get right. I recently shared a guide that I wrote for my own teams, perhaps there are insights that can help? A Guide to Story Point Estimation

Comment button Reply

Collapse

Expand

Yes, this is one of the problems why I left a company.

Comment button Reply

Collapse

Expand

this cannot be the reason why would you leave a company. perhaps suggest a process that would work with you or the entire team?

Comment button Reply

Collapse

Expand

I would shorten this reply to "Agile generally"

Comment button Reply

Collapse

Expand

Haha, i guess with the planning poker activity you can certainly say it's generally Agile.

But, planning poker or not, estimates are still hard wouldn't you say? 😅

Thread

Thread

They're a waste of time, so I don't do them

Thread

Thread

Interesting! Is it because your workplace doesn't really need you to calculate estimates one way or another? Or perhaps they're flexible enough?

Thread

Thread

I just gave up doing them. Maybe the PO filled them in for me, who knows?

The happiest, most productive teams I've worked on we're ones where we were allowed to self organise, and not estimate

Comment button Reply

Collapse

Expand

Explain development estimation to sudo technical manager is frustrating.

Comment button Reply


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK