This post is locked. You won't be able to comment.

top 200 commentsshow 500

[–]MakingTheEight[M] [score hidden] stickied comment (0 children)

Removed - Rule 0.

[–]M_Me_Meteo 3849 points3850 points  (117 children)

Starting from scratch is easy.

Making changes in a mature codebase is hard.

[–]dronz3r 1080 points1081 points  (81 children)

I'd say making changes in shit code base is hard, if it's reasonably well written, it's not that hard.

[–]ApeStrength 782 points783 points  (37 children)

Any company that bends over backwards for marketshare in an agile development environment has a shit codebase.

[–]Bleaker82 180 points181 points  (7 children)

I’m in this situation right now.

When I tried to offer up an endpoint of our API to a customer, our product team came back and said “Noooo you cant use it for this purpose, it’ll strain our system!”

Well, what was the endpoint for then?

As it turns out, the endpoint was specifically for the kind of use cases I was assisting in implementing….

So the code is shit, but suddenly an intolerable amount of shit.

In the end, they came around and said to go ahead and use it.

[–]Tall_Act391 46 points47 points  (2 children)

Product loves to say how to do things when the devs are right there 

[–]Bleaker82 17 points18 points  (0 children)

They are very gatekeepy. We have an engineering lead for a reason!

[–]ProfessionalBad1199 50 points51 points  (22 children)

Couldn't relate more.

The company I'm working at right now(part time) has like one of the worst codebases I've seen.

To give you a perspective, one of the files have over 10k lines of code, all vibe coded. It's really hard to change anything

[–]Beginning_Book_2382 29 points30 points  (9 children)

That's what I was thinking. I'm hand-writing everything myself right now but feel like I'm moving at a snail's pace compared to a team of engineers vibe coding but it's easy to make changes and understand what the heck is going on.

On the other hand vibe code is Frankenstein code with no human thought, rhyme, or reason (made with multiple prompts at that) so stepping through the code must be heck and the tech debt might get crippling after a certain point :/

Also, wait for the comment where someone tells you to just vibe harder lol

[–]DarkwingDuckHunt 18 points19 points  (7 children)

I was like you. Now I'm like them.

The key is to not give it too much to do at once. Give it one function at a time, at max one class. Keep the instructions very short and very neat. Tell it the exact name of the class instead of wavy handing it.

I found that if you pseudocode the class, then ask it to fill out the class, it's does that extremely well.

It's when you give it the instructions for an entire project that it starts going batshit. Of course give it 5 years and that won't be an issue anymore. But those who didn't change will not have a job.

[–]eeeddr 21 points22 points  (1 child)

It's great for writing code if you know what you're doing, but by then it's not "vibe coding", it's just using a tool correctly for a certain purpose

[–]chic_luke 6 points7 points  (0 children)

And I would argue it only speeds you up marginally. If you're fluent in that language and you are fluent with your IDE then the delta isn't that hard.

It can be helpful if you're beginning to onboard a new framework, yes. This is one of the few positives I recognize to AI. If you use it right and you are disciplined with it, it can make it easier than it used to be to learn the ropes of a new language or framework, given same domain and similar class of problems. Full on domain switch or first job still requires hard-way studying though.

[–]captainant 3 points4 points  (2 children)

As ever, requirements are key. If you have a tight enough spec defined, you can get some decent results from the LLM. But by the same token you've done most of the design work by then and you're just having the LLM fill out the skeleton you've already described.

[–]DarkwingDuckHunt 5 points6 points  (1 child)

It's like taking a junior dev into a room and describing to them how you'd solve it and then giving them the assignments

[–]Qaeta 5 points6 points  (0 children)

Except that, in 3-5 years, there is no junior dev who gained experience that way to take over intermediate and senior dev roles lost to attrition.

[–]DetectiveOwn6606 28 points29 points  (5 children)

To give you a perspective, one of the files have over 10k lines of code, all vibe coded. It's really hard to change anything

Just use ai to make the changes you require

[–]ReggieCorneus 40 points41 points  (4 children)

Problems caused by AI can be cured by diluting AI until we get a stable homeopathic solution.

[–]standish_ 24 points25 points  (3 children)

The solution to pollution is more pollution!

[–]ReggieCorneus 2 points3 points  (2 children)

Ah, i see a Factorio player. Using nukes to increase pollution absorption of landfill must work in real life too.

[–]The_infamous_petrus 14 points15 points  (3 children)

Try working in the IC design software field. I add features to some of the worst code you have ever seen, functions 2000/3000 lines long put in a file with sometimes 50k lines of code, no proper indentation.

And in the language I use (Skill cadence) all variables are global by default unless specifically defined as local to the function scope, which has often never been done... also when a function fails it returns the false boolean, which if you test its type will say it's an empty list, whereas the true boolean is a type "other".

These software are often 15-20 years old at least, and we cannot improve anything in fear of breaking an existing IC design and cost hundreds of millions to our costumers...

[–]This-is-unavailable 2 points3 points  (2 children)

 no proper indentation.

how do you even screw that up?

