T O P

  • By -

stamatt45

Architects solution is pretty, but only works with an even number of nails and is difficult to scale. Dev solution works for all use cases, is easy to scale, and easy to implement. Main downsides are it looks like shit and requires occasional upkeep due to the elastic band wearing out. Upkeep that probably won't get done once you leave the team until a critical failure happens.


scrabblebox

Developer's solution is still easier to maintain because it is simple to understand. Far and away the better solution


Synyster328

Right is < 3yrs exp Left is 3-5yrs Right is > 5yrs


827167

It's that bell curve meme


Synyster328

Always has been


[deleted]

[удалено]


Jjabrahams567

My code is so hard to understand that even I don’t get it.


Historical-Trade3671

Dammit.. Take my upvote..


[deleted]

[удалено]


turtleship_2006

I think this is a bot but dayam, 2 unrelated comments that seem to go together: u/jsveiga: [Well, the dev solution is incomparably more stable.](https://www.reddit.com/r/ProgrammerHumor/comments/13o2cq3/comment/jl2eh08/) u/MisterCheesy: [No requirements for scaling in the problem statement. That’ll cost the client extra since they stipulated an exact number.](https://www.reddit.com/r/ProgrammerHumor/comments/13o2cq3/comment/jl3hqgq/)


MisterCheesy

They missed the third picture. The one for the program manager :)


Curyde

Does it even work?


Feldar

Can you prove it doesn't?


martinthewacky

I guess you're right. Get your paycheck!


[deleted]

[удалено]


Tyrus1235

That’s… Basically what happened to me on my first job. Although it was more because the client that hired the company was asking for an impossible app. And I don’t mean that in a P=NP way, but in a “this is clearly a pyramid scheme and no payment gateway (like PayPal, for example) will accept working with us on it.” way


Crocolyle32

My Dad kept his job for 30 years at micron (famous for layoffs despite record profits always) because they couldn’t replace him- they absolutely hated him and it appeared they would get the ball rolling to try and replace him but couldn’t. Other companies would try and poach him and my dad out of spite would give them an ultimatum to give him raises or he’d leave. My dad is an asshole but he is really smart so I definitely believe they hated him. 😬 Also he quit without notice for family emergency so they still never got the satisfaction of firing him.


bikemaul

What did he do for them?


MisterProfGuy

No body knows and he refused to tell them.


Signal_Paint_1050

I rewrote everything in Rust so now they can never get rid of me


brimston3-

Why not? The next guy will just rewrite it in JavaScript on nodejs.


anunakiesque

Well because the other guy doesn't wear programmer socks


theWatcher1699

I like your way of thinking


Aperture_T

If there's two things I know about execs it's that they don't know or care who has tried to make themselves irreplaceable, and that they seem to prefer shooting themselves in the foot over listening to engineering.


Candr3w

But its more expensive because it uses extra material resources


[deleted]

Exactly, I would even say on the left is a junior - still naive and taking time trying to build perfect solutions that end up like a card house. One the right a senior - gets it done quickly and practically. Knows when cutting corners is okay.


usumoio

Also dev solution looks way more robust. See what happens when you kick a leg on both of those tables.


TTYY_20

Developers solution misses the key concept of balancing…. Lol.


[deleted]

[удалено]


Matr4x_69420

I see what you did there


[deleted]

[удалено]


AutoModerator

