Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Mniot
May 22, 2003
Not the one you know
"Alternatives considered" is my favorite piece of the design doc because I only started using it a few years ago and it feels like the missing piece that gets me from "why would I waste time designing when I could just code the loving thing?" to "a document that's valuable to both the author and the reader." If there's no alternatives worth considering then either you don't need a design doc or you haven't thought about the problem enough.

A list of things that are out of scope for the design is also useful, especially if there's some feature that you know your company/coworkers always try to add in.

Adbot
ADBOT LOVES YOU

YanniRotten
Apr 3, 2010

We're so pretty,
oh so pretty
Our internal design doc template has a "what problems AREN'T you solving" section which is honestly pretty useful at least in terms of product understanding that without a roadmap you aren't building in potential support for things Y and Z and are stopping at what you need to have X working.

Hughlander
May 11, 2005

Just like when product folk start thinking of a new feature in terms of 'MoSCoW' format. Or as I always imagine it, old style RFCs for the 21st century. The feature, Must, Should, Could, and Won't do these things.

lifg
Dec 4, 2000
<this tag left blank>
Muldoon

Hughlander posted:

Just like when product folk start thinking of a new feature in terms of 'MoSCoW' format. Or as I always imagine it, old style RFCs for the 21st century. The feature, Must, Should, Could, and Won't do these things.

I love that setup. Even when I’m not using it specifically I always include a “what this won’t do” section in my design docs. It clears up a lot of miscommunication early.

Clanpot Shake
Aug 10, 2006
shake shake!

We had a process for docs like this at a previous job of mine that was actually very useful. The team was around a dozen people and we had 2 core applications that we maintained, together forming the company's money tree.

Since every new feature went into one of these two codebases and everyone worked on them, having context for why changes were being made was super important. To that end, for big features (not literally every change), we'd get everyone in a room, engineers and product, and an engineer who was assigned to would walk through their approach to implementing the feature - what sections of the code will be updated and how, any new database support needed for the feature, etc. These meetings might sound awful but they were extremely useful for having everyone understand the work that was taking place and correcting any misunderstanding or miscommunications before engineering started actually implementing anything.

There would almost always be something the engineer didn't account for, and it could come from the product side or the engineering side. It slowed us down somewhat, but we didn't make mistakes in our production environment (mistakes in prod for us cost us a boatload of money, so "testing in prod" was verboten). It also has the added benefit of being a great learning time for newer and less experienced engineers to see code architecture work done in real time and explaining different parts of the system in a practical setting.

Xarn
Jun 26, 2015
I have a feature X. It introduces a lot of engineering overhead, makes our product actively worse for users and has no actual benefit to us (so this isn't even a question of harmful to users to benefit us, like gathering personal info would be :v:). I am not aware of any other similar SW that has this feature.

I would like to kill it, but the CEO has a massive hard on for us having feature X. How do I kill the feature anyway?

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
So why does your CEO like it?

BigPaddy
Jun 30, 2008

That night we performed the rite and opened the gate.
Halfway through, I went to fix us both a coke float.
By the time I got back, he'd gone insane.
Plus, he'd left the gate open and there was evil everywhere.


Make a deep fake video of Elon Musk saying that feature X was going to be included in Teslas but they decided it was too lame and only beta nerd CEOs would want it.

Xarn
Jun 26, 2015

Sagacity posted:

So why does your CEO like it?

He is an idiot.

kedo
Nov 27, 2007

Let them waste enough time to get it to the point where you can user test it, then test it and let the users tell your CEO it’s stupid?

YanniRotten
Apr 3, 2010

We're so pretty,
oh so pretty
1) Comprehensively measure how pointless it is - the limited scale of use, limited revenue, etc.

2) Also comprehensively measure how much time (and money! convert engineering time into engineering money!) it's wasting.

3) Make it clear how much the CEO will look like a genius if he approves killing the feature, given how bad it is and how much money he gets credit for saving!

Edit:
4) CEO explains it's a critical differentiating feature, either for some kind of standards compliance or just an extra checkmark on a comparison chart, you get fired for your audacity

The Dark Souls of Posters
Nov 4, 2011

Just Post, Kupo

Xarn posted:

He is an idiot.

All CEOs are

smackfu
Jun 7, 2004

“How do I kill my CEOs stupid pet project?” is not a tech specific thing and is basically impossible.

asur
Dec 28, 2012
Why would you try to kill a pet feature of the CEO or management in general? It's not your money, who cares if they waste time or resources on it.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Xarn posted:

I have a feature X. It introduces a lot of engineering overhead, makes our product actively worse for users and has no actual benefit to us (so this isn't even a question of harmful to users to benefit us, like gathering personal info would be :v:). I am not aware of any other similar SW that has this feature.

I would like to kill it, but the CEO has a massive hard on for us having feature X. How do I kill the feature anyway?

Think about this seriously: how miserable does this really make you and your team? If it causes a significant amount of after-hours calls that you have to field, or if you're getting flak for not making enough progress on other work because Feature X is sucking up too much of your time or complicating the rest of the product too much, then by all means, make a case (in a data-driven, unemotional way as suggested above). I would go through your direct manager to do this.

But if it's just an annoyance, if it's something that from your perspective is only a problem for the company and its allocation of development time and money? Then my advice would be to stop caring about it, and take whatever satisfaction you can in the contributions that actually make the product better. If you can't do that, you're probably going to be stressed out a lot and I'd maybe take steps to transfer away from the product or get a new job where you can be more fully invested (but really, you're going to find bullshit like this everywhere).