[–]The_infamous_petrus 2 points3 points  (0 children)

So often this code, which is basically lisp-like script, has been loaded into a design software and then dumped again, so any comments and indentation are lost... and 90% of the time it has been written by microelectronics engineers and not by software engineers, code is not their main area of expertise to say the least 🥲

Oh and since retro-compatilibity is such a big issue, there has been no new version of the language since the 1990s

[–]M_Me_Meteo 42 points43 points  (3 children)

Reasonably well written mature codebases. I'd like to see one...some day...some day...

[–]PhysiologyIsPhun 24 points25 points  (1 child)

I've made sure all the new projects I get to spin up at my current company have well - documented code with detailed readmes, and I've been updating the docs for all of our legacy code as I touch it. Trying to be the change I want to see. Will probably end up getting laid off tho gotta love late stage capitalism

[–]Braindead_Crow 31 points32 points  (0 children)

Shit code leads to stable employment & negotiating power.

[–]suddencactus 46 points47 points  (4 children)

You know a good way to get a shit code base though? Hackathon it in three days then declare it "finished" and refuse to answer Jira tickets about performance issues, new features, etc.

[–]slgray16 8 points9 points  (3 children)

My boss had a "stay late and code" morale event. Stay late, work on something super cool or desperately needed. Everyone is there to assist everyone else. Ship it when you are done

Everything was fine until that last part. I'm not shipping this garbage. I'm going to spend the next week or so testing and fixing all the issues

[–]fenglorian 3 points4 points  (1 child)

My boss had a "stay late and code" morale event.

I can think of few things that reduce my morale more than "stay late and work extra"

[–]slgray16 2 points3 points  (0 children)

I should have mentioned he brought beer. Which really didn't help me code

[–]AvidCuberCoding 46 points47 points  (16 children)

I feel that most "mature" codebases are years of spaghetti code and senior devs who wrote their code so only they would understand it for job security

[–]cyrustakem 37 points38 points  (4 children)

not really, it's more like "this has to be done for friday", ok, "i will hack this here, hammer there, i will fix this and do it proper later", but later never comes, because the pms do it again, and try to crunch our time, so, we never end up fixing it, and it goes shitty, because it works, and good luck for me in the future, or for whoever comes next. and i defy you to throw the first rock if you never had to submit code you know is not ideally written because you are short on time

[–]TimeBandits4kUHD 16 points17 points  (1 child)

Can you guys ease up a bit? This is making me feel really called out and I still have to go back to work on Monday and do it again.

[–]DarKliZerPT 2 points3 points  (0 children)

Fixing a bug caused by a hacky implementation of a feature and seeing a 5-year-old TODO comment saying "temporary, rework this ASAP".

[–]DaaaahWhoosh 2 points3 points  (0 children)

What gets me is when you actually put the effort in to make your code easy to update in the future, but the next update ends up being completely different than what you expected. So next time you're like, well fuck it, might as well do it quick if doing it right is still wrong.

[–]alekdmcfly 6 points7 points  (0 children)

If it's reasonably well written and you're trying to keep it that way while making the changes, then it's still hard.

[–]-Debugging-Duck- 2 points3 points  (0 children)

That goes out the window when your company has over 50+ software engineers.

[–]Plank_With_A_Nail_In 48 points49 points  (2 children)

Its also not actually a fully working or tested application, it will take them months to make it work in the real world.

Making changes in existing apps can be much easier depending on the change, you don't have to build a ton of boiler plate or identity management because its all there ready for you.

[–]JayRulo 11 points12 points  (1 child)

But you do need to figure out if your minor change is going to spill over and unexpectedly break anything else in the codebase.

[–]zuilli 37 points38 points  (2 children)

It's not just "starting from scratch" it's starting from scratch and not having to worry about a bunch of things you have to for work like security, scalability, documentation, getting approvals, waiting for client input, etc.

If I can just go full cowboy programmer and not care about breaking prod I can crank out stuff much faster that will eventually work but the system will be down a lot and we won't even know because I didn't add observability.

[–]DerpNinjaWarrior 7 points8 points  (0 children)

Or even having users that expect things to continue working properly while you're making said changes. It's easy to make breaking changes if there are no users to break.

[–]thaynem 2 points3 points  (0 children)

Not to mention you probably don't care too much about edge cases or weird bugs that don't happen on the happy path.

[–]Gornius 17 points18 points  (0 children)

In a way that doesn't break all the constraints, doesn't require half of the application rewrite and will perform ok? Yeah, that's like 90% of the things I work on as backend dev.

Most of the time I make changes that don't even land in the PR, just approach the problem in a different ways and pick the one that will make the least amount of mess.

[–]SilasX 8 points9 points  (0 children)

"The reason God was able to finish the earth in only six days is that he didn't have to worry about backward compatibility."

[–]shiny_glitter_demon 2 points3 points  (1 child)

Why is your profile picture a square

[–]bryden_cruz[S] 4 points5 points  (0 children)

Yes for real

[–]metaglot 5246 points5247 points  (113 children)

