Most active commenters
  • bsenftner(4)

←back to thread

388 points replyifuagree | 29 comments | | HN request time: 1.096s | source | bottom
1. paulsutter ◴[] No.37965627[source]
The only magic wand in software development is to simplify requirements. The requirements are always wrong: too broad, too vague, based on invalid assumptions

The real genius is to propose a simplified solution, by discarding some assumptions. This is the best and only way to shrink the schedule

replies(7): >>37965809 #>>37966142 #>>37966325 #>>37966429 #>>37966768 #>>37966963 #>>37967034 #
2. bsenftner ◴[] No.37965809[source]
This is why Professional Communications is so critical for software developers, and exactly why your manager absolutely does not want you to have such skills: you'll be able to explain why their requests are manipulative, unrealistic, and frankly pointy haired wishful nonsense.
replies(1): >>37966020 #
3. geraldwhen ◴[] No.37966020[source]
Your workplace may be toxic. My manager celebrates simplification and cost reduction when it solves business problems.
replies(1): >>37966034 #
4. bsenftner ◴[] No.37966034{3}[source]
Completely different topic. I'm not even referencing "my workplace", I'm talking our entire industry.
replies(3): >>37966134 #>>37966247 #>>37966269 #
5. _a_a_a_ ◴[] No.37966134{4}[source]
Please don't generalise or you wipe out the occasional good that does exist.
replies(1): >>37966261 #
6. masklinn ◴[] No.37966142[source]
> The only magic wand in software development is to simplify requirements. The requirements are always wrong: too broad, too vague, based on invalid assumptions

I think it's less simplification and more precision and completeness. Obviously if you have simpler requirements they more complete and precise, but the requirement might not actually be simplifiable. In which case what you want is better specification.

"They write the right stuff" about the shuttle software group is basically a story about doing that: https://www.fastcompany.com/28121/they-write-right-stuff

replies(1): >>37966264 #
7. umanwizard ◴[] No.37966247{4}[source]
Then you’re just empirically wrong. I’ve never had managers who didn’t want me to have professional communication skills in the ten years I’ve been in our industry.
replies(1): >>37966295 #
8. bsenftner ◴[] No.37966261{5}[source]
Now seriously, my comment is a call for people to acquire professional communication skills, because they are extremely useful when negotiating work in far too many areas to count. Such advice getting down voted indicates how little value quality communications has within the software developer community - to the industry's demise. Communications are everything, and if you don't have good communication skills you get overlooked, abused, and misunderstood... leading to career frustration, stagnation, and burnout.
replies(2): >>37966387 #>>37966745 #
9. bgribble ◴[] No.37966264[source]
As a developer I hate "precise" and "complete" requirements. Usually these extremely detailed roadmaps are just fairy tales. They indicate a management and product mindset that thinks you can pre-chew a developer's food for them and make things more predictable.

In fact, what you are doing is tying the developer's hands and making it less possible for them to nimbly work around unforeseen obstacles or repurpose existing solutions without raising a "process exception" to reopen the spec or sizing of a work item.

Be clear about the goals but let the developer(s) who have their hands in the code make the decisions about how to implement it. That means you can't really roadmap a big project down to the minute, but those roadmaps were always lies so there is literally nothing lost except for some fantasy Gantt charts.

replies(5): >>37966435 #>>37966631 #>>37966866 #>>37967309 #>>37967811 #
10. jeltz ◴[] No.37966269{4}[source]
I have met such managers you talk about but from my personal experience they are not a majority. Maybe I have been lucky or you have been unlucky.
11. bsenftner ◴[] No.37966295{5}[source]
You manager wants you to agree to the work they ask you to perform, and they want to load you up with work to maximize your efficiency. How one negotiates when you're reaching capacity is professional communications. If one is unable to attain work/life balance that is due to a lack of communication skills, the lack of the ability to explain you're past ordinary capacity, burning your health. Our industry is over run with members over working - that's due to their inability to communicate the are over capacity.
replies(1): >>37966785 #
12. dsego ◴[] No.37966325[source]
Oh, but we need the full search functionality right now, yes there are only tens of entries now but in a few years there will be thousands. And the designer will design all the search flows based on our twenty page product requirements doc, and we will include engineering to write stories and estimate the works once it's all planned and prepared.
replies(1): >>37966618 #
13. candu ◴[] No.37966387{6}[source]
Tbh, I downvoted you not because I don’t value quality communications, but because negotiating around your capacity is a small slice of professional communication, and your approach is needlessly adversarial. You will experience a lot of useless friction in your life by taking that approach.

Good communication isn’t adversarial: by the time it becomes adversarial, you’ve already lost. It can include solid documentation, taking the time to mentor others, respectful but clear code reviews, helping others argue your case for rescoping, presenting your work at meet-ups or conferences, hallway testing a new feature, listening to teammates explain an approach…

…and yes, sometimes negotiating capacity. If that feels like an adversarial conversation, then your manager sucks, and you should find a new one.

14. mmcnl ◴[] No.37966429[source]
And devs are in the perfect position to take on this responsibility. They usually have sufficient domain knowledge and know what it takes to build stuff in this context.
15. mmcnl ◴[] No.37966435{3}[source]
That's why developers should be the ones taking a step forward to make vague requirements "complete" and "precise". They will satisfy the business goals and there won't be fairy tales.
16. crucialfelix ◴[] No.37966618[source]
Also some designers throw in too many features because they want to fill space in the design.
replies(1): >>37967378 #
17. flagrant_taco ◴[] No.37966631{3}[source]
> As a developer I hate "precise" and "complete" requirements. Usually these extremely detailed roadmaps are just fairy tales.

Requirements and roadmaps are very different in my opinion. Requirements say what the product needs to do, scaling and/or response time targets, systems or needs to integrate with, etc. Roadmaps are either a high level plan for where the project goes in the future or a list of seemingly arbitrary deadlines.

Both have their place, but in my experience the right balance has been precise and complete specs with a high level, flexible roadmap.

18. sakjur ◴[] No.37966745{6}[source]
I don’t think you’re being downvoted because you’re promoting improved communication skills. I think you’re being downvoted because you’re implying that managers “absolutely does not want you to have such skills”.

I’d wager portraying an important work relationship as adverserial and manipulative is why people downvote you. It’s a bit of an overplayed cliché with the bad boss.

Ironically you might be downvoted because of what you’re saying being misunderstood, which I guess is to your point.

19. marginalia_nu ◴[] No.37966768[source]
Yes. I very much agree. Not only are most software bugs actually requirements bugs, the speed you can build software with good requirements is absolutely bonkers.

I've seen a project go from an empty repo to production in two months with a set of requirements that were completely unambiguous and rock solid. I've also seen ambiguous and vacillating requirements drag out the implementation a ~30 LOC feature for months.

20. dahart ◴[] No.37966785{6}[source]
My current manager asks me to define the work, and has asked me not to do certain things because he feared it would overload me. He values professional communication and endorses people who want to improve them, going so far as to allocate work time and support them financially in their efforts to learn.

I’ve also been a manager at 3 different companies, one of them my own, and my philosophy has not been to push deadlines or work, but to spend more time understanding requirements, and simply try to break down long-running projects into small pieces that can be estimated more accurately. One of the biggest problems I’ve witnessed in software is that estimates in units of years are always very wrong, while estimates in units of days or weeks are pretty good.

I have to agree with the parent; you’re making incorrect assumptions and maybe projecting your own bad experience, and ending up accidentally saying something that isn’t true.

replies(1): >>37970392 #
21. xorcist ◴[] No.37966866{3}[source]
Well, that's the nature of software.

If the requirements were actually precise and concrete, you could commit them to git and that would be the end of it.

The fact that they aren't is a sign of information deficit and this must be understood by all parties if we should have any chance of a productive outcome.

replies(1): >>37971193 #
22. JoeAltmaier ◴[] No.37966963[source]
Contractor I know, always answers "Can you do it quicker and cheaper?" with "Yes. What do you want me to leave out?"
23. bdcravens ◴[] No.37967034[source]
This assumes a developer whose workflow is more or less optimized.
24. qingcharles ◴[] No.37967309{3}[source]
“Everyone has a plan until they get punched in the mouth.”

The problems with precise specs is that they miss all the dozens of edge cases and gotchas that don't crop up until you actually try to code them. Then you need smart, imaginative devs to ignore the specs and write something that people can actually use.

I've worked with devs who write _only_ to the spec and never diverge at all, regardless of outcome, in order to check off boxes and make their managers happy. Their work sucks.

(this might not apply if you are writing code for moonships)

replies(1): >>37967422 #
25. dsego ◴[] No.37967378{3}[source]
I think they want to be helpful and leave their mark, which sometimes includes trying to reinvent boring CRUD designs and borrowing some cool but more involved ux pattern they saw in a big-money product. Adopting a popular 3rd party component library sometimes helps, but for some reason it's hard to push back on tweaking the behavior of these components all the time, and usually those component libraries are such that they include everything but the kitchen sink, well... except that one thing that the designer is insisting on. And that one is really hard to do with that library and takes way more time than anticipated. The value-add here is in my experience almost always negative. Looking back at delivered projects, I can't shake the feeling that involving designers at a later stage would be beneficial to the project and timelines.
26. ◴[] No.37967422{4}[source]
27. replyifuagree ◴[] No.37967811{3}[source]
Yep it is very unlikely that the business silo has a clue what needs to be built.
28. verve_rat ◴[] No.37970392{7}[source]
They're not wrong. Our industry has a burnout problem. Some places are nicer than others to work at, but that doesn't mean the industry as a whole doesn't have problems.
29. tacocataco ◴[] No.37971193{4}[source]
What if one party is incentivized to create said information deficit?