Pollyanna
Mar 5, 2005

Milk's on them.


I’m putting my vote in for deepfake Elon Musk negging.

Canine Blues Arooo
Jan 7, 2008

when you think about it...i'm the first girl you ever spent the night with

Grimey Drawer

asur posted:

Why would you try to kill a pet feature of the CEO or management in general? It's not your money, who cares if they waste time or resources on it.

Some people actually want to believe in what they work on.

asur
Dec 28, 2012

Canine Blues Arooo posted:

Some people actually want to believe in what they work on.

Then tell your manager you don't want to work on it and then don't, switch teams, or switch companies. Trying to kill the pet feature is the worst possible option here. Every company is going to have some amount of work that people consider pointless. It's just a matter of how much can you tolerate and the specific type of work.

I guess if you're considering bailing anyway then you can try to kill it on your way out the door, but if you want to stay then I wouldn't risk it.

asur fucked around with this message at 22:50 on May 30, 2022

AskYourself
May 23, 2005
Donut is for Homer as Asking yourself is to ...
Yeah, building a case to essentially prove that the person with the most power in your org is making bad business decision is akin to career suicide.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...
Also depends on how close to the decision making you are. If you're one level down, the CEO ought to be expecting you to make these cases. If you're two levels down, see if you can get traction to the guy above first to mention it.

If you're further down than that, just loving lol you're not changing poo poo.

redleader
Aug 18, 2005

Engage according to operational parameters
just do a halfassed job of it

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

redleader posted:

just do a halfassed job of it

and get another job after so you don't have to deal with the fallout.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
Collect telemetry data on the feature. Report nobody is using it. Discover your CEO didn't actually care in a kind of schrodinger's cat scenario; they would still care if you didn't post the data.

Xarn
Jun 26, 2015

asur posted:

Why would you try to kill a pet feature of the CEO or management in general? It's not your money, who cares if they waste time or resources on it.

Canine Blues Arooo posted:

Some people actually want to believe in what they work on.

lmao no, we aren't curing cancer or some poo poo. I just don't like my job getting harder for stupid reasons.



Volmarias posted:

Also depends on how close to the decision making you are. If you're one level down, the CEO ought to be expecting you to make these cases. If you're two levels down, see if you can get traction to the guy above first to mention it.

If you're further down than that, just loving lol you're not changing poo poo.

Actually I wrote up why the feature is bad idea, collected various issues that it is gonna cause, and gave it to my skip level (CTO), as they were the first shared boss between me and the other team. Nothing happened and I stopped caring, because I was not working on the product in question, so the team behind it wasting half a year is not my issue... except this month I was loaned out to that team to help them fix their poo poo :v:

Anyway, the feature is an autoupdater for our SDK, which is a library with C bindings that other business can use to develop their own SW. So now whenever the init function of the library is called, a network request is fired off to our servers to download newer version of the library, and then it is loaded into the process.

And there is no way to disable the update check and download, and it is done synchronously in init, so if

  • their user is on a slow internet and downloading 60+ megs of update is slow? gently caress them, they will have to wait.
  • their user is on a metered internet? gently caress them, they will have to use it up.
  • our client wants to reproduce exact build for debugging? gently caress them, they have to disconnect from the internet to do so, and it is impossible to do in general.
  • do _we_ want to reproduce exact build for debugging? We can do it, because at least we have the full archive of all releases, but it is still gonna be an rear end.

For bonus points, the autoupdater is currently roughly half of all the source lines, and we don't handle a whole bunch of edge cases that I barely know about (and I know loving nothing about lazy loading libraries like this, I expect that someone who actually knows their poo poo would run screaming).

meanolmrcloud
Apr 5, 2004

rock out with your stock out

AskYourself posted:

Yeah, building a case to essentially prove that the person with the most power in your org is making bad business decision is akin to career suicide.

I’m reading this as we are about to go live having never tested in prod, this is a good reminder that I can only do so much.

Precambrian Video Games
Aug 19, 2002



Xarn posted:

Anyway, the feature is an autoupdater for our SDK, which is a library with C bindings that other business can use to develop their own SW. So now whenever the init function of the library is called, a network request is fired off to our servers to download newer version of the library, and then it is loaded into the process.

And there is no way to disable the update check and download, and it is done synchronously in init, so

Well that sounds like a loving nightmarish disaster; good luck!

Precambrian Video Games fucked around with this message at 16:31 on May 31, 2022

Pollyanna
Mar 5, 2005

Milk's on them.


Oh my god :psyduck:

smackfu
Jun 7, 2004

I feel like we are pretty bad at breaking features into stories and could use some advice. We own the full stack and generally start with a UX design for the feature. This usually gets turned into one story per screen, which makes sense from a product owner perspective.