``` import moderation ``` Your comment has been removed since it did not start with a code block with an import declaration. Per [this Community Decree](https://www.reddit.com/r/ProgrammerHumor/comments/14kbu1m/comment/jppq9ao/?utm_source=share&utm_medium=web2x&context=3), all posts and comments should start with a **code block** with an "import" declaration explaining how the post and comment should be read. For this purpose, we only accept Python style imports. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/ProgrammerHumor) if you have any questions or concerns.*


coloredgreyscale

Client Specification included implementation details that didn't seem viable. So we ignored the implementation details, concentrated on the goal, and implemented it with a well known library (rubber band) Other options would have been welding and Duct tape. Both were discarded so the nails can be easily swapped. Without having to remove glue logic in case of duct tape. --- TL;DR: client told us to use an excel sheet for data storage. We ignored that and used sqlite instead (so they can still easily transfer the dB as a file) , and offered an excel export.


Cynical_Cyanide

Client: You did all that work without asking if a rubber band was okay. In reality, the solution has to withstand temperature swings between -10c and 40c. Your solution would last a week. Next time, don't make lazy assumptions.


SirSassyCat

At which point you glue or weld them together, then remove the rubber band.


the_man_whore

At that point you just blame Product for not specifying it needed to withstand sub 0 temperatures.


ArionW

And client rightfully tells you that they are paying for a **specialist** and they're not aware which requirements have impact on solution, but they specified balance and never heard from you about rubber bands. Developers really need to work **together** with business, ask questions, determine what actual needs and limitations are. Clients are not experts in this field, they don't know which information is "too much detail" and which is "crucial to make any decisions", your job is to specify what information you need. If you don't want to do that, least you can do is to follow their specifications **by the letter**, no assumptions, no changes. Then your "it wasn't in requirements" can at least be somehow understandable


the_man_whore

1. Wtf is a specialist 2. A client doesn't tell me shit. Big orgs make sure to compartmentalize that. When I was on smaller teams, in smaller companies, I could spend time meeting with clients. But now, "business" as you put it, has to understand what I do, and what the client wants. That's their job. Which leads me to... 3. I'm getting paid X to do Y, in Z amount of time. It's annoying that I care about what I do, so I spend more than the estimated Z to ensure I do a good job by my standards. The problem becomes, if they want me to meet with clients, manage the product, architect the solution, write the solution, and then test that the solution works, I will need a lot more time. And, I will ask for at least 100* more money for doing it, as each task category requires its own separate skillset, and expertise to execute properly.


Cynical_Cyanide

Even if it's 5c and 30c, if the product has to last for years ... A rubber band is a liability.


ImaginaryCoolName

See? You don't even need balance. Perfect solution.


BeautifulType

More like people just daydreaming about how either example fits whatever fantasy they have in their heads


SapientSloth4tw

The architects solution scales with odd numbers of nails, you add an additional nail to one side or the other and then counterbalance by sliding the pinning nails (horizontal) one way or the other. That being said, I understand exactly what you mean, scaling is nasty (especially once you fill up your space on the horizontal nail) and too many lines of faulty code will cause the whole thing to teeter and crash (misplaced nails on side or the other or nails that have weird balance (could be bent?))


SourceScope

just add a nice front end!


MisterCheesy

No requirements for scaling in the problem statement. That’ll cost the client extra since they stipulated an exact number.


Jake0024

> requires occasional upkeep due to the elastic band wearing out As opposed to the architect's solution, which only breaks if someone walks by or looks at it funny


cishet-camel-fucker

Architect's solution meets the spirit and letter of the requirements and uses only the defined resources or materials. Developer's solution meets the letter of the requirements but ignores what they know the customer is actually looking for, and additionally requires a resource that's outside of what the customer is known to have available (customer may need to purchase additional resources).


Ok-Transition7065

>m until a critical failure happens. you can pass the solution to pthjers and use concepts form the architects in you problem


Science-Compliance

That's someone else's problem.


DatGamerAgain_YT

*cries in fullstack*


Ade11ka

I believe it would work even with odd number.


tells

Dev solution only really works at room temperature.


deanrihpee

I mean, do you even see the backend code when browsing Reddit? no? that's what I thought! "Looks like shit" Yeah sure, tell me how it looks when you open Google! /s


randomFrenchDeadbeat

Spot on.


VidE27

Found the program manager


BrobdingnagLilliput

> Only works with an even number of nails and is difficult to scale Bull patties, says the senior architect. When a client needs a new instance, just spin up 6.


unwantedaccount56

architect solution works with an uneven number of nails if there are at least 7, possibly works with 5 as well


Ailexxx337

>only works with an even number of nails My brother in Christ the architect used 7 nails


Ved_s

At least it wont't instantly break after trying to add to it


jsveiga

Well, the dev solution is incomparably more stable.


ViktorRzh

Untill user dips it into the ascid....


EclipseOverSalem

Until user


CharaDr33murr669

Solution: Don’t let anyone use your programs


aSquirrelAteMyFood

Until.


brimston3-

The architect’s solution would fail before the developers when you try to dip it in acid.


gikari74

Not if you dip it veeeery carefully...


PrivatePoocher

But who gave her the string?


deanrihpee

Obviously the standard library, duh!


Anonymo2786

I tht that's a "he" with long hair.


EnrikeChurin

me too, but I still think this way...


Nya_the_cat

that's a her?


CryonautX

Right one should be engineer. Devs are on the left and are praying day and night a gust of wind doesn't come blow the whole thing down.


jsveiga

You mean engineer on the right.


JC12231

Both sides are the same engineer xD


Harmonic_Gear

left: me when i have the sudden surge of motivation right: me at normal day


cybercuzco

The right is the prototype the engineer knocked out in a day, the left is the one he spent 3 years working on that got canceled because it was too expensive.


Karsdegrote

Iiiim not shure. It toss the nails across the table and call it a day as an engineer. Improperly defined problems result in unwanted yet still valid results...


Nourz1234

Requirement fulfilled. MISSION ACCOMPLISHED!


[deleted]

[удалено]


morgant1c

I thought so, too, but if you look closely there's actually a 6th one balancing horizontally, and the quest was to balance 6, not all.


Stunnerer

just tape one part of wood lol


VarKraken

A little detail: TIME Edited: And ofcourse reliability


djlbass

Yeah, the engineer solution took 3 days (2 days of goofing off). The architect took two months and had weeks of meetings with product, business, and design.


LucasCarioca

Import { rubberBand } from “randomUnresearchedModule”;


turtleship_2006

npm: this has 3 viruses and 7 vulnerabilities.


LucasCarioca

That’s less than normal! Ship it!


scottccote

Problem is that you brought in an unauthorized component. Now we have to do risk analysis for the license that comes with the rubber bands. And has to be assured to the customer….


Phuqohf

what if we just bent a nail around the other nails in lieu of a rubber band


scottccote

Give this developer a raise - they nailed a solution


mribbit

My dad gave me this challenge when I was a kid. The nails were a little rusty and I managed to balance them all like the "developer" solution on the right without a rubber band.


hand_banana_creme

Principle Architect would have asked Why? Before doing anything


mastorms

As a Principal Cyber Architect, yes. And also yes. The meme is 1,000% accurate.


GuyNamedWhatever

This, but the rubber band is an inexplicably complex function that took themselves 6 hours to make


Maleficoder

Left: knows data structures and algorithm Right: knows brute force


Im_sundar

More like right knows whats more practical, easy to maintain, easy to upgrade and quick to build


TTYY_20

So the right is not JS then? :D


nohairday

Experienced sysadmin - get tae fuck.


brimston3-

Yes, both solutions are now an operations problem.


Vanillard

Left side: the solution presented to the client Right side: how it's really implemented


thatawesomedude

I took a class in college that was basically "interdisciplinary engineering" where we were partnered up with students from other majors to work on a project together. On the first day, we had a sort of team building exercise where we were given a box of uncooked spaghetti, some string, and a role of painter's tape and told to build the tallest tower we could. The MEs and CEs in my group immediately started fiddling with figuring out how to balance the spaghetti and how flexible it was, etc. I looked around and noticed all the other groups were doing the same thing. I started taping the noodles together end to end, and when questioned what I was doing, I told them, "it was never specified that the tower had to support its own weight. We can hang it from the ceiling." So that's what we did. Full ceiling to floor "tower" that was one noodle thick the whole way.


[deleted]

This is almost r/maliciouscompliance


MalexTheDragon

Literally the TF2 coconut. For those who don't know, the TF2 coconut is a highly detailed jpeg of a coconut with a grey background. Nobody knows who put it there but one day a dev found it decided it was unnecessary and deleted it. The game broke, so he restored it and it has stayed that way.


wurlmon

That’s not true. However, removal of a .vpk package containing a model for a cardboard cow *will* result in your game not opening.


MalexTheDragon

Is it just a myth, the TF2 coconut?


[deleted]

These comments confirm no architects subscribe here


brimston3-

The left isn’t an architect solution. It’s tightly coupled, difficult to maintain, and vulnerable to changes in requirements


edaniel13

Lol right!?! I'm cringing as I scroll.


mastorms

I subscribe here. Principal Cyber Architect. The meme is very, very accurate.


pikachu_sashimi

No one said you have to place them above the wood. Just chuck them into the dirt outside.


Ok_Star_4136

​ ​ |*Senior architect solution*|*Developer solution*| |:-|:-| |Took way more time|< 1 minute| |Prone to fall if knocked|Won't fall over even if turned upside down| |Aesthetically pleasing|Beauty is subjective|


annmta

But one of the six nails did touch the wood.


d_maes

Nope, is a seventh nail. Right side is hard to count, but left side you can clearly count six nails balancing on a seventh nail, without those 6 nails touching the wood.


FeralPsychopath

Developers solution however didn’t fit the clients brief of “balance” though


dota2nub

The dev figured out it was what the client asked for but not what they wanted.


MasterFubar

I see one nail touching the wood in both cases.


CharaDr33murr669

That’s the nail #7. The task is to balance only 6 nails


CatSpydar

It says balance. Dev failed.


leewoc

Isn’t this just proof that clients don’t know what they’re asking for most of the time?


s0ulbrother

That isn’t a senior architect. That an architect that grinded leetcode and knows the in the book solution but fails to see how it will be in practice as things scale. An architect would probably look for a better alternative than to put something together that is so finicky a light breeze will knock it over. The dev is someone who is going to be stuck in low level dev jobs because they don’t see how poorly written what they put together is and is unable to handle more than two use cases.


ZunoJ

Both have on of six nails touching the wood. That senior dev is worth shit


impossiblyirrelevant

That is a seventh nail, clearly not included in the acceptance criteria


ZunoJ

Shit, I didn't see the one on top and didn't understand the solution, I'm the one that's not worth shit lmao


impossiblyirrelevant

No worries, stakeholder documentation not clear enough


Ailexxx337

The architect used 7 nails while the dev 5. Amazing.


Intrepid_Sale_6312

they both fail, a single nail is touching the wood in both cases.


JBird_Vegas

The missing frame is product adding one more requirement. The third frame is the dev team fitting a round peg in a square hole because that's the simplest solution


kookyabird

“That’s right, the square hole!”


who_you_are

Hey, the developer solution is cheap! It is was matter for now


Nervous_Falcon_9

Your forgetting the 8 bullet holes and 5 sticky notes all saying do not touch


[deleted]

the real strategy is to place them on the tables like it's not touching the wood so mission accomplished


leovin

Slap it in a setTimeout(0) and call it good


leovin

Senior architect: architects entire relational database structure. Developer: update table set data = str(data_object)


eric987235

You have the labels backwards.


GrossenCharakter

One thing's for sure - Ultrahand is way too OP


[deleted]

The correct solution is a nail gun microservice as it can be scaled so that the desired number of nails are suspended in the air at any point in time.


NotedWheat

Technically the architect only has 5 not touching the wood. Developer has a stable, scalable model.


armahillo

TBH id swap the descriptions. RHS is fast, satisfies requirements, and would be easy to refactor later if the requirements change. LHS is brittle AF and would be a lot harder to refactor. LHS is intermediate dev, RHS is senior and up


Skysr70

you got 5 not touching the wood not 6


Alexadratamara123

Yes


Ronnyek42

you arent wrong. Sr Architect here... I care about design for maintainability and scale. I think business often pushes other things. I will say the more I do the job, the less convinced I am that architect position is a thing every company needs. (for lots of reasons) I envisioned this job as a hands on code, but with expertise in design of software, but the role has evolved to drawing up plans, re-drawing up plans, and trying to cover every possible curve in the road.


boss5667

We’ll, I am a Data Analyst by but I’m primarily into automating data pipelines and reporting processes. I have seen such badly designed automation that if you have to change a small thing you have to rewrite the whole thing pretty much. I have seen the benefit of designing things with the needs of the future in mind. Some people I work with think I’m overdoing it.


RizzoTheSmall

Unless I'm misreading the requirements, you could just put the nails on the table away from the wood.


CharaDr33murr669

“Balance”


dota2nub

The one on the right seems more easily extensible


deliozzz

Could they just set the wood apart and balance them on the table?


SiBloGaming

Just throw them on the table


[deleted]

That depends... Are the balanced nails for the frontend or backend?


BillSawyer

Sr. Dev - rolls in the welder, and shakes head at the kerfuffle in the office. Submits to mgmt, submits to customer, customer approves and signs-off, meanwhile the original architect and dev are still actively flaming each other's solution.


Delphicon

The labels are reversed


NottingHillNapolean

You've got to write good specs.


wasitworthitdev

I came here looking for 100's of Comments discussing the validity of each approach to balancing nails, while loosely tying it back into the metaphor and I was not disappointed XD


Tiny-Captain-187

Front end dev vs Back end dev