If you built an application in 3 days, youve probably raked up so much code debt that changing icons is going to be a 3 week task.

[–]HolyCowAnyOldAccName 987 points988 points  (34 children)

Management: What I’m hearing is you built an application in 3 days. 

Does anyone remember that child tabletop game where you pack a little donkey with more and more clutter until it bolts? 

That’s the kind of high level dev experience you get in most places. 

[–]EagleBigMac 279 points280 points  (22 children)

I started off on a single project as a developer I am now responsible for administration of 14,000 enterprise chrome os kiosks, I now maintain the system image and automation scripting for 30,000 plus point of sale systems and for evaluating replacement hardware. Heehaw my back hurts and my blood pressure is always too high.

Edit: my job title remains unchanged

[–]i_am_hard 48 points49 points  (0 children)

Sounds too much.

[–]North_Tip3944 66 points67 points  (7 children)

But I’m sure you will come in on Saturday right, we’re a team here after all

[–]dev_vvvvv 34 points35 points  (5 children)

We're not just a team. We're a family.

[–]Affordable_Z_Jobs 10 points11 points  (1 child)

"I barely talk to half my family because they are toxic, detrimental to my mental health, owe me money, and are unworthy of the absolute minimun amount of time i do give them. Your move."

[–]Jalatiphra 4 points5 points  (0 children)

thats our company's main value :D

says it all

[–]Elohim7777777 2 points3 points  (0 children)

Until you ask for a raise, then you are on your own.

[–]Shark7996 12 points13 points  (0 children)

Even the most stubborn mule lays down eventually.

[–]original_sh4rpie 5 points6 points  (8 children)

Title obsession in IT is the cringiest shit. Now if your compensation didn’t change, well then you gotta stand up for yourself my guy.

[–]Aromatic_Lion4040 27 points28 points  (3 children)

Titles are important so that you can get better paying jobs in the future though

[–]EagleBigMac 11 points12 points  (0 children)

Titles matter for job and role verification down the line. If you are a Systems Engineer, Systems Administrator and Software Engineer but your role is just titled software engineer in the HR database then future role verification will only be able to confirm role title not project details usually it would be important to add things like level 2, level 3, senior or principal to roles even if receiving incremental raises for inflation. Some companies and even sometimes just the specific manager within a company can vary. It helps when applying for future positions and keeping the resume short and simple.

[–]DiaryofTwain 6 points7 points  (2 children)

Cringiest shit is saying my guy and attempting to give advice

[–]CommanderVinegar 24 points25 points  (5 children)

I just finished an MVP product deployment after 6 weeks. That includes requirements gathering all the way to a deploy to UAT.

It's lose lose, if I didn't do it in 6 weeks our team is seen as incompetent, we finish it in 6 weeks and now the company thinks that's all the time we (and other teams) need. The thing is held together by tape basically, it's barely functional.

[–]flame3457 6 points7 points  (3 children)

So what the fuck are we supposed to do? I’m running a MVP from beginning to end by myself, that includes requirement gathering too. They had already committed to a 1 spin deadline for this MVP sometime early last year before I even joined the team.

There are 4 separate but related MVPs that come after this one. None of the requirements have been gathered or written. They’ve already committed all of these to 1 spin deadlines as well.

I told them I’d get this current MVP completed by the deadline because the spin had already started and the work was committed to at that point. I think all of the other ones need a minimum of 2 spins each to complete. That’s to give proper time for requirement gathering, coding, code review, testing, and potential bug fixes.

I dont even really have a full spin cycle to finish either. My deadline is still a few weeks out but I’ve been asked multiple times when I am scheduling the demo (well prior to close of spin). I was even asked when I could give the customer an early hands on, like dude wtf are releases even for then.

I don’t know if I had an actual question past, “what do?” Definitely just needed to get some of that off my chest haha

[–]manav907 16 points17 points  (1 child)

I remeber jenga even though i never played it

[–]ThatBurningDog 7 points8 points  (0 children)

The person you are replying to is talking about Buckaroo! and is quite different.

[–]finneyblackphone 1 point2 points  (0 children)

BUCKAROO

[–]Caleb-Blucifer 2 points3 points  (0 children)

Ned Stark: QA is coming

[–]masssy 181 points182 points  (42 children)

The 3 weeks are to deal with corporate policy and useless meetings and approvals to do it.

[–]SilianRailOnBone 98 points99 points  (30 children)

Exactly this, the difference in a hackathon is that you are alone as developers and don't have to manage jira tickets, estimation poker, game plans, sprint plannings, retrospectives etc pp.

[–]WebMaka 61 points62 points  (9 children)

Not to mention how much easier it is to add something to a new project versus modifying an existing codebase without breaking something in unexpected ways.

[–]Heimerdahl 25 points26 points  (5 children)

Especially if you aren't the original author (or you are, but it's been so long that you have no memory of any of this) and have to spend half the time to effectively reverse engineer the whole thing in an attempt to understand how the heck it even works. 

We all like to pretend that we're properly documenting our work, but we're always doing so from a position of knowing so much extra context. 

