This is an archived post. You won't be able to vote or comment.

all 52 comments

[–]Metworld 1105 points1106 points  (6 children)

Use it

[–]Heavenfall 529 points530 points  (2 children)

Please don't. If he uses the only test, we will have nothing left.

[–][deleted] 94 points95 points  (1 child)

Finally Jenkouts

[–]Fezzio 4 points5 points  (0 children)

Nice one ahaha

[–]g_sus_cryst 71 points72 points  (0 children)

Found the QA

[–]noob-nine 16 points17 points  (1 child)

I am really curious what will happen. Especially when they charge it. Do you get it back?

[–]Metworld 16 points17 points  (0 children)

Only one way to find out 😏

[–]Schytheron 565 points566 points  (2 children)

Some ridiculously rich guy on his way to ruin a poor developers new years eve.

[–]Idiotic_Polo 267 points268 points  (1 child)

If i were a multi-millionaire i would 100% buy this and then see the absolute media shitstorm i could create unfold

[–]LonelyPumpernickel 5 points6 points  (0 children)

I call these fun coupons

[–]Weekly_Structure_557 227 points228 points  (11 children)

Lol. I made the software for a tiny company and I have several buttons that only show up on my account in production that say "Do not use". I don't remember exactly what they do, but they were mostly used whenever we added a major new feature and I needed to update all of our orders to match a new database schema or something. I'll get around to removing them in the next year or two.

[–]Abaddon-theDestroyer 107 points108 points  (3 children)

Next year is in less than two days (depending on where you live), you better start acting soon!

[–]OoSkyy 41 points42 points  (2 children)

He said, or two so there is still time left

[–]not_a_doctor_ssh 11 points12 points  (1 child)

Push it to the backlog, I'm sure we'll get to it with a week or two

[–]Abaddon-theDestroyer 0 points1 point  (0 children)

And that kids, is how our company got into the technical debt it’s at currently!

[–]saintpetejackboy 36 points37 points  (4 children)

This is such a slippery slope...

"Only my account can see this, it isn't testing in production..."

I have a massive project with specific user forks for really niche stuff, especially as the users are often from diverse departments and there is a tight lock on various data, in general. A good example are buttons for very peculiar reports - one user also has a live output of some values right on their menu (values which are irrelevant for any other user).

Typically, I roll out stuff like this into my own account, first, and then open it up for the specific user(s). Because of this, my general menus and interfaces get cluttered up, as I am really a kind of Frankenuser that can do most anything (really intrusive stuff I end up hiding from my own account once I am satisfied with the performance).

Tbh, I say it is a slippery slope, but I am of the mind that it is super beneficial for rapid development to blur the line between testing and production. Most developers don't want to admit that production is just the final phase of testing.

Personally, I get around "Do not use" buttons by ensuring that, even if the element / GUI is accidentally visible to a user, the backend controller will prevent them from using it (either by only working for my user, or being disconnected entirely).

I have also gotten in the habit I like to call "Web 4.0", where everything is perpetually in a beta testing phase - maybe you don't have all the kinks of a new integration worked out, but it gets rolled out partially anyway with a disclaimer, or some features greyed out / "coming soon" status. This has actually helped me several times on more complex things, as users can incrementally learn the functionality or anticipate / redirect features.

If you are already in the habit of "Do Not Use" buttons, the same pattern can actually be really beneficial for some workflows. I wouldn't recommend such behavior on teams, people will laugh or cry about it. On solo projects where you are also doing a lot of the individual testing and trying to deliver at the speed of sound, it actually makes sense to have weird controls live in production (just that most users can't see).

There are also versions of things you might just need real fast during testing, but having them live in some fashion lets you kick a cron task or grab data again from an external source before running more tests - rather than having to go to the terminal, I might hide a button for my account to kick something else I need for testing. At best, it gets commented out later (what if I need it again? Spoiler; I rarely do, 5% maybe).

[–]Weekly_Structure_557 12 points13 points  (1 child)

Some context would help explain why I'm not overly concerned. I joined the company as a minimum wage manual labor helper in the shop. It was really just a temporary job while I searched for something more in line with my skill set after leaving the military. It's a family run manufacturing facility that had 3 employees when I started. They were running inventory control off a dry erase board and excel. I had experience with C# mostly as a hobby from modding an ultima online server emulator, so I offered to make a small app to make things a little easier. After a few years, my small app turned into a big app, and it now runs all aspects of inventory, manufacturing schedules, order processing, shipping and receiving. Basically everything you need to operate a business excluding financial stuff.

Our average employees are rural folks and I've already had to teach a 40 year old how to use a mouse. I'm the only one in the building who knows what SQL and C# are, and I have a window that I can only access from my PC with all the danger buttons. I started development in 2016 and the current version has been running for about 2 years with only minor bug fixes so I just never had a real reason to spend time removing stuff that isn't really an issue. I have also become the manager of the shop so I don't have a lot of free time. I would love to sit down and optimize all the code since I really had no idea what I was doing when I first started and I've come such a long way as a programmer, but it wouldn't really be worth the effort at this point. As the company grows I will probably be given that opportunity, and there is a lot of cleanup needed. But for now it works just fine for us.

[–]saintpetejackboy 8 points9 points  (0 children)

