Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "we're all devs"
-
Hey everyone,
First off, a Merry Christmas to everyone who celebrates, happy holidays to everyone, and happy almost-new-year!
Tim and I are very happy with the year devRant has had, and thinking back, there are a lot of 2017 highlights to recap. Here are just a few of the ones that come to mind (this list is not exhaustive and I'm definitley forgetting stuff!):
- We introduced the devRant supporter program (devRant++)! (https://devrant.com/rants/638594/...). Thank you so much to everyone who has embraced devRant++! This program has helped us significantly and it's made it possible for us to mantain our current infrustructure and not have to cut down on servers/sacrifice app performance and stability.
- We added avatar pets (https://devrant.com/rants/455860/...)
- We finally got the domain devrant.com thanks to @wiardvanrij (https://devrant.com/rants/938509/...)
- The first international devRant meetup (Dutch) with organized by @linuxxx and was a huge success (https://devrant.com/rants/937319/... + https://devrant.com/rants/935713/...)
- We reached 50,000 downloads on Android (https://devrant.com/rants/728421/...)
- We introduced notif tabs (https://devrant.com/rants/1037456/...), which make it easy to filter your in-app notifications by type
- @AlexDeLarge became the first devRant user to hit 50,000++ (https://devrant.com/rants/885432/...), and @linuxxx became the first to hit 75,000++
- We made an April Fools joke that got a lot of people mad at us and hopefully got some laughs too (https://devrant.com/rants/506740/...)
- We launched devDucks!! (https://devducks.com)
- We got rid of the drawer menu in our mobile apps and switched to a tab layout
- We added the ability to subscribe to any user's rants (https://devrant.com/rants/538170/...)
- Introduced the post type selector (https://devrant.com/rants/850978/...) (which will be used for filtering - more details below)
- Started a bug/feature tracker GitHub repo (https://github.com/devRant/devRant)
- We did our first ever live stream (https://youtube.com/watch/...)
- Added an awesome all-black theme (devRant++) (https://devrant.com/rants/850978/...)
- We created an "active discussions" screen within the app so you can easily find rants with booming discussions!
- Thanks to the suggestion of many community members, we added "scroll to bottom" functionality to rants with long comment threads to make those rants more usable
- We improved our app stability and set our personal record for uptime, and we also cut request times in half with some database cluster upgrades
- Awesome new community projects: https://devrant.com/projects (more will be added to the list soon, sorry for the delay!)
- A new landing page for web (https://devrant.com), that was the first phase of our web overhaul coming soon (see below)
Even after all of this stuff, Tim and I both know there is a ton of work to do going forward and we want to continue to make devRant as good as it can be. We rely on your feedback to make that happen and we encourage everyone to keep submitting and discussing ideas in the bug/feature tracker (https://github.com/devRant/devRant).
We only have a little bit of the roadmap right now, but here's some things 2018 will bring:
- A brand new devRant web app: we've heard the feedback loud and clear. This is our top priority right now, and we're happy to say the completely redesigned/overhauled devRant web experience is almost done and will be released in early 2018. We think everyone will really like it.
- Functionality to filter rants by type: this feature was always planned since we introduced notif types, and it will soon be implemented. The notif type filter will allow you to select the types of rants you want to see for any of the sorting methods.
- App stability and usability: we want to dedicate a little time to making sure we don't forget to fix some long-standing bugs with our iOS/Android apps. This includes UI issues, push notification problems on Android, any many other small but annoying problems. We know the stability and usability of devRant is very important to the community, so it's important for us to give it the attention it deserves.
- Improved profiles/avatars: we can't reveal a ton here yet, but we've got some pretty cool ideas that we think everyone will enjoy.
- Private messaging: we think a PM system can add a lot to the app and make it much more intuitive to reach out to people privately. However, Tim and I believe in only launching carefully developed features, so rest assured that a lot of thought will be going into the system to maximize privacy, provide settings that make it easy to turn off, and provide security features that make it very difficult for abuse to take place. We're also open to any ideas here, so just let us know what you might be thinking.
There will be many more additions, but those are just a few we have in mind right now.
We've had a great year, and we really can't thank every member of the devRant community enough. We've always gotten amazingly positive feedback from the community, and we really do appreciate it. One of the most awesome things is when some compliments the kindness of the devRant community itself, which we hear a lot. It really is such a welcoming community and we love seeing devs of all kind and geographic locations welcomed with open arms.
2018 will be an important year for devRant as we continue to grow and we will need to continue the momentum. We think the ideas we have right now and the ones that will come from community feedback going forward will allow us to make this a big year and continue to improve the devRant community.
Thanks everyone, and thanks for your amazing contributions to the devRant community!
Looking forward to 2018,
- David and Tim45 -
EDIT: since this announcement, collabs have been made free to post for all devRant members!
Introducing two big new devRant features!
First, the one @trogus and I are most excited about - Collabs!
Collabs are an easy way to start projects or work on existing projects with the awesome members of the devRant community. You can post a collab listing for the awesome open source project you started that could use some more contributors, that fun idea you have for a brand new project, or really anything you want to gather some fellow devs for. We think it will be a lot of fun.
Collabs also is a devRant first - it's our first paid feature. For each 2 week collab posting, we're charging $14.99. But we wanted to make sure to thank devRant users who have been with us for a while and anyone who contributes often, so anyone with 2,000 points or higher (now or in the future) gets one free collab listing!
The main reason we see collabs as a great first paid feature is because requiring payment or 2,000 points serves to be a slight barrier in posting a collab. We think for collaborations to be successful it's important to have some way to keep out listings where the poster has no intent of following through and we hope this is a good start to doing that.
NOTE: if the collab you are looking to create is devRant-centric (ex. a devRant Chrome extension), we will give you a free credit especially for that so you don't have to pay or use your earned free one. Just contact us (info@devrant.io) if your project falls into that category.
In addition, after tons of demand from the community, you can now change your username and email address! One important note is that you only get to change your username one time every 6 months, so use it cautiously :) You can access this feature in the "more" tab, then settings, then "Edit username or email."
If you have any questions or feedback about any of this, just let us know! We hope everyone enjoys :)52 -
You know what?
Young cocky React devs can suck my old fuckin LAMP and Objective-C balls.
Got a new freelance job and got brought in to triage a React Native iOS/Android app. Lead dev's first comment to me is: "Bro, have you ever used React Native".
To which I had to reply to save my honor publicly, "No, but I have like 8 years with Objective-C and 3 years with Swift, and 3 years with Node, so I maybe I'll still be able help. Sometimes it just helps to have a fresh set of eyes."
"Well, nobody but me can work on this code."
And that, as it turned out was almost true.
After going back and forth with our PM and this dev I finally get his code base.
"Just run "npm install" he says".
Like no fuckin shit junior... lets see if that will actually work.
Node 14... nope whole project dies.
Node 12 LTS... nope whole project dies.
Install all of react native globally because fuck it, try again... still dies.
Node 10 LTS... project installs but still won't run or build complaining about some conflict with React Native libraries and Cocoa pods.
Go back to my PM... "Um, this project won't work on any version of Node newer than about 5 years old... and even if it did it still won't build, and even if it would build it still runs like shit. And even if we fix all of that Apple might still tell us to fuck off because it's React Native.
Spend like a week in npm and node hell just trying to fucking hand install enough dependencies to unfuck this turds project.
All the while the original dev is still trying TO FIX HIS OWN FUCKING CODE while also being a cocky ass the entire time. Now, I can appreciate a cocky dev... I was horrendously cocky in my younger days and have only gotten marginally better with age. But if you're gonna be cocky, you also have to be good at it. And this guy was not.
Lo, we're not done. OG Dev comes down with "Corona Virus"... I put this in quotes because the dude ends up drawing out his "virus" for over 4 months before finally putting us in touch with "another dev team he sometimes uses".
Next, me and my PM get on a MS Teams call with this Indian house. No problems there, I've worked with the Indians before... but... these are guys are not good. They're talking about how they've already built the iOS build... but then I ask them what they did to sort out the ReactNative/Cocoa Pods conflict and they have no idea what I'm talking about.
Why?
Well, one of these suckers sends a link to some repo and I find out why. When he sends the link it exposes his email...
This Indian dude's emails was our-devs-name@gmail.com...
We'd been played.
Company sued the shit out of the OG dev and the Indian company he was selling off his work to.
I rewrote the app in Swift.
So, lets review... the React dev fucked up his own project so bad even he couldn't fix it... had to get a team of Indians to help who also couldn't fix it... was still a dickhead to me when I couldn't fix it... and in the end it was all so broken we had to just do a rewrite.
None of you get npm. None of you get React. None of you get that doing the web the way Mark Zucherberg does it just makes you a choad locked into that ecosystem. None of you can fix your own damn projects when one of the 6,000 dependency developers pushes breaking changes. None of you ever even bother with "npm audit fix" because if security was a concern you'd be using a server side language for fucking server side programming like a grown up.
So, next time a senior dev with 20 years exp. gets brought in to help triage a project that you yourself fucked up... Remember that the new thing you know and think makes you cool? It's not new and it's not cool. It's just JavaScript on the server so you script kiddies never have to learn anything but JavaScript... which makes you inarguably worse programmers.
And, MF, I was literally writing javascript while you were sucking your mommas titties so just chill... this shit ain't new and I've got a dozen of my own Node daemons running right now... difference is?
Mine are still working.34 -
Summing up many ridiculous meetings I've been in.
Many years ago we hired someone for HR that came from a large fortune 500 company, really big deal at the time.
Over the next 6 months, she scheduled weekly to bi-weekly, 1 to 2 hour meetings with *everyone* throughout the day. Meeting topics included 'How to better yourself', 'Trust the winner inside you'...you get the idea.
One 2-hour meeting involved taking a personality test. Her big plan was to force everyone to take the test, and weed out anyone who didn't fit the 'company culture'. Whatever that meant.
Knowing the game being played, several of us answered in the most introverted, border-line sociopath, 'leave me the frack alone!' way we could.
When she got the test results back, she called an 'emergency' meeting with all the devs and the VP of IS, deeply concerned about our fit in the company.
HR: "These tests results were very disturbing, but don't worry, none of you are being fired today. Together, we can work as team to bring you up to our standards. Any questions before we begin?"
Me: "Not a question, just a comment about the ABC personality test you used."
<she was a bit shocked I knew the name of the test because it was anonymized on the site and written portion>
Me: "That test was discredited 5 years ago and a few company's sued because the test could be used to discriminate against a certain demographic. It is still used in psychology, but along with other personality tests. The test is not a one-size-fits-all."
VP, in the front row, looked back at me, then at her.
HR: "Well....um...uh...um...We're not using the test that way. No one is getting fired."
DevA: "Then why are we here?"
DevB:"What was the point of the test? I don't understand?"
HR: "No, no...you don't understand...that wasn't the point at all, I'm sorry, this is getting blown out of proportion."
VP: "What is getting blown out of proportion? Now I'm confused. I think we all need some cooling off. Guys, head back to the office and let me figure out the next course of action."
She was fired about two weeks later. Any/all documentation relating to the tests were deleted from the server.16 -
Wow this one deserves a rant. Where should I even begin? I got a new job for over half a year now doing work in an agency. We're building websites and online shops with Typo3 and Shopware (not my dream, but hey). All fine you might think BUT...
1) I have been working on the BIGGEST project we have all by myself since I started working at this company. No help, nobody cares.
2) If something goes wrong all the shit falls back to me like "wHy DiDnT yoU WoRk MoRE?". Seriously? How should one dev cover a project that's meant for at least two or three.
3) The project was planned four years ago (YES that's a big fat FOUR) and sat there for 3,5 years - nobody gave a fuck. I got into the company and immediately got the sucky shit project to work on.
4) I was promised some time to get familiar with the projects and tech we use and "pick something I like most to get started". Well that never happened.
5) I was also promised not to talk directly to our customers. Well, each week I was bombarded with insults, a shitload of work and nonsense by our customers because (you guessed it) I was obligated to attend meetings.
6) The scheduled time for a meeting was 30 minutes, sometimes they just went on for over two hours. Fml.
7) Project management. It does not exist. The company is just out to get more and more clients, hires more god damn managers and shit and completely neglects that we might need more devs to get all this crap finished. Nope, they don't care. By the way: this is not like a 200 employee company, it's more like 15 which makes it even sadder to have 4 managers and 3 devs.
8) We don't use trello (or anything to keep track of our "progress"), nobody knows the exact scope of the project, because it was planned FOUR FUCKING YEARS AGO.
9) They planned to use 3 months on this project to get it finished (by the way it's not just an online shop, it has a really sophisticated product configurator with like 20 dependencies). Well, we're double over that time period and it is still not finished.
10) FUCK YOU SHOPWARE
11) The clients are super unsatisfied with our service (who would have guessed). They never received official documents from us (that's why nobody knows the scope), nor did they receive the actual screen design of the shop so we just have to make it up on the go. Of course I mean "I" by "we", because appearently it is my job to develop, design and manage this shit show.
12) My boss regularly throws me in front of the bus by randomly joining meetings with my client telling them the complete opposite of things that we discussed internally (he doesn't know anything about this stupid project)
13) FUCK YOU COLLEAGUES, FUCK YOU COMPANY, FUCK YOU SHOPWARE AND FUCK YOU STUPID CUSTOMERS.
14) Oh btw. the salary sucks ass, it's barely a couple of bucks above minimum wage. Don't ask me why I accepted the offer. I guess it was better than nothing in the meantime.
Boy that feels good. I needed that rant. But hey don't get me wrong. I get that dev jobs can be hard and sucky, but this is beyond stupidity that I can bear. I therefore applied for a dev job in research at a university in my dream country. Nice colleagues, interesting projects, good project management. They accepted me, gave me a good offer and I can happily say that in 6-7 weeks my current company can go fuck themselves (nobody knows the 10.000+ lines of code but me). Just light it up and watch it burn!20 -
Working with different nationalities is interesting, and sometimes kind of bewildering. And tiring.
I've been working with an Indian dev for a little while, and while she's a decent dev, interactions with her sometimes leave me a little puzzled. She glazes over serious topics, totally over-sensationalizes unimportant oddities, has yet to say the word "no," and she refers to the senior devs as (quote) "the legends." Also, when asked a question by her boss, like "Are you familiar with this?" Instead of a simple yes/no answer, she shows off a little. Fair, I do this sometimes too, but it's a regular thing with her. Also, like most Indians I've known and/or worked with, she has a very strict class-and-caste view of the world. It honestly makes me a little uncomfortable with how she views people, like certain people belong in certain boxes, how some boxes (and therefore their contents) are inherently better than others, and how it's difficult or simply impossible to move between boxes. My obviously westerner view of things is that you can pick where you want to be and what you want to do, and all it takes to get there is acquiring the proper skills and putting in the required effort. I see no boxes at all, just a sprawling web of trades/specialities. And those legends she talks about? They're good devs with more knowledge than me, but only one, maybe two of them are better devs. I see them as coworkers and leads, not legends. Legends would be the likes of Ada Lovelace, Dennis Ritchie, Yukihuro Matsumoto, and Satoshi Nakamoto. (Among others, obv.). To call a lead dev a legend is just strange to me, unless they're actually deserving, but we don't work with anyone like Wozniak or Carmack.
Since I'm apparently ranting about her a little, let me continue. She's also extremely difficult to understand. Not because of her words or her accent, but I can't ever figure out what she's trying to get across. The words fit together and make valid sentences, but the sentences don't often make sense with one another, and all put together... I'm just totally lost. To be a math nerd, like the two conversations are skew lines: very similar, but can never intersect. What's more, if I say I don't understand and ask for clarification, she refuses and says she doesn't want to confuse me further, and to just do what I think is best. It's incredibly frustrating.
Specifically, we're trying to split up functionality on a ticket -- she's part of a different dev team (accounting), and really should own the accounting portion since she will be responsible for it, but there's no clear boundary in the codebase. Trying to discuss this has been... difficult.
Anyway.
Sometimes other cultures' world views are just puzzling, or even kind of alien. This Irish/Chinese guy stayed at my parents' house for a week. He had red hair, and his facial features were about 3/4 Chinese. He looked strange and really interesting. I can't really explain it, but interacting with him felt like talking to basically any other guy I've known, except sometimes his mannerisms and behavior were just shockingly strange and unexpected, and he occasionally made so little sense to me that I was really taken aback.
This Chinese manager I had valued appearances and percieved honors more than anything else. He cared about punctuality and attire more than productivity. Instead of giving raises for good work or promotions, he would give fancy new titles and maybe allow you to move your desk somewhere with a better view of your coworkers. Not somewhere nicer; somewhere more prominent. How he made connections between concepts was also very strange, like the Chinese/Irish guy earlier. The site templating system was a "bridge?" Idk? He also talked luck with his investors (who were also Chinese), and they would often take the investment money to the casino to see if luck was in the company's favor. Not even kidding.
Also! the Iranian people I've known. They've shown very little emotion, except occasionally anger. If I tried to appease them, they would spurn and insult me, but if I met their anger, they would immediately return to being calm, and always seemed to respect me more afterward. Again, it's a little puzzling. By contrast, meeting an American's anger often makes them dislike you, and exceeding it tends to begin a rivalry.
It's neat seeing how people of different nationalities have different perspectives and world views and think so very differently. but it can also be a little tiring always having to translate and to switch behavior styles, sometimes even between sentences.
It's also frustrating when we simply cannot communicate despite having a language in common.random difficult communication too tired for anger or frustration nationalities tiring diversity root observes people23 -
Random fact #0
Back in the days of SEGA Saturn, SEGA was really picky in terms of the game stability. All the games that we're about to be released had to pass a series of tests, like for instance they had to run for almost a week without any crash non stop on a real hardware, or withstand cartridge tilting. If it failed, SEGA wouldn't license it and developer had to fix the bugs and re-send it again.
To fool SEGA testers, game devs we're adding exception screens with the fake "hidden content". Like in Sonic 3D Blast, it presented a screen in the image below and then the level select screen.
So yeah, it's not a bug - it's a feature11 -
So there is this girl who joined the company as a trainee.
The company developed a 1 year project to train 25 trainees and she joined saying that she already had some experience making websites. (remember this)
They started in the beginning of January and stayed for about 3 months just studying the platform (Salesforce) and receiving some classes from Senior Devs, on subjects like OOP basics, loops, conditions and features of the platform.
After this time they joined the teams, 2 joined my team, a guy with 32 years that worked 10 years in a bank and wanted to go for a IT job and the girl of 22.
We gave her a really small task, just to make a code to copy info from one field to the other on a list of objects.
After 3 days of saying she was working on it we asked her to show us the code, she had written the "code" directly in the class, VS Code was going crazy with errors. When we asked her "But where is the method?", she answered "What is a method?"
After it we had other experiences trying to teach her some things. The team was formed by me (mid level dev), another mid level dev, a senior and a architect (who was self taught and one of the best teachers I've ever seen).
We tried for about 3 months to teach her how to do basic stuff, like a for loop, and every time we learned that she was missing some "foundations" of this basic stuff, so we would come back and explain the foundation, and a couple times she needed to use this knowledge like a week later and didn't remember shit.
So after this the team talked with our leader that we wanted to let her go and focus on the other guy who was going really well and some other junior devs who had joined the team.
But the HR found out that she had sued her last company, we don't know the reason, but HR guys were afraid of firing her without a careful firing process.
So now we're stuck with her in the team, and everything we ask her to do need to be remade, not because the code is bad, but because it NEVER works
And after all this I still ask myself, how did she finish college? Every person that i know that studied CS or CS like courses had a lot of OOP or at least knew what a class and a method were supposed to be.29 -
managers: We're all aligned! Let's work as a team and get this started!
devs: ok...
managers and devs meeting to discuss next features: * canceled by managers *
managers: (word for word, can't make this shit up) we cancelled the meeting, we will define the roadmap for everyone
> WE will define the roadmap for EVERYONE
devs: uh wtf???
one hour later, managers: guys we are defining the roadmap can we have a call to discuss?
fucking asshat, insolent, disrespectful pieces of shit3 -
Went to my first Hackathon this weekend.
There was 6 of us, 3 devs (including me) and 3 business guys for the presentation and info gathering
The 3 business guys wouldn't show us any of their work, but we're demanding to see all of ours.
Bothering us every 5 minutes to see 2her4 23 are and what's left
Then 1 of 3 business guys accused one of my devs of deleting half of their PowerPoint presentation. That turned out to be bullshit. Looked in the edit history and the business guy was the one who deleted them.
We brought it up to them all, and they got all defensive.
Then, before they revoked our access to the PowerPoint they removed us from the presentation entirely.
Their final presentation contained an app(APK only) we spent an all nighter on, and pictures of a few of the wireframes we did.
I immediately went to an event organizer, filled a complaint. Showed the wireframe project, the source code of the APK they used, and told her they just dropped us and stole our work. She went to them, they couldn't prove they did the work
They are now banned from future hackathons at this place.
I do not appreciate being fucked with, and more so don't like it when you try to fuck my friends. Honestly want to send an email to the business guys workplace and inform them their two top employees are thief's.
The positive thing I took from this is me and my dev team built a stronger relationship and found out we work amazing together.
/Rant about trash humans10 -
Dark Theme / Light Theme,
Java / C++,
Young / Old,
Proprietary / Open Source...
We're all devs and whatever holiday or time in the year it is for you right now in your country have a great time.
I love you all :)9 -
Story of every failing tech startup (from personal experience, but a bit exaggerated):
Step 1: Come up with AMAZING idea that blows your mind!
Step 2: Run to investors to do presentation, continue to constantly repeat CLOUD, CLOUD, AI, CLOUD, MACHINE-LEARNING, MUCH WOW, MORE AI until investors are confused but mesmerized as fuck and decide to give you a shit ton of money.
Step 3: Hire all the developers you can find, a JAVA dev, a Python dev, a PHP dev, a Ruby dev, and ask them to get along with each other! I mean hey, they're adults right, they'll figure it out.
Step 4: Ask devs to launch the app, meanwhile, throw a LAUCH PARTY! HELLS YEA WE'RE ABOUT TO BE RICH BITCHES!
Step 5: Find out the hard way that no one needs a product that was launched! :/
Step 6: Pivot, and pivot next month again, and pivot again, and pivot in a middle of a pivot, and pivot pivot pivot pivot... and OH FUCK WE RAN OUT OF MONEY!8 -
WWDC was not about developers this year. It was a conference call with shareholders and investors. No bold moves, just several consecutive "this product will no longer suck" and "look at what you can do now, big companies" announcements.
watchOS will work now (it's too slow ATM). tvOS will just be less cumbersome. macOS still lagging behind (I mean, I already have great third party apps that clean my hard drive, but thank you for solving a problem I didn't need fixing). iOS 10 is simply about messages (it's not going to make me ditch Telegram, because it doesn't have an Android client, regardless of how large you make emoticons appear on screen). Apple Music will still suck, especially if you have more than one Apple ID. And Apple Maps will continue to be useless outside of the US.
Where did the bold moves go? Where's the "we're breaking up iTunes into several distinct apps that serve their purposes really well"? (Guess iTunes is too valuable a trademark...) Where is the "we will end the WKView vs UIView vs NSView nonsense"? (You know, OOP is about creating classes, which are abstractions and whose instances deal with the particularities of their environment; a View is a View, regardless of where they live; an instance of a View should care about being on a watch or on a phone, not the developer.) Where is the "we love indie developers and will help you"? They showed off a lot of integration with well established apps, that don't really need to stand out any more. They showed that video of "normal people" who have developed apps, but no one knows about them! And then they changed the AppStore so you can pay to advertise your app, but who has the means to do that? Indie devs are surely on a tight budget, so who's that helping again?
For me, this WWDC was sugar coated with a "we love you developers" BS, but was a business statement to large companies ("see what you can do now Uber, Lyft, WeChat, WhatsApp, Doordash, all the P2P payment apps, ESPN, WSJ and so on?"). It's already a known fact that the bulk of the AppStore revenue goes to the top 1% apps. And what's the point of having tvOS be open to developers if it is very unlikely I'll ever develop anything for it unless I work at CBS?
It's great that they want to make it easier for kids to learn Swift. But there's very little point in that, if those kids' apps aren't going to be used and are simply going to make the "we have 2 million apps on the AppStore" announcement look shinier for shareholders. Without a strong indie community, the Swift Playgrounds app for the iPad is just manufacturing workers for large corporations.
And without a strong indie community, things get tougher for indie clients as well. Who will have the money (and therefore the time) to implement all those integrations in order to even dream about competing with heavily funded apps?
Yeah... So thanks, Apple, but no thanks.16 -
I'm unbelievably angry. So please bear with my venting.
QA guy and I are stuck working the entire weekend. A few months ago our company decided to promote an account manager to a Product/Project management role with 0 experience and offering them 0 training. They have no experience working with devs and have been making our lives hell. I work easily 50-60hrs per week and they still budget projects according to 40hrs/week meaning they're stealing my time not to mention they're incorrectly setting the client's and company's expectations.
They now have complete control over roadmaps, client communications (this wouldn't normally be bad except that they're having technical discussions with the client with 0 tech experience), timelines, etc. and since their experience was in account management they are now working with devs but making decisions that exclusively put the client first at all costs, even if it means everyone else has to work weekends while they go on vacation!!!!
I've approached them several times to offer help on budgeting time or to propose that we do a Q4 planning so that we can improve the product instead of stay in a shitty position as we are. I'm responded with "You deal with what's in front of you. It's my job to look at the bigger picture."
They mismanaged a $500,000 project and our CEO got wind of it because the client called him while he was travelling. He in turn gave shit to our Directors who in turn chewed the QA guy and I out. "You need to be more meticulous when deploying. How could you let this happen? We're eating shit because of this. You need to work over the weekend to make up for this", etc.
I'm now directly responsible for having delivered something that wasn't up to standards even though I was already putting in the overtime.
This is honestly fucking ridiculous. How can I be blamed when I'm truly doing the best I can and putting as many hours as I can while edging toward burnout.
I love what I do but I hate feeling extremely pressured to turn down friends and family like this. Maybe I'm just too easy going and need to say no more. Who fucking knows. I know that I'm angry with the company right now.
What do you all think? If you read this rant, thank you. Feels better to write it out.13 -
Most satisfying bug I've fixed?
Fixed a n+1 issue with a web service retrieving price information. I initially wrote the service, but it was taken over by a couple of 'world class' monday-morning-quarterbacks.
The "Worst code I've ever seen" ... "I can't believe this crap compiles" types that never met anyone else's code that was any good.
After a few months (yes months) and heavy refactoring, the service still returned price information for a product. Pass the service a list of product numbers, service returns the price, availability, etc, that was it.
After a very proud and boisterous deployment, over the next couple of days the service seemed to get slower and slower. DBAs started to complain that the service was causing unusually high wait times, locks, and CPU spikes causing problems for other applications. The usual finger pointing began which ended up with "If PaperTrail had written the service 'correctly' the first time, we wouldn't be in this mess."
Only mattered that I initially wrote the service and no one seemed to care about the two geniuses that took months changing the code.
The dev manager was able to justify a complete re-write of the service using 'proper development methodologies' including budgeting devs, DBAs, server resources, etc..etc. with a projected year+ completion date.
My 'BS Meter' goes off, so I open up the code, maybe 5 minutes...tada...found it. The corresponding stored procedure accepts a list of product numbers and a price type (1=Retail, 2=Dealer, and so on). If you pass 0, the stored procedure returns all the prices.
Code basically looked like this..
public List<Prices> GetPrices(List<Product> products, int priceTypeId)
{
foreach (var item in products)
{
List<int> productIdsParameter = new List<int>();
productIdsParameter.Add(item.ProductID);
List<Price> prices = dataProvider.GetPrices(productIdsParameter, 0);
foreach (var price in prices)
{
if (price.PriceTypeID == priceTypeId)
{
prices = dataProvider.GetPrices(productIdsParameter, price.PriceTypeID);
return prices;
}
* Omitting the other 'WTF?' code to handle the zero price type
}
}
}
I removed the double stored procedure call, updated the method signature to only accept the list of product numbers (which it was before the 'major refactor'), deployed the service to dev (the issue was reproducible in our dev environment) and had the DBA monitor.
The two devs and the manager are grumbling and mocking the changes (they never looked, they assumed I wrote some threading monstrosity) then the DBA walks up..
DBA: "We're good. You hit the database pretty hard and the CPU never moved. Execution plans, locks, all good to go."
<dba starts to walk away>
DevMgr: "No fucking way! Putting that code in a thread wouldn't have fix it"
Me: "Um, I didn't use threads"
Dev1: "You had to. There was no way you made that code run faster without threads"
Dev2: "It runs fine in dev, but there is no way that level of threading will work in production with thousands of requests. I've got unit tests that prove our design is perfect."
Me: "I looked at what the code was doing and removed what it shouldn't be doing. That's it."
DBA: "If the database is happy with the changes, I'm happy. Good job. Get that service deployed tomorrow and lets move on"
Me: "You'll remove the recommendation for a complete re-write of the service?"
DevMgr: "Hell no! The re-write moves forward. This, whatever you did, changes nothing."
DBA: "Hell yes it does!! I've got too much on my plate already to play babysitter with you assholes. I'm done and no one on my team will waste any more time on this. Am I clear?"
Seeing the dev manager face turn red and the other two devs look completely dumbfounded was the most satisfying bug I've fixed.5 -
Rant from my old company:
CEO decided he could cut costs by outsourcing to cheap devs in other countries.
Does this, the new hires are super incompetent. We're now paying for a whole team that is adding work cause they keep fucking up.
Leadership is super happy with the "savings" (which is basically just the team here working harder to fix everything).
All the smart people start leaving, leading to a downward spiral.
Last I heard, one of my junior co-workers had been promoted to senior (he hardly had any coding experience).
Fuck them all8 -
My code review nightmare part 2
Team responsible for code 'quality' dictated in their 18+ page coding standard document that all the references in the 'using' block be sorted alphabetically. Easy enough in Visual Studio with the right-click -> 'Remove and Sort Usings', so I thought.
Called into a conference room with other devs and the area manager (because 'Toby' needed an audience) focusing on my lack of code quality and not adhering to the coding standard.
The numerous files in question were unit tests files
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
using System.Linq;
<the rest of the usings>
T: "As you can see, none of these files' usings are in alphabetical order"
Me: "Um, I think they are. M comes before S"
T: "The standards clearly dictate system level references are to be sorted first."
Mgr: "Yes, why didn't you sort before checking this code in? T couldn't have made the standards any easier to follow. All you had to do is right-click and sort."
Me: "I did. M comes before S."
T: "No You Didn't! That is not a system reference!"
Me: "I disagree. MSTest references are considered a system level reference, but whatever, I'll move that one line if it upsets you that much."
Mgr: "OK smartass, that's enough disrespect. Just follow the fucking standard."
T: "And learn to sort. It's easy. You should have learned that in college"
<Mgr and T have a laugh>
Me: "Are all your unit tests up to standard? I mean, are the usings sorted correctly?"
T:"Um..well..of course they are!"
Me: "Lets take a look."
I had no idea, a sorted usings seems like a detail no one cares about that much and something people do when bored. I navigate to project I knew T was working on and found nearly all the file's usings weren't sorted. I pick on one..
using NUnit;
using Microsoft.Something.Other;
using System;
<the rest of the usings>
Me: "These aren't sorted..."
T: "Uh..um...hey...this file is sorted. N comes before M!"
Me: "Say that again. A little louder please."
Mgr: "NUnit is a system level nuget package. It's fine. We're not wasting time fixing some bug in how Visual Studio sorts"
Me: "Bug? What?..wait...and having me update 10 or so files isn't a waste of time?"
Mgr: "No! Coding standards are never a waste of time! We're done here. This meeting is to review your code and not T's. Fix your bugs and re-submit the code for review..today!"17 -
So a consulting company was hired to write stored procedures for us. I don't know where they found these guys, but the code was horrible and took ages to run.
We other devs weren't happy at all, but management forbade us to rewrite the code, cause the consultants would've gotten money for nothing then. As a "fix", these guys just reduced batch sizes to a very low amount of rows and management was happy that the procedures were so much faster now and gave their ok.
Fast forward a few weeks (to now). Obviously a reduced batch size means the procedures will run faster, but more often and it will take weeks to load all the data we need.
Result: Management ordered us to rewrite the SPs and we're all torn between laughing and crying.4 -
I hate it how our profession became common over the last decade. We're nothing more than factory workers of todays day and age. Just take a look at petty midldle management above you all... and all underpayed and overworked devs out there... Nah, this ain't that glamorous proffesion I dreamed about as a kid.13
-
[Little perspective: For the last 7 months I'm working in a certain project.]
[The project is full of unimaginative, non-creative devs with 0 initiative and poor technical background.]
[And they're almost all from one country which you all can figure out.]
[But I'm not going to mention it here because I don't want to come up as a racist]
[So there's US (Europeans) and THEM. 3 of US and about 10 of THEM. And we're doing 90% of all the heavy lifting]
---
Yesterday
---
D (Dev from THEM): Hi S, I have a problem with my task
Me: (sighing) Ok let's have a call
* on the call with D we were checking some stuff loosely related to task *
* code wouldn't get invoked at all for some reason *
* suddenly I realize that even if the code would invoke, D's probably doing everything wrong in it anyway *
Me (thinking): I need to double check something.
Me: I can't help you now, I'll get back to you later.
* call ended *
---
Me: Hey J, I need your help, I need to clarify the work package in my mind, because I am no longer sure.
J (my European TL): Ok, fire away.
* call started *
Me: Is it true that [blahblahblah] and so D's task depends on me completing first my task, or am I losing my mind?
J: That is correct.
Me: Well she's trying to do this in [that] way, which is completely wrong.
J: You see, that's how it is in this project, you do refinements with them, split these work packages to tasks, mention specifically what depends on what and what order should things be taken in, and in some cases all tasks from given user stories should be done by one person entirely... But they do it their way anyway, assign different people to different interdependent tasks, and these people don't even understand the big picture and they try to do the things the way they think they understand them.
Me: It's a fire in a brothel.
J: Yup.
Me: I fucking love this project.
J: (smiling silently)
* call ended *
---
Me: Ok D, you can't do your task because it's dependant on my task.
D: Oh... so what do I do?
Me: I don't know, do something else until I do my task.
---
A (THEIR TL) (Oh, did I forget to mention that there are 2 TLs in this project? THEY have their own. And there are 2 PMs as well.)
A: Hey S, I need to talk
Me: (sighing, getting distracted from work again) Ok let's have a call
* call started *
A: S, we need this entire work package done by Friday EOD.
Me: I can't promise, especially since there are several people working on its several tasks.
A: D's working on hers for 3 days already, and she's stuck. We want you to take over.
Me: (sighing, thinking "great"): Ok.
* call ended *
---
Me: Hey D, A instructed me to take over your task. This is actually going to be easier since you'd have to wait for mine after all.
D: Oh, ok.
---
* I switched the Assigned Person on D's task to myself on Azure *
---
This morning, email from D.
"Hey, I completed my task and it's on [this] branch, what do I do now?"
........................................
Me, hesitating between 2 ways to reply:
(and take note there are people in CC: A, J, P - the last one is THEIR PM)
1) "Hi, Unfortunately you'd still have to wait for my changes because your task is dependent on my task - the column to be changed is in the table that I am introducing and it's not merged to develop branch yet. By the way I already did your task locally, as I was instructed to do it, I'm wrapping things up now."
(y'know: the response which is kind, professional, understanding; without a slight bit of impatience)
2) WHAT FUCKING PART OF "DON'T DO THIS I WILL FUCKING DO IT MYSELF GO HOME JUST GO HOME" YOU DON'T FUCKING UNDERSTAND4 -
~ 10yrs ago, Dad: I'm a dev, your mom's a dev. I paid for you to go-to business school... But you still became a dev. And your brother also wants to be a dev
Now after me and bro moved back with then bc of COVID. The house is basically WeWork on weekdays.
Good thing we're all devs so can with remotely.9 -
I hate clients that tell the developers what to use without discussion.
We're paid to solve problems.
Dictatorship on tools and methodologies are okay with junior devs or interns, but when you have senior devs, it has to be a democracy.
Having limitations like browser versions or server capabilities are fine, but declaring which slider to use, you MUST use jquery, or all that jazz just grinds my gears.5 -
First rant: but I'm so triggered and everyone needs a break from all the EU and PC rants.
It's time to defend JavaScript. That's right, the best frikin language in the universe.
Features:
incredible async code (await/async)
universal support on almost everything connected to the internet
runs on almost all platforms including natively
dynamically interpreted but also internally compiled (like Perl)
gave birth to JSON (you're welcome ppl who remember that the X in AJAX stood for XML)
All these people ranting about JS don't understand that JS isn't frikin magic. It does what it needs to do well.
If you're using it for compute-heavy machine learning, or to maintain a 100k LOC project without Typescript, then why'd you shoot yourself in the foot?
As a proud JS developer I gotta scroll through all these posts gushing over the other languages. Why does nobody rant about using Python for bitcoin mining or Erlang to create a media player?
Cuz if you use the wrong tool for the right job, it's of course gonna blow up in your face.
For example, there was a post claiming JS developers were "scared" of multithreading and only stick in their comfort zone. Like WTF when NodeJS came out everything was multithreaded. It took some brave developers to step out of the comfort zone to embrace the event loop.
For a web app, things like PHP and Node should only be doing light transforms between the database information and HTML anyways. You get one thread to handle the server because you're keeping other threads open to interface with databases and the filesystem. The Nexus.js dev ranting on all us JS devs and doesn't realize that nobody's actual web server is CPU bound because of writing HTML bodies, thats why we only use 1 thread. We use other worker threads to do the heavy lifting (yes there is a C++ bridge look it up)
Anyways TL;DR plz respect JS developers we're people too. ES7 is magic and please don't shit on ES3 or we'll start shitting on the Python 2-3 conversion (need to maintain an outdated binary just cuz people leave out ()'s in their print statements)
Or at least agree that VB.NET is an abomination and insult to the beauty that is TI-84 BASIC13 -
Biggest challenge I overcame as dev? One of many.
Avoiding a life sentence when the 'powers that be' targeted one of my libraries for the root cause of system performance issues and I didn't correct that accusation with a flame thrower.
What the accusation? What I named the library. Yep. The *name* was causing every single problem in the system.
Panorama (very, very expensive APM system at the time) identified my library in it's analysis, the calls to/from SQLServer was the bottleneck
We had one of Panorama's engineers on-site and he asked what (not the actual name) MyLibrary was and (I'll preface I did not know or involved in any of the so-called 'research') a crack team of developers+managers researched the system thoroughly and found MyLibrary was used in just about every project. I wrote the .Net 1.1 MyLibrary as a mini-ORM to simplify the execution of database code (stored procs, etc) and gracefully handle+log database exceptions (auto-logged details such as the target db, stored procedure name, parameter values, etc, everything you'd need to troubleshoot database errors). This was before Dapper and the other fancy tools used by kids these days.
By the time the news got to me, there was a team cobbled together who's only focus was to remove any/every trace of MyLibrary from the code base. Using Waterfall, they calculated it would take at least a year to remove+replace MyLibrary with the equivalent ADO.Net plumbing.
In a department wide meeting:
DeptMgr: "This day forward, no one is to use MyLibrary to access the database! It's slow, unprofessionally named, and the root cause of all the database issues."
Me: "What about MyLibrary is slow? It's excecuting standard the ADO.Net code. Only extra bit of code is the exception handling to capture the details when the exception is logged."
DeptMgr: "We've spent the last 6 weeks with the Panorama engineer and he's identified MyLibrary as the cause. Company has spent over $100,000 on this software and we have to make fact based decisions. Look at this slide ... "
<DeptMgr shows a histogram of the stacktrace, showing MyLibrary as the slowest>
Me: "You do realize that the execution time is the database call itself, not the code. In that example, the invoice call, it's the stored procedure that taking 5 seconds, not MyLibrary."
<at this point, DeptMgr is getting red-face mad>
AreaMgr: "Yes...yes...but if we stopped using MyLibrary, removing the unnecessary layers, will make the code run faster."
<typical headknodd-ers knod their heads in agreement>
Dev01: "The loading of MyLibrary takes CPU cycles away from code that supports our customers. Every CPU cycle counts."
<headknod-ding continues>
Me: "I'm really confused. Maybe I'm looking at the data wrong. On the slide where you highlighted all the bottlenecks, the histogram shows the latency is the database, I mean...it's right there, in red. Am I looking at it wrong?"
<this was meeting with 20+ other devs, mgrs, a VP, the Panorama engineer>
DeptMgr: "Yes you are! I know MyLibrary is your baby. You need to check your ego at the door and face the facts. Your MyLibrary is a failed experiment and needs to be exterminated from this system!"
Fast forward 9 months, maybe 50% of the projects updated, come across the documentation left from the Panorama. Even after the removal of MyLibrary, there was zero increases in performance. The engineer recommended DBAs start optimizing their indexes and other N+1 problems discovered. I decide to ask the developer who lead the re-write.
Me: "I see that removing MyLibrary did nothing to improve performance."
Dev: "Yes, DeptMgr was pissed. He was ready to throw the Panorama engineer out a window when he said the problems were in the database all along. Didn't you say that?"
Me: "Um, so is this re-write project dead?"
Dev: "No. Removing MyLibrary introduced all kinds of bugs. All the boilerplate ADO.Net code caused a lot of unhandled exceptions, then we had to go back and write exception handling code."
Me: "What a failure. What dipshit would think writing more code leads to less bugs?"
Dev: "I know, I know. We're so far behind schedule. We had to come up with something. I ended up writing a library to make replacing MyLibrary easier. I called it KnightRider. Like the TV show. Everyone is excited to speed up their code with KnightRider. Same method names, same exception handling. All we have to do is replace MyLibrary with KnightRider and we're done."
Me: "Won't the bottlenecks then point to KnightRider?"
Dev: "Meh, not my problem. Panorama meets primarily with the DBAs and the networking team now. I doubt we ever use Panorama to look at our C# code."
Needless to say, I was (still) pissed that they had used MyLibrary as dirty word and a scapegoat for months when they *knew* where the problems were. Pissed enough for a flamethrower? Maybe.6 -
Worst exp. on a collab/group project?
Had a few, here is one.
Worked with a dev team (of two devs) in Norway to begin collaboration on providing a portal into our system (placing orders, retrieving customer info, inventory control, etc)
They spoke very good English, but motivation was the problem. Start the day around 10:00AM...take a two hour lunch...ended the day at, if I was lucky, 4:00PM (relative to Norway time). Response time to questions took days, sometimes weeks. We used Skype, which helped, but everything was "Yea...I'll do that tomorrow...waiting on X....I have a wedding to go to, so I'll finish my part next week."
I didn't care so much, I had other projects to do, but the stakeholders pounded me almost everyday demanding a progress report (why aren't you done yet...etc..etc.)
The badgering got so bad I told the project owner (a VP) if he wanted this project done by the end of the year, the company would have to fly me to Norway so I personally push things along.
When real money was on the line, he decided patience was warranted.
A 3 month project turned into 9, and during a phone meeting with the CEO in December
O: "Thanks guys, this project is going great. We'll talk again in February. Bye."
PM: "Whoa...what! February!"
<sounding puzzled>
O: "Um..yes? It's Christmas time. Don't you Americans take off for Christmas?"
PM: "Yes, but not until Christmas. Its only December 12th. Your taking the whole month of December and January for Christmas?"
O:"Yes, of course. You Americans work too hard. You should come over here and see how we celebrate. Takes about a month so we can ease back into the flow of things."
<Jack is the VP>
PM: "Jack wanted this project completed by the end of the year, that is what everyone agreed to."
O:"Yes, I suppose, but my plane is waiting on me. Not to worry, everything will be fine."
<ceo hangs up>
PM: "Oh shit..oh shit..oh shit. What are you going to do!?"
Me: "Me!?..not a darn thing. Better go talk with Jeff."
<Jeff is the VP>
J: "This is unacceptable. You promised this project would only take a few months. I told you there would be consequences for not meeting the deadline."
PM:"But..but...its not our fault."
J: "I don't care about fault. I care about responsibility. I've never had to fire anyone for not meeting a deadline, but .."
Me: "Jeff, they are in Norway and no one is working this project for the next two months. You've known for months about them dragging their asses on this project. We're ready to go. Services have been tested and deployed. Accounting has all the payment routing ready. Only piece missing is theirs."
J: "Oh. OK. Great job guys. I guess we'll delay this project until February."
<leave the office>
PM: "Holy shit I'm glad you were there. I thought I was fired."
Me: "Yea, and that prick would have done it not giving a crap that it's Christmas."
<fast forward to Feb>
O: "Our service provider fell through, so I'm hosting with another company. You guys know PHP? Perl? I don't know what they called it, but it sounded so cool I bought the company."
PM: "You bought what? Are we still working with Z and B?"
O:"Yea, sort of. How's your German? New guy only speaks German."
PM: "Um, uh... no one here speaks German"
O:"Not to worry, I speak German, French, and Italian. I'll be your translator."
PM: "What? French and Italian?"
O: "On my trip to France I connected with a importer who then got me in touch with international shipper in Italy. I flew over there and met a couple really smart guys than can help us out. My new guy only speaks German, J only speaks French, and R speaks Italian, Russian, and a little English. Not to worry, I'm full time on this project. You have my full attention."
We believe the CEO has/had some serious mental issues, including some ADD. He bailed within the first month (took another vacation to Sweden to do some fishing) and left me using Google Translate to coordinate the project. Luckily, by the end, the Norwegian company hired a contractor from England who spoke German and hobbled together the final integration.3 -
oh, it got better!
One year ago I got fed up with my daily chores at work and decided to build a robot that does them, and does them better and with higher accuracy than I could ever do (or either of my teammates). So I did it. And since it was my personal initiative, I wasn't given any spare time to work on it. So that leaves gaps between my BAU tasks and personal time after working hours.
Regardless, I spent countless hours building the thing. It's not very large, ~50k LoC, but for a single person with very little time, it's quite a project to make.
The result is a pure-Java slack-bot and a REST API that's utilized by the bot. The bot knows how to parse natural language, how to reply responses in human-friendly format and how to shout out errors in human-friendly manner. Also supports conversation contexts (e.g. asks for additional details if needed before starting some task), and some other bells and whistles. It's a pretty cool automaton with a human-friendly human-like UI.
A year goes by. Management decides that another team should take this project over. Well okay, they are the client, the code is technically theirs.
The team asks me to do the knowledge transfer. Sounds reasonable. Okay.. I'll do it. It's my baby, you are taking it over - sure, I'll teach you how to have fun with it.
Then they announce they will want to port this codebase to use an excessive, completely rudimentary framework (in this project) and hog of resources - Spring. I was startled... They have a perfectly running lightweight pure-java solution, suitable for lambdas (starts up in 0.3sec), having complete control over all the parts of the machinery. And they want to turn it into a clunky, slow monster, riddled with Reflection, limited by the framework, allowing (and often encouraging) bad coding practices.
When I asked "what problem does this codebase have that Spring is going to solve" they replied me with "none, it's just that we're more used to maintaining Spring projects"
sure... why not... My baby is too pretty and too powerful for you - make it disgusting first thing in the morning! You own it anyway..
Then I am asked to consult them on how is it best to make the port. How to destroy my perfectly isolated handlers and merge them into monstrous @Controller classes with shared contexts and stuff. So you not only want to kill my baby - you want me to advise you on how to do it best.
sure... why not...
I did what I was asked until they ran into classloader conflicts (Spring context has its own classloaders). A few months later the port is not yet complete - the Spring version does not boot up. And they accidentally mention that a demo is coming. They'll be demoing that degenerate abomination to the VP.
The port was far from ready, so they were going to use my original version. And once again they asked me "what do you think we should show in the demo?"
You took my baby. You want to mutilate it. You want me to advise on how to do that best. And now you want me to advise on "which angle would it be best to look at it".
I wasn't invited to the demo, but my colleagues were. After the demo they told me mgmt asked those devs "why are you porting it to Spring?" and they answered with "because Spring will open us lots of possibilities for maintenance and extension of this project"
That hurts.
I can take a lot. But man, that hurts.
I wonder what else have they planned for me...rant slack idiocy project takeover automation hurts bot frameworks poor decision spring mutilation java11 -
So they took away our offices in favour of an open layout. This would have been fine if it was just us 3 devs and the manager, but we're sharing a space with network techs, help desk, the manager's secretary and an Accounts department all with little to no separation.
I'm now in the midst of incessant ringing of phones, idle chatter and raucous laughter with nowhere to retreat to for silence; I have no idea how/when I'm going to get any work done now. 😥😞
The organisation I work for is a f**king joke when it comes to management making any kind of logical decision.12 -
I've talked in past rants about how marketing loves showing off features to customers that are still in Beta to give us devs more pressure to finish them earlier, but it really just ends up screwing up our schedule since we have to push back on other features.
We had warned them not to do so for a series of reasons. But this time, this time their bad practices has come back to bite them in their butts.
They've been bragging all over to customers about this API integration we've been developing. They caught a reasonable amount of customers whose main reason for hopping in with us was this API integration. We finished the code on time, and submitted to the API provider for them to revise our "app". It's been a long back-and-forth conversation clarifying purposes and trying to fix tiny details and, of course, the providers' emails take almost a week to come back. We're waayy past the deadline marketing had promised customers, and they know they can't really blame the devs.
Sucks to lose these customers, but it feels so good to show these marketing pricks a lesson.2 -
Why do a lot of people on this site get away with typos? I mean, we're supposed to be devs, typos kill us.. From 'postion' instead of 'position', i can do this all day.. i get it, the point is getting the thought across, and, by all means, the thought came across just fine.. it just irks the mind thinking its supposed to be a dev community yet, quite ironically, it is peppered with typos.. dont even wanna get started with the your/you're, the there/their/they're and the than/then.. i mean, how can you not know its proper usage? Is it really that hard? If you can't use it properly, then don't.. if you can't form a sentence without using it, consider not saying/posting and get back to school first..
Imagine an internet where one corner could at least be decent enough to be proficient in the simplest thing: using words..70 -
Non-technical manager who been managing my team for years: "hey can you take a look at this log?"
*log is all PHP*
Us: "we're iOS devs, none of us know PHP"
Manager: "well why not?"
HOW DO YOU GET PAID MORE THAN US2 -
Top gripes about getting older as I'm about to turn 40:
5. Actually starting to have moments at home after work where I'm contemplating saying 'Hey babe, wanna bang?' but before I can get the words out my body pipes in with 'Dude, cool your jets, we're wiped out today; check back tomorrow.' Women say they like older guys because <insert character trait here> but I'm now convinced it's just because they know there's less work involved. =/
4. Friends with young children. I hardly ever see them anymore, and when I do, all they talk about are their kids and their shitty relationship with their co-parent. The circle continues to get smaller...
3. Having to go get glasses in order to renew my driver's license. How do we not have a heads-up display in every vehicle by now that shows the street numbers of buildings as I'm perpendicular to them as well as the names of upcoming cross streets? That way I'd fix the problem the way I do for everything else: notch up the font scaling on my display a point or two. Elon, you're slipping...
2. Realizing that the "American Dream" isn't worth the paper it was printed on. (Anyone else remember paying 97¢ for a gallon of gas or $2 for a pack of Marlboros?) Concurrent realization: It's not easy to find work in another country without moving there first, even if you speak the language. Any devs in Portugal that read this, ligue-me.
1. Being too busy to just chat with new people I meet except on rare occasion. Mostly referring to work time here, when it seems I'm always needing to find the shortest route to the objectif du jour. If I could tell my teenage self just one piece of advice, it'd probably be "start your career in Europe, not the USA" but I really want it to be "treasure the time you spend on IRC talking about anything and everything with people that always have time for you and vice versa, because it's going to be over before you know it." -
I'm feeling like writing this down...
So today I got told off by my boss. Why? Because my job bores me.
My current title, "webmaster", is quite similar to "plumber" where I work. I fix holes on our websites, and I tell "qualified" people (external providers) how a project should be made. Nothing exciting, nothing creative, boring.
So I got told off today for being "laid-back" in a newsletter project (GDPR, looking at you) and not being thorough in my procedures of testing and configuration. Fair enough, I didn't care and I admitted it. It's a boring drag-and-drop done in literally 5 minutes, there's no added brain-value here. Plus I got told off by my IT Manager because our Exchange server would not let me receive test emails. Still doesn't work after a day. Yay.
Then she said "we're doing exciting things here, it's not always the case anywhere else you'd work". And I'm like: "really? I love writing code, seeing things coming alive, investigating why things don't run smoothly, writing efficient code (both in performance and in readability)". I hear many friend devs telling me they're doing that and what they do during their "dev-day"... All I'm doing here is "maintenance" (a.k.a boring) stuff that apparently is "exciting". Adding a <script> to handle google tag manager is hell fun, going through compiled CSS and change color values is also thrilling, finding out if a PDF handler application can handle PDF files, re-plugging a computer monitor to make it work...
I think she meant that I'm not at my place here.
Didn't want to tell her that I have no motivation in doing things I don't enjoy making, i.e, my job.
Good thing I have an interview in two weeks2 -
How do you deal with massively poorly-performing and unknowledgeable teams?
For background, I've been in my current position for ~7 months now.
A new manager joined recently and he's just floored at the reality of the team.
I mean, a large portion of my interview (and his) was the existing manager explicitly warning about how much of a dumpster fire everything is.
But still, nothing prepares you for it.
We're talking things like:
- Sequential integer user ids that are passable as query string args to anonymous endpoints, thus enabling you to view the data read by that view *for any* user.
- God-like lookup tables that all manner of pieces of data are shoved into as a catch-all
- A continued focus on unnecessary stored procedures despite us being a Linq shop
- Complete lack of awareness of SOLID principles
- Actual FUD around the simplest of things like interfaces, inversion of control, dependency injection (and the list goes on).
I've been elevated into this sort of quasi-senior position (in all but title - and salary), and I find myself having to navigate a daily struggle of trying to not have an absolute shit fit every time I have to dive into the depths of some of the code.
Compounded onto that is the knowledge that most of the team are on comparable salaries (within a couple thousand) of mine, purely owing to length of service.
We're talking salaries for mid-senior level devs, for people that at market rates would command no more (if even close) than a junior rate.
The problem is that I'm aware of how bad things are, but then somehow I'm constantly surprised and confronted with ever more insane levels of shitfuckery, and... I'm getting tired.
It's been 7 months, I love the job, I'm working in the charity sector and I love the fact that the things I'm working on are directly improving people's lives, rather than lining some fintech fatcat's pockets.
I guess this was more a rant than a question, and also long time no see...
So my question is this:
- How do you deal with this?
- How do you go on without just dying inside every single day?8 -
"Alright everyone, we can't keep this up. Every day our builds are breaking because of test failures."
"We could just be more diligent devs and actually write/update tests based on new behavior we introduce to the system?"
"What? No! We're just going to get rid of all tests!"
a few days later
"Guys!!! Everything's on fire now! How didn't we catch these huge breaking changes!"
https://media3.giphy.com/media/...2 -
Sorry to keep whining about my stupid fucking job, but y'all, I think I'm nearing my limit.
There's some good...I am pretty much free to resolve issues any way I want to, as the only other person in the company who "codes" only knows one old ass language that doesn't apply to 90% of the rest of the tech stack at all, and some SQL - all of that to say, we may disagree, but ultimately, these matters are always deferred to me at the end of the day, insofar as the actual implementation goes (which is to say I am not micromanaged). At least as far as non-visuals are concerned, because those of course, are the most important things. Button colors and shit, woo hoo**. That's what we should focus on as we're bringing in potentially millions of dollars per month - the god damn button color and collapsible accordions based on data type over the shit ass DB performance bottleneck, the lack of redundancy or backups (aside from the one I made soon after I started -- literally saved everyone today because of that. My thanks? None, and more bullshit tasks) or the 300GB+ spaghetti code nightmare that is the literal circulatory system of the FUCKING COMPANY. Hundreds of people depend on it for their livelihoods, and those of their families, but fuck me in the face, right? I'm just a god damn nerd who has worked for the federal government, a handful of fortune 500's, a couple of fortune 100's, some startups, etc. But the fuck do I know about the lifecycle of companies?
I could continue ranting, but what's the point? I've got a nice little adage that I've started to live by, and y'all might appreciate it: "If everything is a priority/is important, nothing is". These folks just don't fucking get it. I'm torn because, on the one hand, they waste my time and kinda underpay me, in addition to forcing me to be onsite for 50 hours a week. They don't listen to me, couldn't give a flying shit about my experientially based opinions. I'm just a fucking chimp with a typewriter, there to take commands like a fucking waiter. But there's a lot of job security, assuming I don't fucking snap one day, and the job market for devs (I'm sure I don't need to tell you) is hostile atm. I'm also drinking far more than usual, and I really need to do something about that. It's only wednesday - I think...not 100% on that truth be told, and I logged my fourth trip to the liquor store this week already.
**Dear backenders - don't ever learn front end, or if you do, just lie about it to avoid being designated full stack. It's not worth it.4 -
My current job at the release & deploy mgmt team:
Basically this is the "theoretically sound flow":
* devs shit code and build stuff => if all tests in pipeline are green, it's eligible for promotion
* devs fill in desired version number build inside an excel sheet, we take this version number and deploy said version into a higher environment
* we deploy all the thingies and we just do ONE spec run for the entire environment
* we validate, and then go home
In the real world however:
* devs build shit and the tests are failed/unstable ===> disable test in the pipeline
* devs write down a version umber but since they disabled the tests they realize it's not working because they forgot thing XYZ, and want us to deploy another version of said application after code-freeze deadline
* deployments fail because said developers don't know jack shit about flyway database migrations, they always fail, we have to point them out where they'd go wrong, we even gave them the tooling to use to check such schema's, but they never use it
* a deploy fails, we send feedback, they request a NEW version, with the same bug still in it, because working with git is waaaaay too progressive
* We enable all the tests again (we basically regenerate all the pipeline jobs) And it turns out some devs have manually modified the pipelines, causing the build/deploy process to fail. We urged Mgmt to seal off the jenkins for devs since we're dealing with this fucking nonsense the whole time, but noooooo , devs are "smart persons that are supposed to have sense of responsibility"...yeah FUCK THAT
* Even after new versions received after deadline, the application still ain't green... What happens is basically doing it all over again the next day...
This is basically what happens when you:=
* have nos tandards and rules inr egards to conventions
* have very poor solution-ed work flow processes that have "grown organically"
* have management that is way too permissive in allowing breaking stuff and pleasing other "team leader" asscracks...
* have a very bad user/rights mgmt on LDAP side (which unfortunately we cannot do anything about it, because that is in the ownership of some dinosaur fossil that strangely enough is alive and walks around in here... If you ask/propose solutions that person goes into sulking mode. He (correctly) fears his only reason for existence (LDAP) will be gone if someone dares to touch it...
This is a government agency mind you!
More and more thinking daily that i really don't want to go to office and make a ton of money.
So the only motivation right now is..the money, which i find abhorrent.
And also more stuff, but now that i am writing this down makes me really really sad. I don't want to feel sad, so i stop being sad and feel awesome instead.1 -
Bashing our fellow developers for using <insert tech> is not cool. This especially became overboard with PHP. And yes I've been guilty of this, despite using PHP before for so long as well.
https://justmarkup.com/log/2018/...5 -
What is it with devs who try to bloody "cost optimise" everything to within an inch of its life when there's no reason to do so?! This ain't your personal pocket money project here. This is a real commercial app with real consequences.
Seriously, saving £100 a month might seem like a lot to you, but this is a multi million pound project we're talking about. That's bloody nothing, and no-one will care. If a Fargate spot instance restarts at the wrong time and causes downtime though, or if we need logs going back a week, and don't have them because the log retention period is a few days, then everyone will be royally pissed. All because you thought "it should be ok", or it "seemed like the right thing to do". Sod off.4 -
Why is it that virtually all new languages in the last 25 years or so have a C-like syntax?
- Java wanted to sort-of knock off C++.
- C# wanted to be Java but on Microsoft's proprietary stack instead of SUN's (now Oracle's).
- Several other languages such as Vala, Scala, Swift, etc. do only careful evolution, seemingly so as to not alienate the devs used to previous C-like languages.
- Not to speak of everyone's favourite enemy, JavaScript…
- Then there is ReasonML which is basically an alternate, more C-like, syntax for OCaml, and is then compiled to JavaScript.
Now we're slowly arriving at the meat of this rant: back when I started university, the first semester programming lecture used Scheme, and provided a fine introduction to (functional) programming. Scheme, like other variants of Lisp, is a fine language, very flexible, code is data, data is code, but you get somewhat lost in a sea of parentheses, probably worse than the C-like languages' salad of curly braces. But it was a refreshing change from the likes of C, C++, and Java in terms of approach.
But the real enlightenment came when I read through Okasaki's paper on purely functional data structures. The author uses Standard ML in the paper, and after the initial shock (because it's different than most everything else I had seen), and getting used to the notation, I loved the crisp clarity it brings with almost no ceremony at all!
After looking around a bit, I found that nobody seems to use SML anymore, but there are viable alternatives, depending on your taste:
- Pragmatic programmers can use OCaml, which has immutability by default, and tries to guide the programmer to a functional programming mindset, but can accommodate imperative constructs easily when necessary.
- F# was born as OCaml on .NET but has now evolved into its own great thing with many upsides and very few downsides; I recommend every C# developer should give it a try.
- Somewhat more extreme is Haskell, with its ideology of pure functions and lazy evaluation that makes introducing side effects, I/O, and other imperative constructs rather a pain in the arse, and not quite my piece of cake, but learning it can still help you be a better programmer in whatever language you use on a day-to-day basis.
Anyway, the point is that after working with several of these languages developed out of the original Meta Language, it baffles me how anyone can be happy being a curly-braces-language developer without craving something more succinct and to-the-point. Especially when it comes to JavaScript: all the above mentioned ML-like languages can be compiled to JavaScript, so developing directly in JavaScript should hardly be a necessity.
Obviously these curly-braces languages will still be needed for a long time coming, legacy systems and all—just look at COBOL—, but my point stands.7 -
300 global variables.. THREE HUNDRED FUCKING GLOBAL VARIABLES?
Are you for real?
Now let me check the line numbers again..
hmm.. line 97 to .. yep line 410, just a few new lines to seperate some of them or.. group? Idk, I've given up on trying to understand those.
Now you may ask "But ThatPerlDeb, where did you see this and what was the intention?"
Low and behold, take a chair and I may explain this to you.
First of all: Fuck the dev that wrote this!
Second: Fuck all the devs that kept up with this practice or whatever you want to fucking call this!
Now, the application is our POS system that our customers can use for a monthly fee (That this piece of garbage even requires payment is disgusting) but anyway..
The global variables sometimes are declared for labels, sometimes for some frames, sometimes just for random values to be there.
We're using Perl for the POS system and Perl ain't the best at OOP, so in the dev's defense I can understand why you'd use a few global variables, but not fucking 300!! FUCK OFF WITH THIS BULLSHIT!!
So now I'm going through this torture slowly but surely deleting globals and putting them into some sort of scope and always MANUALLY test if something broke. Again, this company sucks ass and there's nothing that could even be considered a "unit test" or something like that, so fuck that, too.
After two hours I've brought down the count of global variables to about 260, so there's progress being made..
But then, there comes more!
"But how???" you may ask, and you're right, I've asked that myself.
Now to resolve the global stuff in each file some of the initial globals are used, we got about 20-30 files which do different stuff, all fair and square, at least there was an attempt at seperating functions but god this mess is so fucking fucked up. So in order to "safely" delete a global variable I have to check if any of the variables are used in another file, and if so, in which scope and how they are used.
Spaghetti would be a compliment for this fucking disgusting piece of utter bullshit.
Let alone the code quality of this "code"
Indendation? Dafuq is dat?
Scope? Nah, we got everything global anyway
Function size? Well, some are 5 lines, some are 900 lines, who cares anyways, right?
I'm so fucking glad once I leave this shithole, for real.6 -
A /thread.
I have to say something important. As the story progresses, the rage will keep fueling up and get more spicy. You should also feel your blood boil more. If not, that's because you're happy to be a slave.
This is a clusterfuck story. I'll come back and forth to some paragraphs to talk about more details and why everything, INCLUDING OUR DEVELOPER JOBS ARE A SCAM. we're getting USED as SLAVES because it's standardized AS NORMAL. IT IS EVERYTHING *BUT* NORMAL.
START:
As im watching the 2022 world cup i noticed something that has enraged me as a software engineer.
The camera has pointed to the crowd where there were old football players such as Rondinho, Kaka, old (fat) Ronaldo and other assholes i dont give a shit about.
These men are old (old for football) and therefore they dont play sports anymore.
These men don't do SHIT in their lives. They have retired at like 39 years old with MULTI MILLIONS OF DOLLARS IN THEIR BANK ACCOUNT.
And thats not all. despite of them not doing anything in life anymore, THEY ARE STILL EARNING MILLIONS AND MILLIONS OF DOLLARS PER MONTH. FOR WHAT?????
While i as a backend software engineer get used as a slave to do extreme and hard as SHIT jobs for slave salary.
500-600$ MAX PER MONTH is for junior BACKEND engineers! By the law of my country software businesses are not allowed to pay less than $500 for IT jobs. If thats for backend, imagine how much lower is for frontend? I'll tell you cause i used to be a frontend dev in 2016: $200-400 PER MONTH IS FOR FRONTEND DEVELOPERS.
A BACKEND SOFTWARE ENGINEER with at least 7-9 years of professional experience, is allowed to have $1000-2000 PER MONTH
In my country, if you want to have a salary of MORE THAN $3000/Month as SOFTWARE ENGINEER, you have to have a minimum of Master's Degree and in some cases a required PhD!!!!!!
Are you fucking kidding me?
Also. (Btw i have a BSc comp. sci. Degree from a valuable university) I have taken a SHIT ton of interviews. NOT ONE OF THEM HAVE ASKED ME IF I HAVE A DEGREE. NO ONE. All HRs and lead Devs have asked me about myself, what i want to learn and about my past dev experience, projects i worked on etc so they can approximate my knowledge complexity.
EVEN TOPTAL! Their HR NEVER asked me about my fycking degree because no one gives a SHIT about your fucking degree. Do you know how can you tell if someone has a degree? THEY'LL FUCKING TELL YOU THEY HAVE A DEGREE! LMAO! It was all a Fucking scam designed by the Matrix to enslave you and mentally break you. Besides wasting your Fucking time.
This means that companies put degree requirement in job post just to follow formal procedures, but in reality NO ONE GIVES A SHIT ABOUT IT. NOOBOODYYY.
ALSO: I GRADUATED AND I STILL DID NOT RECEIVE MY DEGREE PAPER BECAUSE THEY NEED AT LEAST 6 MONTHS TO MAKE IT. SOME PEOPLE EVEN WAITED 2 YEARS. A FRIEND OF MINE WHO GRADUATED IN FEBRUARY 2022, STILL DIDNT RECEIVE HIS DEGREE TODAY IN DECEMBER 2022. ALL THEY CAN DO IS PRINT YOU A PAPER TO CONFIRM THAT I DO HAVE A DEGREE AS PROOF TO COMPANIES WHO HIRE ME. WHAT THE FUCK ARE THEY MAKING FOR SO LONG, DIAMONDS???
are you fucking kidding me? You fucking bitch. The sole paper i can use to wipe my asshole with that they call a DEGREE, at the end I CANT EVEN HAVE IT???
Fuck You.
This system that values how much BULLSHIT you can memorize for short term, is called "EDUCATION", NOT "MEMORIZATION" System.
Think about it. Don't believe be? Are you one of those nerds with A+ grades who loves school and defends this education system? Here I'll fuck you with a single question: if i gave you a task to solve from linear algebra, or math analysis, probabilistics and statistics, physics, or theory, or a task to write ASM code, would you know how to do it? No you won't. Because you "learned" that months or years ago. You don't know shit. CHECK MATE. You can answer those questions by googling. Even the most experienced software engineers still use google. ALL of friends with A+ grades always answered "i dont know" or "i dont remember". HOW IF YOU PASSED IT WITH A+ 6 DAYS AGO? If so, WHY THE FUCK ARE WE WASTING YEARS OF AN ALREADY SHORT HUMAN LIFE TO TEMPORARILY MEMORIZE GARBAGE? WHY DONT WE LEARN THAT PROCESS THROUGH WORKING ON PRACTICAL PROJECTS??? WOULDNT YOU AGREE THATS A BETTER SOLUTION, YOU MOTHERFUCKER BITCH ASS SLAVE SUCKA???
Im can't even afford to buy my First fuckinf Car with this slave salary. Inflation is up so much that 1 bag of BASIC groceries from Walmart costs $100. IF BASIC GROCERIES ARE $100, HOW DO I LIVE WITH $500-600/MONTH IF I HAVE OTHER EXPENSES?
Now, back to slavery. Here's what i learned.
1800s: slaves are directly forced to work in exchange for food to survive.
2000s: slaves are indirectly forced to work in exchange for money as a MIDDLEMAN that can be used to buy food to survive.
????
This means: slavery has not gone anywhere. Slavery has just evolved. And you're fine with it.
Will post part 2 later.8 -
1. It's gonna be more and more specialized - to the point where we'll equal or even outdo the medical profession. Even today, you can put 100 techs/devs into a room and not find two doing the same job - that number will rise with the advent of even more new fields, languages and frameworks.
2. As most end users enjoy ignoring all security instructions, software and hardware will be locked down. This will be the disadvantage of developers, makers and hackers equally. The importance of social engineering means the platform development will focus on protecting the users from themselves, locking out legitimate tinkerers in the process.
3. With the EU getting into the backdoor game with eTLS (only 20 years after everyone else realized it's shit), informational security will reach an all-time low as criminals exploit the vulnerabilities that the standard will certainly have.
4. While good old-fashioned police work still applies to the internet, people will accept more and more mass surveillance as the voices of reason will be silenced. Devs will probably hear more and more about implementing these or joining the resistance.
5. We'll see major leaks, both as a consequence of mass-surveillance (done incompetently and thus, insecurely) and as activist retaliation.
6. As the political correctness morons continue invading our communities and projects, productivity will drop. A small group of more assertive devs will form - not pretty or presentable, but they - we - get shit done for the rest.
7. With IT becoming more and more public, pseudo-knowledge, FUD and sales bullshit will take over and, much like we're already seeing it in the financial sector, drown out any attempt of useful education. There will be a new silver-bullet, it will be useless. Like the rest. Stick to brass (as in IDS/IPS, Firewall, AV, Education), less expensive and more effective.
8. With the internet becoming a part of the real life without most people realizing it and/or acting accordingly, security issues will have more financial damages and potentially lethal consequences. We've already seen insulin pumps being hacked remotely and pacemakers' firmware being replaced without proper authentication. This will reach other areas.
9. After marijuana is legalized, dev productivity will either plummet or skyrocket. Or be entirely unaffected. Who cares, I'll roll the next one.
10. There will be new JS frameworks. The world will turn, it will rain.1 -
So the story is true and this is what we have to deal with now..
My friend and I started to build a Web Application for a Roleplay Community. The project was for a client mainly and they don't mind if we try to sell this project to the public. All goes well except the shitty design, which is the one our client asked for. So after 6 months of work we planned to switch our backend to Nodejs, the switch look quite easy in our brains [PHP => NODEJS] because we already use Nodejs for instant functions without reloading the page.
So during the planning we earn a client which is one of the member of the clan, but he pay for another clan which is 6x bigger then the one we're in. So we continue to develop and think about the switch. We learn a news about a new competitor, this one sucks, we tried their App and it's not worth the money they ask. A few days after another competitor enter the market, this one is a big challenge for us. "Sit down tight, yea you reading this"..
The competitor use BUBBLE to create their shit, they earned 10 clients in one week and just punch us with "THE ROCK" hand, they release a lot of feature each week, they're 6 devs on that (if we can call them devs), we're 2 programmers (True Programmers). What we do in 1 week they do it in 5 hours with Bubble, the switching to Nodejs was a badluck, you couldn't add feature because of this switch during 2 weeks, this made us later and second in the race. My friend (at the same time my employee and back-end programmer) move into another appartment which obligate him to work full-time. At this time I'm f****, I'm only a Front-End Programmer vs 6 Wannabe Devs with a mother**** tool of *** (#Bubble).
This is where I am, in this beautiful opportunity to win this market but with this bad luck occuring = the opportunity is low, but our advantage is we don't have made our project public yet so they're the only good option for the communities to get that kind of web app, the others are not included and only a copy of this (Their Product) or just a big junk made with Wix.
At this time I'm working hard to make this opportunity happen, I have my math which I have to finish to have my High School diploma to do, a part-time job to get if I want to stay with an internet connection and finally I have to find a way to still be able to make my dream come true (Working on my Business at full time & Make money from it) and continue to be a Front-End Programmer/CEO of an enterprise.4 -
I'm working on a project that is being shipped to production this friday, so we're killing all bugs and finishing all remaining features.
Sadly, one of the main devs just took his vacation last friday for THREE WEEKS, and being the small team we are, it feels like we'll need to work non-stop extra hours every day to meet the deadline.
The problem is, I can't sleep right now and it's 2:30 am, so fuck me.4 -
So at our company, we use Google Sheets to for to coordinate everything, from designs to bug reporting to localization decisions, etc... Except for roadmaps, we use Trello for that. I found this very unintuitive and disorganized. Google Sheets GUI, as you all know, was not tailored for development project coordination. It is a spreadsheet creation tool. Pages of document are loosely connected to each other and you often have to keep a link to each of them because each Google Sheets document is isolated from each other by design. Not to mention the constant requests for permission for each document, wasting everybody's time.
I brought up the suggestion to the CEO that we should migrate everything to GitHub because everybody already needed a Github account to pull the latest version of our codebase even if they're not developers themselves. Gihub interface is easier to navigate, there's an Issues tab for bug report, a Wiki tab for designs and a Projects tab for roadmaps, eliminating the need for a separate Trello account. All tabs are organized within each project. This is how I've seen people coordinated with each other on open-source projects, it's a proven, battle-tested model of coordination between different roles in a software project.
The CEO shot down the proposal immediately, reason cited: The design team is not familiar with using the Github website because they've never thought of Github as a website for any role other than developers.
Fast-forward to a recent meeting where the person operating the computer connected to the big TV is struggling to scroll down a 600+ row long spreadsheet trying to find one of the open bugs. At that point, the CEO asked if there's anyway to hide resolved bugs. I immediately brought up Github and received support from our tester (vocal support anyway, other devs might have felt the same but were afraid to speak up). As you all know, Github by default only shows open issues by default, reducing the clutter that would be generated by past closed issues. This is the most obvious solution to the CEO's problem. But this CEO still stubbornly rejected the proposal.
2 lessons to take away from this story:
- Developer seems to be the only role in a development team that is willing to learn new tools for their work. Everybody else just tries to stretch the limit of the tools they already knew even if it meant fitting a square peg into a round hole. Well, I can't speak for testers, out of 2 testers I interacted with, one I never asked her opinion about Github, and the other one was the guy mentioned above. But I do know a pixel artist in the same company having a similar condition. She tries to make pixel arts using Photoshop. Didn't get to talk to her about this because we're not on the same project, but if we were, I'd suggest her use Aseprite, or (at least Pixelorama if the company doesn't want to spend for Aseprite's price tag) for the purpose of drawing pixel arts. Not sure how willing she would be at learning new tools, though.
- Github and other git hosts have a bit of a branding problem. Their names - Github, BitBucket, GitLab, etc... - are evocative of a tool exclusively used by developers, yet their websites have these features that are supposed to be used by different roles other than developers. Issues tabs are used by testers as well as developers. Wiki tabs are used by designers alongside developers. Projects and Insights tabs are used by project managers/product owners. Discussion tabs are used by every roles. Artists can even submit new assets through Pull Requests tabs if the Art Directors know how to use the site interface (Art Directors' job is literally just code review, but for artistic assets). These websites are more than just git hosts. They are straight-up Jira replacement with git hosting as a bonus feature. How can we get that through the head of non-developers so that we don't have to keep 4+ accounts for different websites for the same project?4 -
I have had it with the new pm for my project. We've had to literally write down rules for him to follow on how we want to run our project.
- we always go over time on standup because he's asking everyone specific questions about each ticket we're working on instead of just letting us give our updates. Wrote a rule for not doing that.
- he gets overly excited to get things done to the point that he's approved a PR himself and merged a production release during off hours.
- we're a team of 3 devs but he has 7 big items he wants us to work on concurrently.
- we use jira to keep track of things but he insists on us updating a spread sheet that he made as well. We just straight up told him no but he'll bring it 3 times every week.
- he wants us to write a report of our daily progress in our jira ticket before we give the same updates on standup
- every time I give him an estimate, he tells the clients it's a promise we'll get it done by x date.
- he never pushes back and says yes to everything
- oh here's a funny one, he's "reviewed" my code several times
Idk what to do here anymore. We've literally talked to him about all of these issues. He'll change for a few days and go back to doing whatever he does.6 -
Companies: We're starting to rotate people back through the office
Devs all drinking their desks: Please no2 -
Multi User, One Account, and other shit
I'm gonna rant about something as a user, and someone who makes stupid web stuff.
My bank has been updating their web banking over time and they decided that every individual on an account, should have their own login. They really want to push this on their users, I suspect specifically folks like me and my wife who share one login for the joint accounts we have at the bank together.
Why share one login, because it's the only sure fire way I know that I and my wife can see all the same shit no doubt about it.
The banks never tell you what you can see or can't with joint accounts, I doubt it is even documented on their end, but in every damn case something is hidden or different in some weird way.
Messages to the bank people? If I send it, my wife often can't. I get that for security reasons that's a thing, but it makes no sense for a joint account.
ANY difference to me breaks online banking ENTIRELY. Joint accounts are supposed to be... well one account that is the same.
Other banks we used where we had different logins for the joint account, each login actually had separate bill pay accounts per user. So if I went to bill pay and scheduled something to be paid, my wife had no idea, same if she did.
Right fucking there, banking is just broken entirely!
So no Mr. Bank, fuck you we're both logging in via the same login.
Fast forward to N00bPancakes making a thing.
So my employer has a customer (Direct Customer). Direct Customer wants a thing that makes communication with their customer (Indirect Customer) easier.
The worst thing about making something for your customer's customer is that Direct Customer always imagines that Indirect Customer is gonna be super ninja power users....
But no, that's not the case... in fact almost nobody is a power user, and absolutely nobody WANTS to be a power users.
Worse yet in my case the only reason this tool exists is because Direct Customer and Indirect Customer can't communicate well enough anyway... that should tell you something about the amount of effort Indirect Customer is willing to expend.
So with that tool, this situation constantly comes up:
Direct Customer thinks it would be great if every user from Indirect Company had some sort of custom messaging, views, and etc in of Cool Communication Tool. The reason is because that's what Direct Customer loves about Ultra Complex Primary Tool that they use ....
Then I have to fight the constant fight of:
NOBODY WANTS TO BE A POWER USER, NOBODY EVEN WANTS TO DO MUCH OF ANYTHING ON THE INTERNET THAT ISN'T SCREAMING AT OTHER PEOPLE OR POST MEMES OR WATCH SHITTY VIDEOS. THE MOMENT ANYONE AT INDIRECT COMPANY LOGS IN AND SEES ANY INFO THAT IS DIFFERENT FROM THEIR COWORKER THEY'LL SHIT THEMSELVES, FLOOD EVERYONE WITH 'OH GAWD SOME NON SPECIFIED THING IS WRONG' AND RESPOND TO EMAILS LIKE A JELLYFISH DROPPED OFF IN NEW MEXICO... AND NOTHING WILL GET DONE!!!
God damn it people.
Also side rant while I'm busy fighting the good fight to keep shit simple and etc:
People bitch about how horrible the modern web is and then bitch at web devs like we're rulers of the internet or something.... What really pisses me off about that is other devs who do that.... like bro, do you make policy at your company? You decide not to sell some info or whatever shit your company sells? Like fuck off with your 'man I miss html' because you got scared by some shitty JS error and ran back to your language of choice and just poked your head out of the the basement and got scared... and you shit on another developer about that? Fuck you.1 -
A tale of silos, pivots, and mismanagement.
Background: Our consultancy has been working with this client for over a year now. It started with some of our back-end devs working on the API.
We are in Canada. The client is located in the US. There are two other teams in Canada. The client has an overseas company contracted to do the front-end of the app. And at the time we started, there was a 'UX consultancy' also in the US.
I joined the project several months in to replace the then-defunct UX company. I was the only UX consultant on the project at that time. I was also to build out a functional front-end 'prototype' (Vue/Scss) ahead of the other teams so that we could begin tying the fractured arms of the product together.
At this point there was a partial spec for the back-end, a somewhat architected API, a loose idea of a basic front-end, and a smattering of ideas, concepts, sketches, and horrific wireframes scattered about various places online.
At this point we had:
One back-end
One front-end
One functional prototype
One back-end Jira board
One front-end Jira board
No task-management for UX
You might get where this is going...
None of the teams had shared meetings. None of the team leads spoke to each other. Each team had their own terms, their own trajectory, and their own goals.
Just as our team started pushing for more alignment, and we began having shared meetings, the client decided to pivot the product in another direction.
Now we had:
One back-end
One original front-end
One first-pivot front-end
Two functional prototypes
One front-end Jira board
One back-end Jira board
No worries. We're professionals. We do this all the time. We rolled with it and we shifted focus to a new direction, with the same goals in mind internally to keep things aligned and moving along.
Slowly, the client hired managers to start leading everything in the same direction. Things started to look up. The back-end team and the product and UX teams started aligning goals and working toward the same objectives.
Then the client shifted directions again. This time bigger. More 'verticals'. I was to leave the previous 'prototypes' behind, and feature-freeze them to work on the new direction.
One back-end
One conceptual 'new' back-end
One original front-end
One first-pivot front-end
One 'all verticals' front-end
One functional prototype
One back-end Jira board
One front-end Jira board
One product Jira board
One UX Jira board
Meanwhile, the back-end team, the front-end team overseas, all kept moving in the previously agreed-upon direction.
At this stage, probably 6 months in, the 'prototypes' were much less proper 'prototypes' but actually just full apps (with a stubbed back-end since I was never given permission or support to access the actual back-end).
The state of things today:
Back to one back-end
One original front-end
One first-pivot front-end
One 'all verticals' front-end
One 'working' front-end
One 'QA' front-end
One 'demo' front-end
One functional prototype
One back-end Jira board
Two front-end Jira boards
One current product Jira board
One future product Jira board
One current UX Jira board
One future UX Jira board
One QA Jira board
I report to approximately 4 people remotely (depending on the task or the week).
There are three representatives from 'product' who dictate features and priorities (they often do not align).
I still maintain the 'prototype' to this day. The front-end team does not have access to the code of this 'prototype' (the clients' request). The client's QA team does not test against the 'prototype'.
The demos of the front-end version of the product include peanut-gallery design-by-committee 'bug call-outs', feature requests, and scope creep by attendees in the dozens from all manner of teams and directors.4 -
Our approach is to get a loose feel for what the client wants, lift some visuals from Theme Forest then spend the next few weeks persuading the client to use our crappy server rather than their preferred AWS solution. Then once the project is behind schedule we break the work down into disparate tasks each of which gets a single line brief from the PM (such as 'create admin' or 'do css'). These then get assigned to different devs with no consideration of their skillset. The PM is available for 10 mins every day to answer queries, the rest of the time our devs are expected to work autonomously. Meanwhile we'll tell the client that we're back on schedule and arrange a demo for an impossibly short deadline. We have the mantra ”dont worry about it” which the PM uses to quash any dev's concerns up until the day before the deadline at which point we'll swap some devs on to unrelated work whilst others concentrate on getting "just the pages the client wants to see looking right" (we have a policy of making it look like it works before it actually does.) Following the demo we will announce all the missing features we had forgotten about from the initial undocumented agreement and set the project aside whilst we service another client.2
-
Devs: How should we design the UI?
Design & Marketing: We were thinking something like the Ferrari website (or app that has nothing to do with our industry)
Devs: How about we add <feature that all of our competitors have>? We're falling quite behind on that and its hindering us from connecting with their REST API.
Marketing: Nah that's too complicated, and our customers haven't requested it. How about we add some animal animations over there instead?1 -
Perhaps as a tip for the junior devs out there, here's what I learned about programming skills on the job:
You know those heavy classes back in college that taught you all about Data Structures? Some devs may argue that you just need to know how to code and you don't need to know fancy Data Structures or Big o notation theory, but in the real world we use them all the time, especially for important projects.
All those principles about Sets, (Linked) lists, map, filter, reduce, union, intersection, symmetric difference, Big O Notation... They matter and are used to solve problems. I used to think I could just coast by without being versed in them.. Soon, mathematics and Big o notation came back to bite me.
Three example projects I worked in where this mattered:
- Massive data collection and processing in legacy Java (clients want their data fast, so better think about the performance implications of CRUD into Collections)
- ReactJS (oh yes, maps and filters are used a lot...)
- Massive data collection in C# where data manipulation results are crucial (union, intersection, symmetric difference,...)
Overall: speed and quality mattered (better know your Big o notation or use a cheat sheet, though I prefer the first)
Yes, the approach can be optimized here, but often we're tied to client constraints, with some room if we're lucky.
I'm glad I learned this lesson. I would rather have skills in my head and in memory than having to look up things and try to understand them all the time.5 -
I think that this is a rant place and we all complain a lot and shit but in the end of the day, we all love being Devs and after all, that's why we're here..3
-
Headsup: if you're making a game, or want to, a good starting point is to ask a single question.
How do I want this game to feel?
A lot of people who make games get into it because they play and they say I wish this or that feature were different. Or they imagine new mechanics, or new story, or new aesthetics. These are all interesting approaches to explore.
If you're familiar with a lot of games, and why and how their designs work, starting with game
feel is great. It gives you a palette of ideas to riff on, without knowing exactly why it works, using your gut as you go. In fact a lot of designers who made great games used this approach, creating the basic form, and basically flew-blind, using the testing process to 'find the fun'.
But what if, instead of focusing on what emotions a game or mechanic evokes, we ask:
How does this system or mechanic alter the
*players behaviors*? What behaviors
*invoke* a given emotion?
And from there you can start to see the thread that connects emotion, and behavior.
In *Alien: Isolation*, the alien 'hunts' for the player, and is invulnerable. Besides its menacing look, and the dense atmosphere, its invincibility
has a powerful effect on the player. The player is prone to fear and running.
By looking at behavior first, w/ just this one game, and listing the emotions and behaviors
in pairs "Fear: Running", for example, you can start to work backwards to the systems and *conditions* that created that emotion.
In fact, by breaking designs down in this manner, it becomes easy to find parallels, and create
these emotions in games that are typically outside the given genre.
For example, if you wanted to make a game about vietnam (hold the overuse of 'fortunate son') how might we approach this?
One description might be: Play as a soldier or an insurgent during the harsh jungle warfare of vietnam. Set ambushes, scout through dense and snake infested underbrush. Identify enemy armaments to outfit your raids, and take the fight to them.
Mechanics might include
1. crawl through underbrush paths, with events to stab poisonous snacks, brush away spiders or centipedes, like the spiders in metro, hold your breathe as armed enemy units march by, etc.
2. learn to use enfilade and time your attacks.
3. run and gun chases. An ambush happens catching you off guard, you are immediately tossed behind cover, and an NPC says "we can stay and fight but we're out numbered, we should run." and the system plots out how the NPCs hem you in to direct you toward a series of
retreats and nearest cover (because its not supposed to be a battle, but a chase, so we want the player to run). Maybe it uses these NPC ambushes to occasionally push the player to interesting map objectives/locations, who knows.
4. The scouting system from State of Decay. you get a certain amount of time before you risk being 'spotted', and have to climb to the top of say, a building, or a tower, and prioritize which objects in the enemy camp to identity: trucks, anti-air, heavy guns, rockets, troop formations, carriers, comms stations, etc. And that determines what is available to 'call in' as support on the mission.
And all of this, b/c you're focusing on the player behaviors that you want, leads to the *emotions* or feelings you want the player to experience.
Point is, when you focus on the activities you want the player to *do* its a more reliable way of determining what the player will *feel*, the 'role' they'll take on, which is exactly what any good designer should want.
If we return back to Alien: Isolation, even though its a survival horror game, can we find parallels outside that genre? Well The Last of Us for one.
How so? Well TLOU is a survival third-person shooter, not a horror game, and it shows. Theres
not the omnipresent feeling of being overpowered. The player does use stealth, but mostly it's because it serves the player's main role: a hardened survivor whos a capable killer, struggling through a crapsack world. The similarity though comes in with the boss battles against the infected.
The enemy in these fights is almost unstoppable, they're a tank, and the devs have the player running from them just to survive. Many players cant help but feel a little panic as they run for their lives, especially with the superbly designed custom death scenes for joel. The point is, mechanics are more of a means to an end, and if games are paintings, and mechanics are the brushes, player behavior is the individual strokes and player emotion is the color. And by examining TLOU in this way, it becomes obvious that while its a third person survival shooter, the boss fights are *overtones* of Alien: Isolation.
And we can draw that comparison because like bach, who was deaf, and focused on the keys and not the sound, we're focused on player behavior and not strictly emotions.1 -
Calling in all Vue devs here! (Possibly any SPA dev actually)
We're building these fancy live-edit fields for our app. It syncs with the database with every keypress (with a debounce, ofc). Now, we're having a global Vuex module to keep track of the applications sync state. Using this module, we can prevent the user from leaving the page if there is data that hasn't been synced. Though, I think I'm doing something wrong here, and not strictly adhering to the "single source of truth"-principle.
When a user has finished typing, a request is made through Axios. When the response arrives, the field issuing the request updates it's display accoring to the response. However, there is also an Axios interceptor which updates the global state to reflect the latest response. Is this wrong? Should the fields themselves emit the mutation to the store? Or is it okay to use an interceptor since they're running down the same call stack?
I think my biggest worry here is that the interceptor and the field will interpret the response differently...
Help is appreciated :D (and thanks for taking the time)18 -
I'm currently the only dev that works with a client's dev team. That's not really how we usually work, usually it's a whole team of ours.
Three aspects why this sucks:
1) the client's dev team is made up of juniors and junior to intermediate devs. All of them are new to scrum. I therefore have to constantly support (dev & agile workflow), check all the PRs and have to think of everything in Refinement meetings.
2) the client's based in another timezone and the PO is super busy because we're the only agile team in their company. Therefore this is going to be the third Friday in a row where I have meetings until 6pm.
3) I also have a specific time frame I have to start working for my company, so I constantly work extra hours due to the time difference.
I'm just tired.4 -
Someone should make a movie about three ghosts that haunt a BLOODY CROOK who makes his employees and coworkers burn the midnight oil in the bloody CHISTMAS EVE because the fucker haven't finished something that should have been ready TWO FUCKING WEEKS AGO.
The ghost of Christmas past shows the fucker that he was a bloody LAZY KID who made his elderly relatives cook, host, clean, wash the dishes and everything else all by themselves during family-gathering season.
The ghost of Christmas present shows him his employees' children teary eyed that daddy doesn't get to watch cartoons with them before bedtime (we're not Christians but just because my house is a steak-free zone it doesn't mean my kids don't expect gifts from santa, like most kids in their school!)
The ghost of Christmas future shows a Netflix documentary on how the fucker got arrested for being a BLOODY CROOK that gets played by some actor who is a hollywood-level jerk who beats his wife. And the show gets a 3% on rotten tomatoes, just to salt the wound. Oh, and a voiceover says the real BLOODY CROOK hanged himself in prison or something and his family is happy he did it.
Fuck, I hate, for real hate, people whose tardiness bleeds out on honestly-working people. I had to wake up one of my devs to fix the SHIT that the bloody crook higher-up shat on us.
My guy is getting a raise as soon as I can scream at the bean counters and my boss will be getting some loooooong, data-rich report on how the bloody crook's department is pissing in our soup.
Fuck everything.2 -
This is more of a rant with a question within:
It's International Women's Day and I did not see this hitting me like it is lol, but I have a question for my fellow devs all over:
Do you actually like the system of developers making up fake doctors appointments (or whatever) to go interview with the competitor because they don't feel appreciated at their current company?
Do people actually like sneaking around and telling lies and constantly having to prove yourself to new people instead of just having a process in place to rectify the situation where you work?
And do you actually like having to spend so much time and energy negotiating pay so you don't get ripped off?
I know this happens to all of us, regardless of how we identify. But I once had a recruiter call me the day after she talked to my best friend, a male dev (same experience level), and using his same techniques that we practiced together, she offered me almost $100k less for the same title she offered him the day before, despite the strongest negotiating of my life. She insisted the company simply could not go higher. This affected my friend almost as much as it affected me-- this really does happen. We're not making it up. Sometimes not even the best advice can change the reality.
Shit like that is just depressing, and reminds me that it probably wouldn't be that different if I went somewhere else anyway. But I'm wondering if you like that hustle, or if you too wish it wasn't needed.18 -
My visceral hate of Spring.Net burns with the force of a thousand suns.
Almost everything it does is done wrong or solved better by other solutions.
Specifying which classes to instantiate from .xml files? Sure why not, compile type safety (the whole reason for using a static programming language) is obviously overrated and dependency based injection is surely impossible!
And for extra bonus points, now our client code must be aware of the internals of the service classes, and all of their references as well, because, encapsulation? Who cares.
Have you made an typo? Good fucking luck finding out from which of the 100 config files we have floating around...
And, because it has baked in AOP and Transactions its woven into the fabric of the project like a tapewom.
Of course this may just be how our "special snowflake" project uses Spring.
What makes it more painful is that I love good DI tools (ninject, castlewindsor, autofac, there are so many...) and we're stuck with this turd because 7 years ago some java devs couldn't be arsed to learn a new library...1 -
Taking my company's Security training... One of the rules was don't download unauthorized programs.
Find except we're devs so if we really need a program we could write our own that does the same thing
But yes lots of things mentioned we shouldn't do that well I think any sane person would do...
Wondering are they trying to make everyone quit or is this like double speak?
Do all companies do this?4 -
My previous rant was still in my edit window while I wanted to create this random one and it was so bad, the effort of deleting it was even painful. Imagine reading it. You guys dodged a bullet like a Rust dev does with fun.
I was in my bed, just thinking about Rust people. Saying that Rust is saying that sex with a condom is great but we both know the truth and that you're only doing it because your environment like your parents and government (the Biden administration, fact) wants you to.
But while thinking this, I just found the real issue regarding declining child births in the west. Every time in history had it's issues, but we're doing fine. What changed that we don't have make those sweet kiddo's now? Well, we just don't have power outages anymore and we have the internet on a device with hours of battery to keep us entertained. We don't have to take the rewarding and exciting risk of a C dev anymore if we're bored (great sex without a condom).
My solution: planned internet outages executed by the MIVD (better than the CIA, the MIVD can at least keep secret what they're doing, I'm sure you've never heard of this tough bastards). The effects will be very easy measurable in a span of few years. But it has to be executed in secret so people don't cheat by downloading a Netflix movie upfront. Netflix & Chill is a hoax, else we would have a baby boom by now or we're all Rust devs.
Anyway, even if you're a Rust dev, admit that this is a great inharmful idea that could actually help.
I don't do jokes.
Phone is birth control, change my mind like I did yours.
You're welcome.random condom i should work for gvt chill rust internet phone outage netflix planned c dr conspiracy13 -
I thought I posted about this awhile back but I didn't. I'm glad since the story is so much better now.
6 weeks ago: Told I'm going to be on a super fun JAMStack build with lots of sexy animations. Sweet, this will be a fun build!
5 weeks ago: Find out what the timeline on this incredibly ambitious project is. I start raising flags cause everything needs to go PERFECT for this to not blow up and/or turn in to a dumpster fire.
4 weeks ago: Project "kicks off" with a meeting with the client. We find out that they've decided to do another round of revisions on their design comps, but we have what we need for sprint 1. We provide a list of all the assets/information we still need for sprint 1 success.
3 weeks ago: Still waiting on some assets for sprint one, but we're fumbling our way through. Still waiting on the PM to get around to doing their PM job and building out our backlog / gathering requirements for us.
2 weeks ago: Sprint 1's end date comes and goes. Still need assets from the client, I've personally asked them for the same asset 3 different times. Sprint 1 gets extended 1 week.
1 week ago: We deliver sprint 1 page templates, minus the resources we're still waiting for. Get chewed out by the client regarding the pages not looking like their comps (Yeah, no shit sherlock, you never sent us the assets)
This week: Working on Sprint 2 commitments. We have 2x as many page templates to deliver, per developer, as we had the first sprint. Still waiting on Sprint 1 assets. Don't have Sprint 2 assets. Wait, what about the global styles? They still haven't sent those to us yet either.
Requirements? Guess I'll spend valuable dev time tracking those down for myself.
Client? Well, they're pissed off we haven't hit our commitments yet.
Oh well, at least we have a pimple faced, fresh out of college, CS major, with no real development experience rolling on to this cesspool of a project.
Other devs? Well, we're out of fucks to give. Lets just watch this thing burn.
Oh, I forgot to add, we have 17 page templates to deliever between today (2/27) and 3/18. #NoFuckingWay -
I think I've asked this before. Just cropped up again cuz I'm pushed to do some stuff in nextjs
I Wonder how much longer before js framework devs realise they've been reverse engineering the browser this whole time, that the current browser spec was outdated since the dawn of Web fidelity and real time applications
I wonder whether there are some guys who have seen this and are already cooking in the background. The browser still treats the Internet like front end and back end, whereas with the way apps are going (eg deprecation of the front/back end roles), it seems apparent the browser needs to scale up by fading whatever js is now
I'm seeing "use server", which was one of php's infamous atrocities back in the day (lack of separation of concerns, everything in index.php). It's shocking how those who ridicule that language let this fly, but that's probably a separate thread. Point is, a bunch of these stuff done by front end frameworks seem like boilerplate but the syntax is far different from what I remember javaScript to be. I only vaguely recollect and understand what I'm reading
Why not merge all the cryptic syntaxes struggling to achieve bare minimal expectations, into advanced markup language controlled by dom attributes? Overhaul and Rethink client - server communication to fit modern standard. Someone needs to step out of the box and take a good look at the rat race. I find our lives would be made much simpler if api integration into client side behaviour wasn't a separate thing altogether
You have all these funny hoops and precarious bridges to cross. The reality is what we're fighting to overcome is the manner the architecture is setup. We need a Google/meta/amazon/apple to step in with a new browser since it's not a weekend gig and might need their reach to catch on with mainstream users. Sadly, they're the same guys rolling out new js frameworks2 -
As a new Monday arrives and another work week rears its ugly head, I'd like to impart some encouraging words for once:
Some of you might be working with legacy systems with code that resembles a Jackson Pollock painting.
Some of you have teams of people, both devs and managers, with the tact and intelligence of a lemming.
And almost all of us have something in our professions that we're just not looking forward to.
But take heart, my fellow ranters.
At least you're not stuck doing stuff like this:
https://youtu.be/yPuI4l0jK7s -
Starting to wonder why I tend to like our QA people so much: they often seem so much saner. Yes, sometimes they quibble as with the complaints about a page that is hidden from the user anyway, but they would usually not creep to deep into the hole creating most unintuitive workflows and abysmal logic.
Disclaimer: We're more like backend devs, but we had to do a UI which was beautifully slaughtered by the CEO messing with it - guess what's happening with the new one - and because of that... thing I already nearly smashed my Mac because stupid entered credentials for updating software would only be applied if you defocused once out of the password entry box. Fucked up stuff like this, which devs meddle with, give up, just shrug it off and dump it on the (l)user.
Or a more recent example: So PM wanted a stupid "Apply to all" buttons on a list that can be filtered. Guess to which items the actions should be applied if you filtered it and you currently only see a small selection in your window! Yes, of course it still applies to all items in the universe. QA guy who's just trying the buttons comes to me: "Hey, you sure this "apply all"-stuff supposed to work like that?"
Third example to end this long QA-praise: So there is this virtual appliance we build and we should support another stupid hypervisor.. and he found the kernel modules I have to activate additionally so we can just convert the existing image without having to create a new build system.3 -
There needs to be a new (MOOC) class for people like me.
Hi, I'm William. I can't get my head around designing systems. I've read GoF and a few breakdowns of it as well. I find some patterns obvious for my field of interest (game dev, woot!) while I'm reading through the stuff, but have a pretty hard time retaining much of it. I'm aware of the danger of over using patterns, so I don't worry that much about it. I'll look something up when I'm sure I need it.
Still, I'm tired of the tutorial blues. I can watch a few different people write entire games, usually not in the language of choice, but that only helps me so much.
How do I fight scope creep? In the meantime, how can I make things extensible? Scope does need to creep some, after all.
People joke about starting with (visual) BASIC ruining you forever. I don't believe in that crap, but is this just denial? Am I too dumb for this? Not that I'd ever seriously blame a language for that.
I've been a hobbyist for well over 10 years, please don't make me count exactly how long I've been unsuccessful.
I'm baffled by Löve. I think it's the coolest shit I've seen, maybe ever (unless we're counting IPFS).
I think what really prompted this rant, apart from the obvious degradation of my mental health, was my search for an entity component system for Löve/Lua. Hold your replies. I know there's a few of them, and I'm positive that they're fantastic. I'd roll my own, but that requires actual Lua specific knowledge that I just haven't dug all that deep into yet. I can't wrap my head around the ones that exist, even though I can tell their complexity is next to none really.
I have severe tool anxiety, I'm shocked that I've stuck with ZeroBrane Studio as long as I have. It feels good though.
Sorry to use this as "Devs Anonymous", but I think that's how this community helps (me) best.
I feel like I should stop now and just say: Advice? before this gets much deeper/less readable.