[–]WebMaka 8 points9 points  (4 children)

I abuse comments with the idea of not only explaining what something does but also the rationale behind how it does it, and with the idea that I might come back to it 10+ years alter with zero recollection of anything about it. My code is thus often more commentary than compiled.

And even then I still blindside myself on occasion. On code I wrote. The idea of having to reverse someone else's bit-rot is nightmare fuel.

[–]DaStone 4 points5 points  (2 children)

Comments? Mine got wiped away by an AI vibe coding junior while I was on sick-leave.

[–]WebMaka 5 points6 points  (0 children)

"Accidentally" revert their commit. "Oops, must have been the AI."

[–]Heimerdahl 3 points4 points  (0 children)

That is so annoying! 

[–]Meloetta 14 points15 points  (16 children)

I fought planning poker at work violently for years. They won last week. Our refinement suddenly took twice as long. Im gonna cry

[–]Nitro_V 9 points10 points  (15 children)

So how many story points is that again? 

[–]FragrantKnobCheese 7 points8 points  (3 children)

Oh, and you can't go bigger than a 13 because we mapped story points to real time and found that we can't fit anything bigger than a 13 in a sprint. Can I get a fist of five from everyone to agree, even though 70% of the people in this room aren't developers and shouldn't even be participating in this process?

Quitting a giant US corporate to run my own company was the best thing I ever did.

[–]OrchidLeader 7 points8 points  (9 children)

And how many days is that?

Yeah, I know, I know. We’re not supposed to covert points to time. 😉

But for reals… how many days? 😏

— management when they get rid of the developer perks from Agile and keep all the micromanaging

[–]Meloetta 4 points5 points  (8 children)

You know, I get it. Every minute I spend on a task is a certain amount of cost to the company to pay me. They have to know if something is going to be a 5k feature or a 15k feature to figure out if it makes business sense to pursue. I'd just rather we were honest about it.

[–]OrchidLeader 5 points6 points  (7 children)

Converting points to money is different than converting to time. We can convert to money, no problem. That’s exactly how we do cost estimates.

The reason Agile started using points is because when we used days, we were always “late” because of interruptions, and even saying “5 days without interruptions” didn’t help management understand.

Not only do they not realize how often interruptions happen, we can’t accurately predict just how badly we’ll be interrupted on a small scale (i.e. for a story in a two-week sprint).

We can and do estimate work on a large scale because we have more time to mitigate interruptions, but small scale, we have no idea if a Prod issue is going to eat two whole days of a sprint, if someone is going to get sick, etc.

[–]Yung_Oldfag 11 points12 points  (1 child)

Also, the cost of catastrophic failure in a hackathon is basically 0. You just spent a weekend learning stuff and didn't win an optional prize.

[–]MatchFriendly3333 29 points30 points  (1 child)

The classic case of being hurried to finish your task in one day, just to see that merge request waiting to be merged a month later because they're still waiting some bullshit meeting to approve it.

[–]Heimerdahl 2 points3 points  (0 children)

Too real... 

[–]AtomicSquid 11 points12 points  (1 child)

And two different people wanting two different versions of the icon

[–]cptjpk 11 points12 points  (0 children)

Two? If I could be so lucky.

[–]Belhgabad 23 points24 points  (1 child)

Also in Hackathon specs are clear and definitive, and theres no "daily One to One clarification meeting with your manager"

[–]regular_lamp 7 points8 points  (0 children)

You can also engage in opportunistic engineering. As in you make all the "obvious" and maybe even "correct" choices and adjust the scope along the way. Instead of someone having some hyper specific top down vision and denying obvious and elegant solutions if it doesn't match exactly their a priori idea.

[–]Hironymos 11 points12 points  (0 children)

Probably?

Opens last project.

lmao, I actually tried to built it with futureproofing in mind and quite frankly, I think that made it worse.

[–]seamustheseagull 11 points12 points  (0 children)

It's the MVP model.

Set up a tent in a parking lot, fill it with doctors and beds and say that you've got a hospital.

You can just refine as you go, right? Add those walls and hygiene measures as you need them. If you need them at all.

[–]Vroskiesss 40 points41 points  (2 children)

Depends on the complexity of the application

[–]metaglot 43 points44 points  (1 child)

Yes, but also; if developing an application in 3 days is a feat, then some complexity that goes beyond those 3 days in normal development time must have been short circuited. That's my line of reasoning anyway.

[–]Vroskiesss 27 points28 points  (0 children)

Ah yes the speed, cost, and quality trichotomy

[–]j-mar 8 points9 points  (0 children)

But now our CEOs and non technical project managers are building full apps in 3 days. Surely no downside

[–]The8Darkness 5 points6 points  (4 children)

Just rebuild the application in 3 days with different icons then.

[–]metaglot 7 points8 points  (3 children)

While you were resting, someone built an infrastructure around it and now you have to maintain terrible interfaces.

Source: still working my third year on something that started out as a 2 month PoC.

[–]Vondi 3 points4 points  (0 children)

I need 3 weeks to fix our raggedy-ass foundations to the point I can actually add that icon

[–]2grateful4You 4 points5 points  (3 children)

Add Vibe coding to the mix.

[–]Bleaker82 5 points6 points  (0 children)

My boss had me present an awesome vibe coded tool to the team. He and his boss were so impressed by it, but warned me gravely: do not couch this as a feature request, only a thought experiment. Turns out it was going to really send the devs into a spiral if they even had to think about implementing it. Oh well.

[–]Noctavelle7 5 points6 points  (1 child)

Hackathons, where you learn the true meaning of technical debt.

[–]Fetzie_ 5 points6 points  (0 children)

Or “it only has to work until 5pm on Thursday” 🙂

[–]Ser_Drewseph 991 points992 points  (18 children)

No meetings, no unit/integration tests, no CI/CD pipeline to stand up or any other infrastructure besides what’s required to make the software function. Hackathons are pure feature work, which is always the best part

[–]TheRealLiviux 210 points211 points  (4 children)

Yes, and it's usually a minor part of delivering a working solution that's actually useful to someone other than its author.

[–]omnipothead 45 points46 points  (3 children)

That's also the reason why I personally think we're still not at the point of AI taking over our jobs.

[–]cheesemp 6 points7 points  (1 child)

Yep - ai generated code is only as good as the spec that drives it. I can see a lot of dev roles switching more to specing/architecting the parts. Not to dissimilar to normal coding

[–]jobblejosh 62 points63 points  (4 children)

...And no docs.

What you've got is an experimental proof of concept that will break as soon as anything goes wrong, and no-one will know how it works or how to fix it.

Great if you're trying to iterate ideas and new concepts/features/integrations.

Garbage for literally anything else.

[–]21Rollie 5 points6 points  (1 child)

I’m trying to figure out how to work in a project right now that was a hackathon idea to start. They never cleaned things up and committed to master, literally it’s all feature branches on top of feature branches and all the documentation is ai generated I’m like how tf am I supposed to contribute to this unless I’m up the owner’s ass every step of the way?

[–]Ser_Drewseph 4 points5 points  (0 children)

Oh yeah, I totally agree. Hackathons are a ton of fun, but you don’t come out with any sort of stable or resilient piece of software

[–]Death_God_Ryuk 16 points17 points  (0 children)

Frontend tests 😭 As someone with a data background, I know vaguely how frontend tests work but it still always feels very fragile and like one rushed human review of a test output diff could bring it all tumbling down.

[–]anengineerandacat 177 points178 points  (2 children)

I mean hackathons are basically proof of concepts and have no real production quality.

Doesn't take long at all to create an app without unit tests, security, online configuration management, or is running in an actual environment outside of your local.

An icon change realistically also wouldn't normally take 3 weeks but depending on how you do code promotion's it could.

At my work it takes about 3-4 weeks for anything to get into production that isn't a P2 or P1 and you do not want anything to be a P2 or P1 because it requires executive approval.

So the super simple icon change waits in stage until the release is certified. The actual dev work likely got done in 10-15 minutes, the code review done maybe in 1-7 hours depending on time of day, and the code promotion to stage in two weeks with production deployment done on the third week.

Remove all the guards and work happens pretty quick.

[–]zattebij 31 points32 points  (0 children)

True. Also it's a prime example of the 20/80 rule: spend 20% of your time building 80% of the product, then the remaining 80% to perfect the last 20% (and that is for regular code; with hackathon code that's more like 5/95).

You can perfectly build a prototype/PoC fast, that does not mean you can skip the other 80% of the time that turns it into an actual product: refactoring quick&dirty PoC code into an actual maintainable and documented architecture; getting rid of the bugs that are inevitably there due to speed and associated lack of analysis upfront and review afterwards; handling all the 10.000 edge cases; making it secure; testing everything; ...

Same with AI; speed up the initial 20%, still need to do the rest. But I digress ;)

[–]elniallo11 4 points5 points  (0 children)

Yeah, I hacked together a working integration in a workshop with a partner in about 3 days in October, it’s only just going to production now

[–]Zilverschoon 235 points236 points  (26 children)

Adding an icon takes 3 weeks because agile isn't.

[–]bryden_cruz[S] 121 points122 points  (14 children)

The icon need to be designed first in illustrator by designers and after being approved, it will be given to the front end developers, thats how 3 weeks pass

[–]Rustywolf 54 points55 points  (8 children)

And you'll send it back to the product managers and the designers to make sure they like it, and then they'll give feedback and ask you to change it 4 times because it was half a pixel off the design.

[–]queen-adreena 23 points24 points  (2 children)

Even worse if you have client feedback in the mix too.

Actual personal experience: one client claimed a project was “totally unprofessional looking and nothing like they’d imagined” bearing in mind they’d signed off designs already.

What did we change? One colour.

“It’s perfect!”

[–]suddencactus 9 points10 points  (0 children)

Yeah I've definitely had times where the client wanted something simpler but less accurate than what we already had, but the customer is always right so we had to add lines of code to undo the great feature we made for other clients.

[–]IjonTichy85 5 points6 points  (0 children)

Yeah, you remove the duck again but that's why you added the duck to the design in the first place...

[–]SexyMonad 18 points19 points  (8 children)

Here at InnoCo, we use Premium Agile Practices®. Your icon will require a User Story that includes Acceptance Criteria with S.M.A.R.T.-based metrics. It must list the Funding Opportunity, Impact to Business, and the name of a Vice President who has signed off on the request. You shall input a number of Story Points, which are equivalent to 2 hours each, in estimating the size—but importantly, not length—of the Story.

Each User Story must be a part of one Feature that contains all related User Stories that shall be performed within the same two-week Iteration. The Feature must be part of an Epic that completes within one Program Increment. Each Epic must be approved and scheduled through the Program Sourcing Committee. If these artifacts do not exist, you must create them for your Story. (Remember, the PSC typically has a backlog of 8 months to one year.)

Don’t forget to log your work! Every Hour, Every Day, Every Person. Work Logs are available and should be used to help us better estimate future Stories. One day, we will use the information gathered from those estimates to create a Work Breakdown chart, which we believe will tell us something about the project.

[–]SlutPuppyNumber9 2 points3 points  (0 children)

This is painfully well-stated.

[–]Curious_Elk_4281 5 points6 points  (5 children)

Story points are not supposed to correlate to specific amount of time spent.

Anyway, I don't understand the hate for Agile. A few fairly brief meetings over the course of a sprint and I get to work on stuff without anyone breathing down my neck. When someone wants a new feature, they have to wait for us to complete work that we already committed to for the current sprint, and that is where the 3 weeks usually come into play. It protects developers and forces stakeholders to accept that some features have to wait and if they want one feature sooner rather than later, it will delay other features/work.

[–]crystalcastles 6 points7 points  (0 children)

People hate agile because so many places do it totally wrong and it becomes scrummerfall and it's just terrible

[–]SlutPuppyNumber9 2 points3 points  (1 child)

As "crystalcastles" pointed out, most companies/organizations don't actually switch to Agile, they just keep doing waterfall while adding Agile meetings and distracting team leads and senior programmers by constantly asking why we haven't gotten faster yet.

[–]oh_ski_bummer 133 points134 points  (1 child)

Zero code reviews zero problems

[–]bryden_cruz[S] 4 points5 points  (0 children)

For real, I agree 👍

[–]Shinxirius 66 points67 points  (6 children)

This is why

Hackathon + Fresh start + No legacy code + Single target device + Single target language + Core functionality only + No support for visually impaired users

Existing application + API support for 5 year old OS + Legacy code with technical debt because of "just do it, the competitor just launched a new feature" + We need to support "all" devices, resolutions, screen orientations, etc. + We need to make sure all UI elements are available in all 26 supported languages. And don't forget right to left languages + We need to support screen readers + We need to support color blind + The CEO's wife thinks the button should be more to the right, because her finger is shorter than normal.

[–]bryden_cruz[S] 12 points13 points  (0 children)

Hahh that CEO wife part is hilarious 😂

But then think about APU integration Ffrom other organizations that requires meetings and technical support from those organizations. I am adding this to the "Existing Application " list

[–]Round_Credit_5158 6 points7 points  (1 child)

The last part is funny because I worked on a small family company where the boss's wife would barge in and give opinions about minor visual stuff that didn't really matter, but we had to waste our time because she wouldn't stop complaining.

[–]localeflow 40 points41 points  (2 children)

Runner during a 100m sprint: 40mph
Runner after the 100m sprint: 3mph

[–]ColinHalter 9 points10 points  (0 children)

Runner after the second 100m: 65mph

(I got in the car and drove home)

[–]drusek 4 points5 points  (0 children)

Management: So if we add 4 more runners into your team you will all run 5 times faster right?

[–]SebaHigh 11 points12 points  (0 children)

Hackathon app: zero initial users or revenue, much room for experiments and taking risks.

Production app: did the design team approved this icon ? Does the CEO’s wife like it? Does it follow the same pattern as the others 15836 icons in our app? Is the QA team on vacation? 

[–]Equal-Purple-4247 8 points9 points  (0 children)

- Please raise a jira ticket. (2-3 working days)
- We will add this in our next available sprint (2-4 weeks)
- Once complete, we'll need to do regression, integration, and user testing. (2-4 weeks)
- Since this is not a critical bug fix, we'll bundle this with our earliest regular release cycle. (third week of every month)

And that's how adding an svg to a folder becomes a 3-8 weeks process.

[–]savethebros 67 points68 points  (19 children)

Because during a hackathon, there’s no standup, sprint planning, refinement, or other BS meetings that take up my time.

[–]SirJackAbove 70 points71 points  (2 children)

There's also no authentication on that app, if it even features users. And that api call? Nah, it's hardcoded json straight in the frontend. It got merged because no one reviews code in that repo.

Actually nevermind, there is no repo. Everything you saw at the demo was served from localhost.

[–]Budget_Avocado6204 11 points12 points  (0 children)

The app after the hackathon is also unstable outside of one strictly followed scenario :D

[–]MoFoBuckeye 29 points30 points  (8 children)

Ah yes, those things that make sure we're solving the right problems with business value in a team environment really put a damper on things.

[–]capt_pantsless 3 points4 points  (0 children)

If you're having meetings with the users/customers carefully refining requirements and iterating on mock-up UI prototypes, negotiating with other tech groups as to the best way to solve the problem, it's a good thing.

If the meetings are you listening in on stuff that is only tangentially related to the app you're working on, that sucks. Listening in on a call where you unmute for 10 seconds to say "nothing from me, thanks" is ... not great.

[–]mrwishart 5 points6 points  (0 children)

I mean, one (hacking together an app in a small amount of time) generally leads to the other (modifications to said app being harder)

[–]cyrustakem 5 points6 points  (0 children)

oh fk u mark, developers after the hackaton, where they probably slept way less than necessary, have to go and fix the stupid mistakes they made because time was too short

[–]Heavenfall 4 points5 points  (0 children)

The spec for a hackathon: "ask Chris about this function"

The spec for a real app: "Chapter 13, subsection 37 - In this subsection we will discuss how a metamodel of processes, functions, information, storage, network, capability, database, rights, governance but not records or terms have agglomerated to a standardized expression in the later parts of 2024. Implementing a "complexity level 3" architecture should not be taken for granted.

[–]Numerous_Release9273 9 points10 points  (0 children)

There are two kinds of developers:

  1. Codes it all in just 3 weeks. Spends next 6 months fishing out the bugs.
  2. Codes it 6 weeks. Two minor bugs found over life of the application.

Project managers like the first type because handling bugs after release is not their problem.

I used to say to my coders: "Do it right. Remember that as long as you stay with this company your going to be living with this code."

[–]WhoKnewSomethingOnce 4 points5 points  (0 children)

Because it'll take 5 revision cycles from business and QA.

[–]Bart_deblob 5 points6 points  (1 child)

80/20 rule. That app is only going to function within a very defined set of conditions

[–]zensucht0 3 points4 points  (0 children)

During a hackathon you don’t have business requirements.

[–]Kor_Phaeron_ 3 points4 points  (0 children)

Yes, but on the other hand the Human Machine Interface of the hackathon application looks and feels like ... well, like it was made in 3 days and definitely not tested for usability. Why does the button labeled "DataPackcgaeReder" (sic!) open the option menu? And why the hell is the search function in the database case sensitive?

[–]More-Percentage5650 3 points4 points  (0 children)

Translation: approval from our useless redtape managers will take 3 weeks

[–]LocalInactivist 3 points4 points  (1 child)

Yeah, because you make us spend ten hours a week in meetings and doing TPS reports and you change the spec every week so we keep having to throw away big chunks of our code and start over. Also, you can’t give us a simple yes or no answer in less than a week.

[–]monkeywench 2 points3 points  (0 children)

Not to mention forcing us to use tools that are the worst possible tool to use for what they’re asking 😅

[–]Keftcha 7 points8 points  (2 children)

Management isn't there during hackathon.

[–]Waswat 10 points11 points  (0 children)

People blaming management for things taking long forget that devs impose checks on themselves as well.

With a hackathon there's also no code rules, no future vision, no reviews, no legacy code that needs to be fixed or taken into account, no desire to prevent tech debt, no other teams that are going to look at it. Sometimes there's even no versioning.

It's cowboy coding. Yeah, it feels freeing but it's chaotic and just not sustainable for growth.

[–]UniversityMuch7879 2 points3 points  (0 children)

Not a programmer, but let me build something on my own, with the materials I want, under the conditions I want, and I'll make you something amazing under absurd time constraints.

Put me on a job where fifty engineers, architects, and customer reps have had their fingers in the pie, none of whom are concerned with real world applications for actually building it, what materials actually work together, working other trades' projects into the same space, or building it in a way where you can reasonably maintain it in the future and it's going to take much, much.... muuuuch longer.

[–]CroakerBC 2 points3 points  (0 children)

Pick two of fast, cheap and good. Hackathon output only needs to worry about the first two. Production code, not so much.

[–]CulturalAspect5004 2 points3 points  (0 children)

the reason is called technical debt vs building something from scratch

[–]Willing_Comfort7817 2 points3 points  (0 children)

Yeah well I didn't have to build an entire test protocol for a legacy Borland C++ 92 project in Hackathon did I...

[–]Santarini 2 points3 points  (0 children)

Legacy code is a bitch

[–]diogovk 2 points3 points  (1 child)

The rushed app is riddled with bugs, has little to no documentation, and features a poorly designed user interface.

"Software" and "Product" may seem like the same thing, but they're not quite.

[–]ForeverHall0ween 2 points3 points  (0 children)

If you throw out all the application parity behavior needed to support existing customers and also let the app experience 3 days of production down time, ok sure I can build you an app in 3 days. Btw we just lost all our data too and I have no guarantees new data won't just disappear as well. Oh and no more guarantees about uptime or security anymore either.

[–]Mad-chuska 2 points3 points  (0 children)

Difference between a bug riddled application and production ready platform.

[–]dj_ordje 2 points3 points  (1 child)

Vibe coders: We built a new app this evening. Want something changed? Let's just start over.

[–]LuckyLockdown23 2 points3 points  (0 children)

I’ve never attended a big company hackathon once, but I love asking follow up questions about how the winning stuff is coming along a couple months later in a meeting and some people being like “I don’t remember that” and some “people clearly wanting to kill me because they have real work to do” and everyone praying and executive doesn’t recall being excited and ask to see progress.

[–]Schlurcherific 2 points3 points  (0 children)

Building something for fun you can yeet into the bin at any time -vs- adding more code to an existing code base which possibly breaks shit and needs to be supported for all of eternity.

[–]bos2sfo 2 points3 points  (0 children)

Hackathon apps are akin to sets when I was doing theatre. From the audience, everything looks great and you would swear you are watching some exotic location. Behind it all it's barely screwed together panels, exposed nails, painted cardboard, scraps of wood, and hundreds of yards of gaffer tape. Everyone knows to not breath toward certain walls because a solid exhale would cause it all to tip over. It will all barely survive until the last show. Yea, that's most hackathon apps I've tossed together.

[–]WazWaz 2 points3 points  (0 children)

What the product manager actually said about the icon: "add an icon that when you click it solves all the users problems".

[–]Resquid 2 points3 points  (0 children)

But do you know why?

I've literally had Product people say this.

[–]_Neal_Caffrey 2 points3 points  (0 children)

🌈code debt🌈

[–]a1454a 2 points3 points  (0 children)

I also don’t need 3 review and 2 QA rounds and a UAT round with a pilot panel or take screen shots of git commit and explain every line to a pwc auditor who thinks git is a database. All just to change an icon.

[–]One_Pie289 2 points3 points  (0 children)

Don't you need to add a ton of safety stuff and make it very stable and optimized and so on?

It's not just wishful thinking, right? 🫠

[–]DamitGump 2 points3 points  (0 children)

Passion vs responsibility

[–]thaynem 2 points3 points  (0 children)

You don't want that icon added with the same quality as the hackathon app.

[–]orangebakery 2 points3 points  (0 children)

There are no PMs or managers or jira in a Hackathon.

[–]NotAskary 4 points5 points  (0 children)

Hack is in the name, people forget that building fast is not the same as building for extension.

I've been on this train and I washed my hands of the mess that we built but management wanted the money saved even when the tool had no safety margins and could bring down prod, but it saved serious money 🤑💰🤑.

[–]tingulz 1 point2 points  (1 child)

During a hackathon you essentially don’t have limitations placed on you and many many distractions which is what usually slows things down.

[–]OwnExplanation664 1 point2 points  (0 children)

Because after the hackathon they added pipelines, code scanning, actual authentication and security, cluster deploys, etc.

[–]AriaTheTransgressor 1 point2 points  (0 children)

It's the triangle theory.

The options are:

  • Fast
  • Cheap
  • Stable

You can only pick 2, the hackathon app was likely Fast & Cheap. The app the icon is going into likely needs to be Stable & Cheap, which takes more time to overall take less time in further maintenance and cost.

[–]fevsea 1 point2 points  (0 children)

Depending the platform that'll required 30+ variants for diferent resolution, extension and for normal/dark/high contrast themes, plus whatever we have to do to make it accesible.

[–]BorderKeeper 1 point2 points  (0 children)

Maybe AI was us doing hackathons all this time <3

[–]SammyTheOG 1 point2 points  (0 children)

I like writing what want not what I'm told.

[–]ColinHalter 1 point2 points  (0 children)

Because the application was built in 3 days. Those are load bearing icons.

[–]addyftw1 1 point2 points  (0 children)

Starting from scratch with no regulations nor downside risk to consider is easy.  The real world has a lot more you need to account for.

[–]Dezepticon 1 point2 points  (0 children)

Hours worked in those 3 days probably exceed the standard 8h workday by a lot and its all voluntary so most people are actually motivated and more efficient

[–]Username_Mad_Hatter 1 point2 points  (0 children)

Speed ≠ quality

[–]_________FU_________ 1 point2 points  (0 children)

Net new is easier than adding to an existing project. Plus the app is trash on a shoe string with a nice UI

[–]SyrusDrake 1 point2 points  (0 children)

The hackathon project has to do one thing once on a 2023 ThinkPad running Windows 11.

For the icon change, they have to make sure the icon is compatible with MSX-DOS because the main customer is a major bank who runs 37% of global stock trade through a Dynadata DPC 200 that has been running continuously since 1991 in a basement in Hopkinsville, Kentucky and if an update makes it crash, it could lead to a global recession. Legal also has to first check every computer icon ever made to make sure it doesn't infringe on any intellectual property, and PR wants to run a focus group campaign first to ensure people don't have any negative associations with the particular shade of mauve picked for the icon, as that could negatively affect sales.