|
It's important to remember Goodhart's Law: "Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes." Or "When a measure becomes a target, it ceases to be useful as a measure." An important part of the utility of points is that, precisely because they don't mean anything concrete, it's meaningless to measure them - which helps to protect the team from having them turned into a target, and also helps to protect the business from undermining their ability to forecast the team's productivity. Teams that are mature and disciplined enough to reach a consensus interpretation of proposed work without having to be tricked into it with the estimating game should do so, and dispense with pointing altogether, in order to increase the protection afforded by this.
|
# ? Jun 9, 2023 01:07 |
|
|
# ? May 27, 2024 09:23 |
|
Volmarias posted:Sure, but you want to try to describe the general complexity/difficulty of the task, in time unit independent numbers. The idea is that your team velocity is relatively consistent, and the relative difficulty of the tasks is not highly variable based on who is doing it. As a result, even though X only does 6 points per sprint and Y does 30, you still schedule roughly 36 points regardless of which tasks X chooses. Yes, I’m aware that the idea is to pretend that people are fungible and that the difficulty of a task is a concept that can be talked about independently of who is working on it. That idea has had zero basis in reality in any team I have ever worked in. How it actually works is more along the lines of that person X will complete 6 points if they pick one set of tasks but 20 points if they pick a different set, while person Y will complete 30 points regardless.
|
# ? Jun 9, 2023 02:46 |
|
of course it has no basis in reality but its absolutely important that we capture person X's performance in a graph so we can use it as an excuse to pip them later
|
# ? Jun 9, 2023 02:50 |
|
Plorkyeran posted:Yes, I’m aware that the idea is to pretend that people are fungible and that the difficulty of a task is a concept that can be talked about independently of who is working on it. That idea has had zero basis in reality in any team I have ever worked in. How it actually works is more along the lines of that person X will complete 6 points if they pick one set of tasks but 20 points if they pick a different set, while person Y will complete 30 points regardless. my less cynical take is that people aren't interchangeable cogs but you should be knowledge sharing and making sure your team doesn't break down into silos of work forever, because what happens when someone wins the lottery or has a life emergency? sure maybe the first time person X picks up a set of tasks about the DB they'll only complete 6 points vs the 20 they'd get from setting up a pipeline or whatever, but hopefully they actually retain knowledge from their DB struggles in a sprint and can do 14 points in that area next time points and velocity are weird abstractions that no one is ever going to agree on, but the idea is that it should just average out over time so you can have a rough idea of what your team can deliver. it might take a while but there should be some eventual collective groove found (in theory, ofc) ive been on teams that have done scrum well and really liked it, but having seen the paradise that is kanban i think of scrum as a set of training wheels while a team grows more effective in self organizing and gaining trust with each other. trust meaning both between devs knowing what they're doing and any management involved on a team recognizing that the devs aren't full of poo poo. points and burndown charts are unfortunately really nice safety blankets though for anyone that wants to be a micromanager so it's a hard leap to make if you've got bad management
|
# ? Jun 9, 2023 03:19 |
|
Erg posted:my less cynical take is that people aren't interchangeable cogs but you should be knowledge sharing and making sure your team doesn't break down into silos of work forever, because what happens when someone wins the lottery or has a life emergency? sure maybe the first time person X picks up a set of tasks about the DB they'll only complete 6 points vs the 20 they'd get from setting up a pipeline or whatever, but hopefully they actually retain knowledge from their DB struggles in a sprint and can do 14 points in that area next time IMO this is itself an argument against points. A very very normal reaction to having a number is to do the thing which makes the number go up in the short term, which in this case means making velocity go up by only assigning tasks to people who already know how to complete them.
|
# ? Jun 9, 2023 04:42 |
|
If you have a good velocity measure (multiple sprints, not hosed with, not a target) it accounts for different skill/expertise/whatever of devs. People take tickets where they have comparative advantage, the backlog is maintained and prioritized to make sure there are tickets like that available (that provide value), everything is hunky dory. I don't think any of that actually happens in any organization of size, but that's the theory.
|
# ? Jun 9, 2023 06:03 |
|
One of our dev teams has spent the last year working on an API for our software. After a lot of beta testing, we finally pulled the trigger on wide release it's been a trip. By and large, people read the docs, figured out what they wanted to do, and then wrote something that does it with no effort on our part. Huge success, everybody is happy. Except for a series of occurrences that all have the same pattern:
*It's just okay, but compared to other APIs in our space, I think it's amazing.
|
# ? Jun 9, 2023 08:30 |
|
steckles posted:[*]The query that is being run seven times per minute or whatever is essentially asking for an entire database's worth of data You want to avoid the situation where the users decide the only way to get what they want is to mirror your entire database. If they do you will just end up with a series of daily/weekly queries asking for all your data, and end up with the blame for any data inconsistencies anyway. Try to design your API to support what they want to do, and not support the sort of use you don't want to see?
|
# ? Jun 9, 2023 08:40 |
|
thotsky posted:You want to avoid the situation where the users decide the only way to get what they want is to mirror your entire database. If they do you will just end up with a series of daily/weekly queries asking for all your data, and end up with the blame for any data inconsistencies anyway. I think there was some self-selection bias though. The people submitting sensical feature requests aren't the same as the people who see the API as a rock they can bash their particular dashboard fantasies against. We'll probably enforce pagination in the next rev at least. There will be some whining I'm sure.
|
# ? Jun 9, 2023 09:08 |
|
You should have just made pagination mandatory. Then they'd have to do some extra work to get the whole database. A lot of Apis enforce pagination.
|
# ? Jun 9, 2023 12:14 |
|
Pagination is an MVP feature in my mind, alongside whatever you use for observability. Exposing a "get literally everything" access mechanism is just asking for trouble.
|
# ? Jun 9, 2023 12:20 |
|
Something I've done before to avoid queries for the whole database without paging is rather than offering fromDateTime/toDateTime parameters, just offer a date param. Callers can get at most 1 day of production data at a time, quick to implement, easy to understand. Not that I have anything against paging, but this method worked for a particular use case, given the amount of data generated in a day. I agree though that as soon as you offer date range params, you'd need a really good reason not to paginate.
|
# ? Jun 9, 2023 13:35 |
|
Yeah, lesson learned. Pagination on queries that request more than some relatively low number of datapoints should have been a requirement from the start, rather than optional. I should say that almost all of the API users so far have written efficient queries that return exactly what they need, it's a small subset that seems to default to the "get everything as often as possible" mindset.
|
# ? Jun 9, 2023 20:17 |
|
Jen heir rick posted:You should have just made pagination mandatory. Then they'd have to do some extra work to get the whole database. A lot of Apis enforce pagination. Rate limits too. Because the response to pagination by abusive consumers is just to iterate millions of pages.
|
# ? Jun 9, 2023 20:26 |
|
Jen heir rick posted:You should have just made pagination mandatory. Then they'd have to do some extra work to get the whole database. A lot of Apis enforce pagination. New Yorp New Yorp posted:Rate limits too. Because the response to pagination by abusive consumers is just to iterate millions of pages. Both of these are extremely relevant.
|
# ? Jun 10, 2023 01:38 |
|
New Yorp New Yorp posted:Rate limits too. Because the response to pagination by abusive consumers is just to iterate millions of pages.
|
# ? Jun 10, 2023 16:30 |
|
Don't hard block at the rate limit, just start introducing errors and inconsistencies, really ruin someone's day. Oh the value is 'foo' when you respect rate limits? Now it's 'bar', hope you're not using this for anything important.
|
# ? Jun 10, 2023 18:23 |
|
Just throw an error in a completely different JSON format or w/e so that their lovely one off script to scrape your database blows up completely
|
# ? Jun 10, 2023 18:26 |
|
My probably-very-bad strategy had been to make an undocumented API endpoint that does the exact calculation the bulk-data-exporter actually wants. Obviously, a better option is to have a proper reporting and analytics system. But if that doesn’t exist… meh.
|
# ? Jun 10, 2023 18:34 |
|
Macichne Leainig posted:Just throw an error in a completely different JSON format or w/e so that their lovely one off script to scrape your database blows up completely This, but have several different error formats and pick one at random each time. Also return them with a status 200 OK.
|
# ? Jun 10, 2023 22:22 |
|
Vulture Culture posted:I am the abusive consumer. My response to rate limits is to stay as close as possible to the rate limit until I have grabbed all of the data. Sorry (not sorry), please provide a bulk export API and thank you. is that not what the pagination was for in the first place I’m assuming these are pages of 100 results or whatever, not one at a time
|
# ? Jun 10, 2023 22:40 |
|
The pagination is to make it just enough of a pain in the rear end to grab the entire db that people won't default to grabbing the entire db and then doing a client-side calculation that only needs a small portion of it. Sadly you won't really stop external developers from doing client-side calculations instead of using the perfectly good APIs you've given them for doing those calcs on the server, but at least you can mitigate the impact.
|
# ? Jun 11, 2023 01:22 |
|
Speaking as someone often doing the bad thing (grabbing all of the data in one api call) it's because the client doesn't want to spend money on a subscription and would rather use the free 50 or 100 calls "creatively"
|
# ? Jun 11, 2023 05:28 |
|
epswing posted:This, but have several different error formats and pick one at random each time. Also return them with a status 200 OK. No, you need to start out with proper error statuses and only switch to everything being 200 OK after the first few.
|
# ? Jun 11, 2023 06:02 |
|
Jabor posted:people won't default to grabbing the entire db and then doing a client-side calculation that only needs a small portion of it Just give me periodic dumps of this poo poo to S3 or Snowflake so I don't have to do all this work, please
|
# ? Jun 12, 2023 15:47 |
|
epswing posted:This, but have several different error formats and pick one at random each time. Also return them with a status 200 OK. Random HTTP status, random data format, every time. This is a no-automation API, you have to use it manually and scribe the data over by hand
|
# ? Jun 12, 2023 16:18 |
|
Vulture Culture posted:Joke's on you, I do this so much that I default to building these as Dagster ETL pipelines On the topic of ChatGPT, I was at a conference last week and ended up talking to a few PE and VC guys and the consensus among them was that they wouldn’t touch a company that used AI generated code. They’d invest in a company making AI coding tools, but not a company using them. Apparently they all sought legal council and every single lawyer came back with a different answer regarding IP ownership. “We’re gonna wait for the first few lawsuits to be settled before proceeding” was the common refrain. Granted, they all worked for small to medium sized funds and didn’t own any senators or Supreme Court judges. So I guess if you owned a company, were hoping for near term investment, and also wanted to use AI to write code, you might want to wear a hat. On the other hand, if you hated your boss and knew they were shopping around for investors….
|
# ? Jun 14, 2023 00:55 |
|
steckles posted:I hope you’re not dealing with any controlled data. We had to stop a beta user who was on the verge of violating a pile of data export laws trying to duplicate their data to S3. We issued additional guidance to clients after that, but I wonder how many people bother to read it. steckles posted:On the topic of ChatGPT, I was at a conference last week and ended up talking to a few PE and VC guys and the consensus among them was that they wouldn’t touch a company that used AI generated code. They’d invest in a company making AI coding tools, but not a company using them. Apparently they all sought legal council and every single lawyer came back with a different answer regarding IP ownership. “We’re gonna wait for the first few lawsuits to be settled before proceeding” was the common refrain. Granted, they all worked for small to medium sized funds and didn’t own any senators or Supreme Court judges.
|
# ? Jun 14, 2023 15:36 |
|
Vulture Culture posted:Since when are VCs spooked by IP violations or the threat of lawsuits? These things only ever show up in the long game once the company has already gotten a billion dollar valuation and the early investors have all gotten out. VC's will invest in people stealing intellectual property, but not in stolen intellectual property.
|
# ? Jun 14, 2023 17:25 |
|
Vulture Culture posted:Since when are VCs spooked by IP violations or the threat of lawsuits? These things only ever show up in the long game once the company has already gotten a billion dollar valuation and the early investors have all gotten out. IP issues become a problem at exactly the point in the process where the early investors get out. If the current investors are participating in a funding round then there's sometimes a bit of trust extended that they were keeping an eye on things, but if they're trying to exit then there's a lot of scrutiny to make sure that the new investors are actually buying something.
|
# ? Jun 14, 2023 18:34 |
|
Plorkyeran posted:IP issues become a problem at exactly the point in the process where the early investors get out. If the current investors are participating in a funding round then there's sometimes a bit of trust extended that they were keeping an eye on things, but if they're trying to exit then there's a lot of scrutiny to make sure that the new investors are actually buying something. Yeah, the VC and PE types who invest early in smaller companies are usually looking to cash out when the company gets acquired by some bigger entity. At least, the ones I’ve run into tend to be pretty conservative as far as who they will give money to. It’s an entirely different group who want to juice disruptive techbro garbage to the moon and cash out with a multibillion dollar IPO. Those guys usually have the money and connections to fight big legal battles and seem to be a bit less concerned with things like profitability, legality, or anything other than vibes or whatever.
|
# ? Jun 15, 2023 01:39 |
|
So the tiny startup (<10 employees) I've been running tech for got acquired by another small company (<150 employees) and I'm having some trouble adjusting. The new company has a real meetings-first culture that I'm finding unproductive. One of the things that's coming up that I feel I might be able to have some influence on is that I'm being asked to give talks or demos about parts of our tech stack. I did one already and I don't feel like it was very good or useful, mainly because I just don't think a live Zoom presentation is a very effective way to convey information. I've been asked to give another one on a tech stack that our original company uses that the larger company is interested in. What I want to do instead is either pre-record a video or write a fairly in-depth post about the subject and then use the meeting time just for Q&A. I think this will let me present the info in a better format and make it easier for anyone who's interested in the topic to consume it on their own schedule. In my first week most of the people that I talked to made jokes about "too many meetings" so I know I'm not the only one feeling it. I also know my coworkers from the original company are all fairly frustrated at the inefficiencies. We were running pretty tight ship and it sucks to feel like we're losing that, especially since all through the acquisition process they kept pumping our tires about how impressed they were at what we'd accomplished with such a small team. I'm fairly senior in this company and it's pretty small so I guess I'm wondering if I have any hope of influencing the culture to be just a little more async. I've never worked in a company this large before. My other question is does anyone have experience doing these kinds of internal blog posts or videos? Any tips for making them engaging enough that people say "oh hell yeah this is better than what we were doing"
|
# ? Jun 18, 2023 19:50 |
|
prom candy posted:So the tiny startup (<10 employees) I've been running tech for got acquired by another small company (<150 employees) and I'm having some trouble adjusting. The new company has a real meetings-first culture that I'm finding unproductive. One of the things that's coming up that I feel I might be able to have some influence on is that I'm being asked to give talks or demos about parts of our tech stack. I did one already and I don't feel like it was very good or useful, mainly because I just don't think a live Zoom presentation is a very effective way to convey information. This is all personal experience stuff, I haven't read any books/etc on the topic, but: The biggest problem with making videos or stuff outside of a meeting is that (in my experience) nobody ever does pre-reads or other meeting prep stuff, especially if the company is big on meetings. Why? Because they're either busy or in another meeting/etc. Your thought process makes sense, but I would expect that if you tell everyone 'watch this 30 minute video then show up to the meeting for Q+A' you're going to have a lot of folks showing up with zero context. Videos aren't a bad thing as long as the expectation is that people will watch them when they need to know info about it. The biggest problem with videos is that you can't update parts of it easily as your documentation changes, so they become a sort of static point in time summarization of whatever topic you're talking about. Honestly, as much as I get you're not interested in doing so, this company might just really appreciate this style of communication, and it's not as though 'single person presents concept and then has Q+A' is inherently ineffective, we've been doing stuff like that since the greeks and probably beyond. I would focus more on trying to figure out what makes a presentation effective or not and less on 'how can I change this new company's culture'. You also could record the zoom meeting and then distribute it afterward, so you still get the video record. However, if you DO want to effect the culture, there are a lot of books/etc about this, so you might be able to find some sources you can use to try and influence change, but just know that it's not going to be particularly easy. My current big tech company (or at least my organization) has a few policies around this that I think are pretty smart (and might reveal where I work, but I still think these are good ideas): - No pre-reads. If you have to review a document/etc, everyone takes the first X minutes of the meeting to read it quietly, then you go through Q+A. (I previously worked at another big tech company and I can confidently say in 11 years I never saw anyone do a pre-read unless their rear end was on the line, like showing up to a meeting with their VP/etc or having to discuss the slides) - Meetings should contain as few people as possible; if you want to know about something, you can show up or request a meeting, but there's no inherent idea that everyone needs to know everything. (This is definitely a struggle with tiny companies getting bigger, which might be appropriate to your acquiring company. When you're 10 people, everyone CAN know everything, but once you start growing, companies get 'taller' org structure wise, while trying to retain the idea of 'of course the VP knows about your tech stack!', which is frankly ridiculous.) - We still have symposium / big presentation style meetings, but they're specifically separated from 'deciding/discussing things' meetings. If you show up to one of those, the idea is not to improve the product being described, it's for you to learn about it and ask some questions.
|
# ? Jun 18, 2023 20:12 |
|
prom candy posted:My other question is does anyone have experience doing these kinds of internal blog posts or videos? Any tips for making them engaging enough that people say "oh hell yeah this is better than what we were doing" for sharing tech stack stuff or things like why to continue from something we did as a spike, imo you always want to have some context for pain points with the current tech stack so you can say why thing B is solving issues present in thing A maybe you'll be presenting to people who are sharp enough to pick out from your presentation how your tech stack is going to save them time/frustration, but it's not guaranteed. people with lazy brains (like me) are usually going to need some kick start or context for how the thing you're selling them on is going to improve their lives people fuckin love graphs in my experience, if you can flash a chart or some numbers about poo poo like build time or something their brains will probably turn off and go "yes!!" E: also i cannot emphasize this enough Falcon2001 posted:- No pre-reads. If you have to review a document/etc, everyone takes the first X minutes of the meeting to read it quietly, then you go through Q+A. (I previously worked at another big tech company and I can confidently say in 11 years I never saw anyone do a pre-read unless their rear end was on the line, like showing up to a meeting with their VP/etc or having to discuss the slides) i have attempted pre-reads for work that my own team was going to do estimations on, stuff that i tried to make readable in 20 minutes or less so they could get context for any questions before we had to do pointing rituals. without fail I'd spend 20 minutes every meeting anyways explaining what was on the pre-read. you will always have at least one person that's not gonna do the homework and you'll need to either choose to let them hang in the wind (i never did this but wish i did) or have to explain it all anyways Erg fucked around with this message at 20:32 on Jun 18, 2023 |
# ? Jun 18, 2023 20:28 |
|
Erg posted:without fail I'd spend 20 minutes every meeting anyways explaining what was on the pre-read. you will always have at least one person that's not gonna do the homework and you'll need to either choose to let them hang in the wind (i never did this but wish i did) or have to explain it all anyways Never assume your audience will do any homework, they all have poo poo to do. Even if you assign time for people to read something, they will still get distracted.
|
# ? Jun 18, 2023 21:18 |
|
Yeah, for better or for worse that meeting duration is dedicated to that topic. Some people just aren’t going to be able to context switch until it’s exactly that time (I’m guilty of it, I don’t have any excuse, it just happens)
|
# ? Jun 18, 2023 21:37 |
|
So then I guess ideally for me I'd produce the video or post or whatever and then that would be the end of it. If someone had questions they could ask me or if enough people had questions I could set up an optional meeting where only people who read/saw the thing and cared enough could come talk about it. The last thing I want to do is present to people who are only attending because it's on their calendar. What it kinda seems like to me is that they have ceratin recurring meetings then things that roughly fit bill are slated into them. I've been attending some other meetings as well where it appears that the meeting is on the calendar and then the person or people running it need to go out of their way to find content for it. This seems backwards to me if the goal is efficiently share information but maybe I'm looking at it all wrong and the actual goal is to have a meeting and increase collaboration. If that's the case I guess I'm not going to get anywhere by "helpfully" trying to turn a talk into a blog post.
|
# ? Jun 18, 2023 21:37 |
|
No way I would ever watch that video unless a boss told me to do it and I gained something material for doing so.
|
# ? Jun 18, 2023 21:43 |
|
Honestly if you’re not going to take 30 minutes and present I wouldn’t bother with a video even. I doubt most people will even click on the video let alone watch it to the end If you’re going to put anything together that will potentially be forgotten or ignored a word doc goes further than a video I think The culture sounds like it kind of sucks though, sorry friendly goon Macichne Leainig fucked around with this message at 21:47 on Jun 18, 2023 |
# ? Jun 18, 2023 21:43 |
|
|
# ? May 27, 2024 09:23 |
|
prom candy posted:So then I guess ideally for me I'd produce the video or post or whatever and then that would be the end of it. If someone had questions they could ask me or if enough people had questions I could set up an optional meeting where only people who read/saw the thing and cared enough could come talk about it. The last thing I want to do is present to people who are only attending because it's on their calendar. FWIW: I don't think that raising a concern about this is totally crazy or anything. "Hey it sure seems like these meetings aren't that useful or that they're just looking to fill time, can you let me know where these came from?" can help you figure out why they're being run, and from there you can at least take a shot at fixing it. Like if the reason it's run is because the CEO personally thinks this is important, you just give up because that poo poo ain't changing without a riot. But it might be some random PM or manager and you might be able to let them know 'hey I work here and don't think this is very useful'. Landing that message successfully is an entire field of study so y'know, good luck, but it's not impossible. The big point is don't try and change it because of this specific problem you're having, change it because it's fundamentally not useful to you. This thing can be an example, but don't get hung up on it.
|
# ? Jun 18, 2023 22:04 |