|
|
|
Ask HN: How can I keep my Engineers properly fed with quality work?
|
|
32 points
by softprod
902 days ago
|
|
Hi HN, I’ve been struggling with keeping my Software Engineering teams properly fed with good specs and enough work for them. I could use a little advice on what you all truly think is the right way to build software. This is an issue I’ve had for years and at multiple companies. I typically work in areas with high compliance burden like Healthcare or Fintech.
If I have my product teams use lightweight tools like user stories and scrum/kanban, I get terrible products that haven’t been thought through. We miss subtleties, test scenarios, and getting my Engineers to fill in those details doesn’t seem to work. Maybe eventually you get a few Senior Engineers who learn to do it, but mostly they end up helping everyone else. If I go more heavyweight, and write large specs with use cases, state diagrams, sequence diagrams, gherkin BDD scenarios, we tend to get much better software but my org is really top heavy. I would end up needing more product people than developers, and training people to be able to do all that is really hard.
So in the end, I personally always work 70hour weeks to fill in all the gaps from a product and engineering perspective, just to keep the process moving in the right direction.
I recognize this is my failure in org design, and training, but what does good look like in your opinion?
Thanks in advance. |
|
I also find that product people tend to forget our purpose. PM 101: We say "what" needs done, Engineers say "how". So that is exactly what I write up. I don't diagram technical details, even though I also am an engineer and could do so... but I do get very tight on details of "what" should happen - "Click button a, do thing b, expect UI change c, etc." Cards typically outline a set of actions like that to comprise a feature, and I let the devs worry about whether it needs broken down into subtasks and shared amongst themselves or whether one dev will work it all. Again, my job is "what", theirs is "how".
Forgetting the goal of the product role often leads to product people who spend all their time in meetings micromanaging the dev process, instead of letting the engineers run free to do what they do. Which in turn leads to devs who complain about product people, and the whole team's morale tanks. If you can escape all that, the devs have autonomy to do their jobs and you have time to write good specs while keeping a lightweight process.
Edit: I should add that I don't set my specs in stone - devs are welcome to come to me and say, "Wouldn't it be better to do it this way?", and if their idea is better, I say yes.