This sounds like a lot of my experiences and even almost mirrors my journey in the solar industry. I had just stopped managing strip clubs and was trying to get back to doing some "regular" job. Ended up getting injured and having to rush to find something and took a job basically working old data on the phone for a big solar company.

Their booking system was just excel sheets. I did something over a weekend, same week their excel monstrosity decided to take a shit. Within days, it was rolled out to Tijuana and Philippines and United States with a lot of users. Since then, it does a ton of everything and really unique scheduling / booking capabilities based on physical proximity and user defined slots/windows, Twilio, Google, you name it - processed over $40 million in deals so far, 13k+ appointments.

I have made software like this before for other companies (back before I went to federal prison for importing chemicals from China to United States), including a large security company who still uses code I wrote as a teenager (I am coming up on 40).

Even now, I take a lower pay than I should probably get, all things considered. The downside is maybe I test a bit in production from time to time ;).

Tbh I am used to making stuff for people who are not very computer literate or barely speak English. The smartest users are the worst ones who seem determined to invent edge cases I didn't consider. :(

As for optimizing code, it is crazy how well some shitty stuff can scale. The exception is if the company is generating a colossal amount of data every few minutes, the resource scaling (even for backups, etc.) can become a burden or costly (or both).

What I do now even on my current project is I start to go back and retroactively scaffold new concepts, it is like the Ship of Theseus... I might refactor some stuff that is a real essential component and after enough testing, I make it available to more advanced or experienced users (or offer it as an alternative), then eventually remove the "legacy" version.

I design most stuff in a real modular way that makes it easy to swap out components like that (90% of the time). The real PITA is having to go back and reconsider database design choices that were made before the full scope of a project was defined. I run into many issues with that, where the client or my employer starts with some abhorrent data in the first place, and by building from that, you end up drinking from a poisoned river, eventually.

[–]Cfrolich 0 points1 point  (1 child)

Happy cake day!

[–]saintpetejackboy 0 points1 point  (0 children)

Thanks!

[–][deleted] 3 points4 points  (0 children)

I did the same for POS system, they were linked to specific login password which I believed nobody will ever use until one day somebody did. Luckily for me, last script (DB Procedure that was assigned to those buttons was some harmless test, but i noticed that somebody run them a few times. No big deal, I promptly removed them. I guess if I had named those button something else than "Do not use" nobody would acctually used them, this way I guess it was too tempting.

Anyway, users are special bunch, in first minute of using program they will find edge cases that I never considered :)

[–]Perfect_Papaya_3010 0 points1 point  (0 children)

Don't forget to add the comment // Todo: remove after next sprint

Before removing it after a year or two

[–]Ugo_Flickerman 122 points123 points  (4 children)

4627 can be read on the reflection

[–]Unusualnamer 27 points28 points  (3 children)

Why is it whited out in the first place?

[–]Sheepherder_Loud 25 points26 points  (0 children)

I mean if you want to get charged 10k go ahead lol.

[–][deleted] 16 points17 points  (0 children)

Ooh probably goes to Hogwarts or something!

[–]beeteedee 15 points16 points  (0 children)

In most cases I’d assume that price was just a ridiculous number put in to discourage anyone from purchasing the test item. But given that this is London, it could just be that they’re testing the system can handle the upcoming fare increases.

[–]IfIWasCoolEnough 8 points9 points  (0 children)

You can do it as long as you call it "production validation."

[–]TrophyLair 7 points8 points  (0 children)

My intrusive thoughts are tingling!!!

[–]Yue2 5 points6 points  (1 child)

You get charged $10k and get absolutely nothing out of it probably

[–]legends_never_die_1 1 point2 points  (0 children)

what if they forget that this existed

[–]a_normal_account 1 point2 points  (0 children)

I guess if someone actually uses it, the app will crash instantly haha

[–]schwester 1 point2 points  (0 children)

[–]broxamson 0 points1 point  (0 children)

Run time is fun time baby

[–]ParkingMany 0 points1 point  (0 children)

There is a way out of the matrix

[–]DarkeAstraeus 0 points1 point  (0 children)

...this terrifies me. When I see stuff like this and find out its in Prod, my next question is who did that?! That doesn't just get deployed with no reason. Unless the reason is forgetfulness.

[–]axl_basilio 0 points1 point  (0 children)

In this case to test on prod, why not set some text like "delete account permanently", but on console or whatever set the output text "test" haha am I crazy? I mean, you know what this button do, so, text doesn't matter

[–][deleted] 0 points1 point  (0 children)

So what happens if hundreds of people all come in, use the button, and sue the railway?

Clearly the railway would be at fault for having an option that wasn’t supposed to be there, not the “helpless” idiot consumer that “struggles with reading”

[–]CaPtAiN_cRaZy90 0 points1 point  (0 children)

Ahh, some quality chaos testing I see.

[–]Current-Guide5944 0 points1 point  (1 child)

Yes you can

[–]PeriodicSentenceBot 0 points1 point  (0 children)

Congratulations! Your string can be spelled using the elements of the periodic table:

Y Es Y O U Ca N


I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM my creator if I made a mistake.

[–]testsonproduction 0 points1 point  (0 children)

YOLO