The issue we run into is where do you put the backend work? Do you create a new story that blocks all the rest that the product team doesn’t care about? Or do you make the “first” story have the backend component and block the rest? Or some better solution, possibly involving better product owners?

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
One story per screen probably doesn't make a ton of sense.

- Most tasks users will actually want to do will require more than one screen
- Most screens will be useful for more than a single task

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...
This specific scenario is where the metaphor breaks down, and why I don't (and others don't) use user stories for things. User stories are excellent for mainly visual content, with minor backend processing, but they fall down for things like "As a driver, I want the car to start when I use the ignition" which is a button press to the user and an absolute ton more behind the scenes.

See if you can have specific tasks broken down an epic or whatever the term is now, so that the user story is an overarching goal, not one specific task, then create subtasks from there and consider those as you would the story.

meanolmrcloud
Apr 5, 2004

rock out with your stock out

smackfu posted:

I feel like we are pretty bad at breaking features into stories and could use some advice. We own the full stack and generally start with a UX design for the feature. This usually gets turned into one story per screen, which makes sense from a product owner perspective.

The issue we run into is where do you put the backend work? Do you create a new story that blocks all the rest that the product team doesn’t care about? Or do you make the “first” story have the backend component and block the rest? Or some better solution, possibly involving better product owners?

We do enabler stories, and explain to the PO that the work is necessary and (usually) has to go firsts.

smackfu
Jun 7, 2004

Glad to hear that other people have the same issue. And yeah, we do tech enablers, it just feels like it is hacking the “user stories” system.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


One of our big application teams ran into something recently where a particular requirement made their backend significantly more complex. They responded by broadening the scope of who's considered to be a user to include devs who talk to the backend as well as our actual end users. They're in the process of figuring out their workflow based on that, but I think they're going to come up with something that works well for them.

This team doesn't do anything highly technical, though. Even with the new more complicated backend they're still basically building CRUD apps. My team, on the other hand, is building a system that does large scale computations based on a high-level specification and we only track our work using stories because that's what the tools we have support. We're absolutely not trying to map what we do to anything a user of the system might care about, let alone the end users of our applications.

Jabor posted:

One story per screen probably doesn't make a ton of sense.

This is probably true but can depend a lot on the nature of the application.

Daviclond
May 20, 2006

Bad post sighted! Firing.

smackfu posted:

I feel like we are pretty bad at breaking features into stories and could use some advice. We own the full stack and generally start with a UX design for the feature. This usually gets turned into one story per screen, which makes sense from a product owner perspective.

The issue we run into is where do you put the backend work? Do you create a new story that blocks all the rest that the product team doesn’t care about? Or do you make the “first” story have the backend component and block the rest? Or some better solution, possibly involving better product owners?

You can get quite creative with breaking down back-end stories, one of my favourite tricks is to implement a dummy endpoint that returns a hardcoded response entity and split off the "real" work to a separate ticket or two. This unblocks the front-end (it can hit the API) and you can do the real back-end in parallel. Getting used to delivering small, quick, incremental tickets is a cultural thing that's worth the effort of cultivating. If you have agile coaches try and get them involved, their opinions can have more gravitas and help shift attitudes.

IMO it's fine for a ticket to be entirely back-end and not immediately deliver user-facing value. The fact it leads to later tickets that will deliver user value is sufficient. The alternative is bloated, overly-large stories and that's not in anyone's interest.

CPColin
Sep 9, 2003

Big ol' smile.
Speaking of weird definitions of stories and things along those lines, I looked at another team's sprint board recently and noticed that each team member had an item on the board for "overhead" like meetings and other untracked work and, uh, that doesn't seem like how you're supposed to do it???

Xguard86
Nov 22, 2004

"You don't understand his pain. Everywhere he goes he sees women working, wearing pants, speaking in gatherings, voting. Surely they will burn in the white hot flames of Hell"

CPColin posted:

Speaking of weird definitions of stories and things along those lines, I looked at another team's sprint board recently and noticed that each team member had an item on the board for "overhead" like meetings and other untracked work and, uh, that doesn't seem like how you're supposed to do it???

It's not but might be a sensible defensive measure in your average SAFE hellscape.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...
If that exists, it's because a team felt it has value in factoring in how much work they can actually do.

Which means they have too many loving meetings

Macichne Leainig
Jul 26, 2012

by VG
Too many bean counters too if you're having to separately track that sort of poo poo. Definitely a SAFe hellscape.

Obfuscation
Jan 1, 2008
Good luck to you, I know you believe in hell

CPColin posted:

Speaking of weird definitions of stories and things along those lines, I looked at another team's sprint board recently and noticed that each team member had an item on the board for "overhead" like meetings and other untracked work and, uh, that doesn't seem like how you're supposed to do it???

We do similar fake issues at the place that I work at, and it's because we need to track our time and there's an integration between Jira and the time tracking software... it's all very very dumb.

Adbot
ADBOT LOVES YOU

CPColin
Sep 9, 2003

Big ol' smile.
Oh yeah, I for sure can picture the exact sequence of events that led to it. And, UGH.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply