Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "big teams"
Remain calm, don’t freak out, remain calm, don’t freak out.
Ok, so my sort of new manager (had a slightly different manger-ish role on the team), has for the third time in as many months, just sent an email criticizing the dev team for our working from home-ness (which for the record has not been that bad, 2/3 or 3/3 have been in everyday for the past month)
In this same period, there has been late nights, weekends, successful releases, I’ve been invited to talk at a conference about my work (not a particularly big one, but still). Point is, everything is going well, very well in fact.
There has been no emails discussing our great work, thanking us for extra work, thanking us for picking up slack from other teams who are down a few people etc. no our major concern it seems is the “optics” of our team not being present in the open space.
Our contracts list flexible working hours, and his boss has frequently told us WFH is fine when things are too busy. But no he is complaining for us to get our hours in the office in line and make sure we are in the office more.
It’s been a particularly long and frustrating week, and I’m very tempted to inform him that if he is concerned about my chair and desk looking empty, that I can put them somewhere for him where they will always be occupied until a surgeon can remove them.
However, thanks to the deep breaths, I’ve managed to restrain myself long enough to run this past you all first and ask advice.
So I have been recently hired at my current job for leading a product team. We're a small team working in a big company which have other teams working on other projects. I like my work and I have been appreciated for my work which I did since my stay here.
So I and my manager were discussing about how more can we automate our workflow to reduce the time to get the final builds. It was late in night. Suddenly someone asked, 'did I hear automation?'. We turned to see our CTO listening to our conversation. He told us that he's having trouble with automation in his project. I was new, so I didn't know what did he work on, so I asked.
Me: So what did you guys work on?
CTO: well, we work on automating stuff for clients and save them money. We earn 100x revenue than your product (In a more humble tone). I am currently looking for someone who can lead a team of developers for handling the automation scripting part. *Provides description of the candidate* Do you guys know someone like that?
Manager: (pointing towards me) It looks like his description.
CTO: I want him in my team then.
Manager: That can't happen, he's required in very important stuff and you're not allowed to poach.
CTO: I think I have the right to poach 😉
Me: OK, so how much raise am I going to get to switch teams (to the manager) and how much am I going to get to stay? Whoever gives me more I am theirs.
CTO: I like this guy
It's day three, I am still awaiting for one of them to tell me who won 🙁
PS: They both are friends with each other.2
Team quarterly capacity planning:
- Confluence document created with a big table (+100 rows) by product / business. Each row is something that needs to be worked on for the coming quarter.
- Row 1 could be an Epic with 15 tickets attached. Row 2 could be adding a single log to our analytics. No consistency.
- For each row, we create a separate confluence document with the "technical details". 75% of the time these remain blank. 1% of the time there is something useful, the rest its a slightly longer version of the description from the bigger document.
- Each row gets a high level estimate by the leads. 50% of the time without sufficient background info to actually do get it accurate.
- These are then copied into the teams excel spreadsheet, where it will calculate if we are over/under capacity.
- We will go backwards and forwards between confluence and excel until we are "close enough" to under capacity without being too much.
- Once done, we then need to copy them into the org/division's excel spreadsheet. This document is huge, has every team on it and massive 50pt text saying "Do not put a filter on this document".
- Jira tickets + Epics will now be created for each one, with all the data be copied over by hand, bit by bit, by product. Often missing something.
- Last week, at the end of this process for Q2 (2 weeks late), 6 of the leads were asked to attend a 30 minute meeting to discuss how to group the line items together because we had too many for the bigger excel spreadsheet.
- This morning I was told business weren't happy with one of our decisions to delay one line item. Although they were all top priority (P0), one of them was actually higher than that again (P-1?) and we need to work it back in.
... so back to step 1
- Mid way through Q2, a new document will be created for Q3. Work items that didn't make the cut will be manually copied from one to the other. 50/50 whether anything that didn't get done on time in Q2 will make its way to the Q3 doc.
- "Tech excellence" / "Tech debt" items (unit/UI tests, documentation, logging, performance, stability etc) will never be copied over. Because product doesn't understand them and assumes therefore that they are unimportant.
PS: I'd like to say this was a rare event for Q2, but no. Q4 and Q1 were so bad, we were made assurances from the director of engineering that he would fix this process for Q2. This is the new and improved process (I shit you not) that has resulted in nothing tangible.7
"when i die i want my group project members to lower me into my grave so they can let me down one last time"
Last year in College, I had two simultaneous projects. Both were semester long projects. One was for a database class an another was for a software engineering class.
As you can guess, the focus of the projects was very different. Databases we made some desktop networked chat application with a user login system and what not in Java. SE we made an app store with an approval system and admin panels and ratings and reviews and all that jazz in Meteor.js.
The DB project we had 4 total people and one of them was someone we'll call Frank. Frank was also in my SE project group. Frank disappeared for several weeks. Not in class, didn't contact us, and at one point the professors didn't know much either. As soon as we noticed it would be an issue, we talked to the professors. Just keeping them in the loop will save you a lot of trouble down the road. I'm assuming there was some medical or family emergency because the professors were very understanding with him once he started coming back to class and they had a chance to talk.
Lesson 1: If you have that guy that doesn't show up or communicate, don't be a jerk to them and communicate with your professor. Also, don't stop trying to contact the rogue partner. Maybe they'll come around sometime.
It sucked to lose 25% of our team for a project, but Frank appreciated that we didn't totally ignore him and throw him under the bus to the point that the last day of class he came up to me and said, "hey, open your book bag and bring it next to mine." He then threw a LARGE bottle of booze in there as a thank you.
Lesson 2: Treat humans as humans. Things go wrong and understanding that will get you a lot farther with people than trying to make them feel terrible about something that may have been out of their control.
Our DB project went really well. We got an A, we demoed, it worked, it was cool. The biggest problem is I was the only person that had taken a networking class so I ended up doing a large portion of the work. I wish I had taken other people's skills into account when we were deciding on a project. Especially because the only requirement was that it needed to have a minimum of 5 tables and we had to use some SQL language (aka, we couldn't use no-SQL).
The SE project had Frank and a music major who wanted to minor in CS (and then 3 other regular CS students aside from me). This assignment was make an app store using any technology you want. But, you had to use agile sprints. So we had weekly meetings with the "customer" (the TA), who would change requirements on us to keep us on our toes and tell us what they wanted done as a priority for the next meeting. Seriously, just like real life. It was so much fun trying to stay ahead of that.
So we met up and tried to decided what to use. One kid said Java because we all had it for school. The big issue is trying to make a Java web app is a pain in the ass. Seriously, there are so many better things to use. Other teams decided to use Django because they all wanted to learn Python. I suggested why not use something with a nice package system to minimize duplicating work that had already been done and tested by someone. Kid 1 didn't like that because he said in the real world you have to make your own software and not use packages. Little did he know that I had worked in SE for a few years already and knew damn well that every good project has code from somewhere else that has already solved a problem you're facing. We went with Java the first week. It failed miserably. Nobody could get the server set up on their computers. Using VCS with it required you to keep the repo outside of the where you wrote code and copy and paste changes in there. It was just a huge flop so everyone else voted to change.
Lesson 3: Be flexible. Be open to learning new things. Don't be afraid to try something new. It'll make you a better developer in the long run.
We sat down one day and worked for 4 straight hours. We finished the whole project in that time. While other teams were figuring out how to layout their homepage, we had a working user system and admin page and everything. Our TA was trying to throw us for loops by asking for crazy things and we still came through. We had tests that ran along side the application as you used it. It was friggin cool.
Lesson 4: If possible, pick the right tool for the job. Not the tool you know. Everything in CS has a purpose. If you use it for its purpose, you will save days off of a project.1
I asked my manager for a compensation adjustment today since my peers at the same tenure and experience as me were making $30,000 more than me. They said no since I haven't worked on any big projects yet and the projects that were big enough, I didn't do it by myself so they don't count.
I'm not sure if they know how software teams work... I'm pretty sure we make software for TEAMs...6
Spend 14 hours a week studying more with my free time.
Things to be studied:
-other relevant maths
Other things I want to improve:
-confidence at work
-reaching out to teams with questions
-enjoying the little things
-consistency (with everything above)
Last big thing would be being more conscious with what type of data/platforms I am digesting everyday. Just like a good diet I want to get in the habit of consuming “good” useful content that’s thought provoking or knowable rather than fast food social media carbs
Wish everyone a productive New Year!6
There's so many posts on here that say fuck apple or Microsoft only real programmers or computer users run Linux. Maybe step back and reflect why these companies got big. Maybe the programmers in their development teams are actually good. Maybe variety and competition and different focuses is good for us and consumers.19
A lot of engineering fads go in circle.
Architecture in the 80s: Mainframe and clients.
Architecture in the 90s: Software systems connected by an ESB.
Architecture in the 2000s: Big central service and everyone connects to it for everything
Architecture in the 2010s: Decentralized microservices that communicate with queues.
Current: RabbitMQ and Kafka.
... Can't we just go back to the 90s?
I hate fads.
I hate when I have to get some data, and it's scattered on 20 different servers, and to load a fucking account page, a convoluted network of 40 apps have to be activated, some in PHP, others in JS, others on Java, that are developed by different teams, connected to different tiny ass DBs, all on huge clusters of tiny ass virtual machines that get 30% load at peak hours, 90% of which comes from serializing and parsing messages. 40 people maintaining this nightmare, that could've been just 7 people making a small monolithic system that easily handles this workload on a 4-core server with 32GB of RAM.
Tripple it, put it behind a load balancer, proper DB replication (use fucking CockroachDB if you really want survivability), and you've got zero downtime at a fraction of the cost.
Just because something's cool now, doesn't mean that everybody has to blindly follow it for fucks sake!
Same rant goes for functional vs OOP and all that crap. Going blindly with any of these is just a stupid fad, and the main reason why companies need refactoring of legacy code.13
I am DONE with this woman.
Background: we're a team of 3 developers and I'm the junior in this team and I've been in this shit for a year now. 2 months ago the team leader left for another project and I had to stand in for him in every responsibility against the PM and other teams.
Now I not only had to endure this insecure woman but I was also supposed to work with her! Fast-forward to today, the team leader is back and I thought I could put my headphones on and work peacefully at last.
I've found out she's sent a faulty code to production - no big deal - and said that over chat (although she's sitting right behind me):
Me: We need to fix this.
Me: *giving some details about the issue*
Her: Your attitude is important when you ask me to do something. Whenever you're writing to me you're typing on your keyboard like you're going to break it on my head.
*me not knowing what to say at this point because we had something stupid like this before*
Me: So you're offended by the sound my keyboard makes? (I have mx brown switches by the way and they're not even loud)
Her: No you're typing too fast when you're writing to me. The sound echoes in the office.
Can you fucking believe this shit? I hate people that think they can educate me but have no idea how to rationally respond to situations and take responsibility! I didn't even say anything!
And she's been saying to me she hadn't had a problem with any other people for gazillion years who knows how long and why would she cause a problem now! And thinks I am the problem, fuck YOU!
Since you don't like receiving orders why hadn't you taken the place when the fucking guy went for another project but I had to take all the responsibility? I know why you fucking entitled bitch.
Because you HAD NO IDEA AND YOU STILL DON'T.
So shut the fuck up and do as I say.
Have any of you already felt that you really like what you do (coding, of course, among other things), but you hate "the place(s)" where you work, specifically some of the people from there...?!?!?
It's 9AM, you already got your coffee, is comfortably sat, with your precious headphones, all ready for some gorgeous lines of code to gain life... but...
... your coworkers are arguing cos one prefer braces when using an single-line if statement, the other not...
... another one is discussing about how bad he's paid after discovering that a dev (at the same "level") receives more...
... the coordinator comes to convince you that the manager is not good, has not all the needed "certifications", and vice versa ...
... the designer didn't like the UX's work, and this is just an enough reason for a BIG gossip with the rest of the team (or even with people from other teams) ...
... the QA complains all the time about everything: the testing environments are a shit, the other QAs are a shit, the system is a shit, his life is a shit (even though he has not yet realized it) ...
Sometimes I miss that time when I got into the coding universe at home, giving my first steps and was creating things all the time... against the toxicity we find in a lot of enterprise "habitats"...1
My company just did its first delivery to a new big customer , got the acceptance docs signed etc.
Was pretty funny to see management and the business-tards furiously emailing one another with company wide replyAll
Congratulating one another over an excellent job they had done in particular,
for example :
Gavin : Ahh capital , well done john for your undertaking in this tremendous accomplishment
John: oh and thank YOU for your guidance Gavin, couldnt have done it without you, we really exceeded outselves with the hard work we put it, also a big mention to (insert another inbred manager's name)
And that keeps on bouncing on and on
( absolutely no fucking mention of devs who did the actual Work, nooo nooo just a brief reference to us as "the boys in london"....)
Kinda glad they aren't in office most of the time else this level of back-patting would have probably turned into a circle jerk in the board room.
Almost thought of getting the dev teams to join the storm of emails and start randomly congratulating one another too with company wide replyAlls but that kind of prank would likely be ill received by out high and mighty leaders.
( on the flip side maybe they would actually learn out names)3
5 of us working for a larger team were tasked with doing some R&D, we blew everyone away and were given funding to start a new team and hire people to make the project come to life.
One of the high level sales / product managers we were reporting to, secretly had another team work on a similar idea because he needed it quicker (i.e. no time for research, just build it).
After forming new team, we were asked to work on his project instead because it was further along. 4 months later, big knob comes to a meeting and basically says "You know what, this doesn't look like we have enough features, we need more, but I don't know what".
Project blew up 2 months later, head of the unit kicked up a shit storm saying how badly everything was planned and canned everything. Now one of our clients is building nearly the same thing we were originally working on, the team no longer exists and i'm back on the R&D team.
Don't get me wrong, I LOVE the R&D team, actually didn't want to leave in the first place but was told I had to. But the sheer anger and frustration to see that walking cluster fuck strutting around like his shit doesn't stink, derailing entire teams, meanwhile we can't hire new staff due to lack of funding.
Heres an idea, fire the fucktards bleeding us dry ... then we'll have lots of funding.
As a software house, we have many teams on different projects. One project was due to a Thursday, and the PM asked the team 1 week before if they could work over the weekend since there's a lot of things to do.
On the Friday before, one of the devs showed up a bit later than usual (around 10am), but ok...
After lunch he asked to talk to HR and also the boss. They talked for around 2h, then he started to say "goodbye and good luck" for everyone.
The project was on fire and he just... leave.
On the next 2 months another 4 people leave the company. All from the same team/project (but not with a big surprise like him).
Apparently, the team was constantly complaining to PM and boss about unrealistic deadlines and constant requirements changes, but they didn't did anything about it. Just when more than half this team had left the company they started to rethink this actions to this project and the others on the company.2
Little #ad (Not annoying don't worry - it's a cool project)
Just wanted to let y'all know about the awesome project from the Stanford University named Folding@Home!
Basically you donate CPU/GPU power and they use it for researching cancer/alzheimer's/etc.
All you need to do is install some software on your server/computer.
Then the software downloads so called "Work Units" (no big bandwidth required - really small packets) and simulates/calculates some stuff. Afterwards the client send the results back to their server.
This way they are able to create a "supercomputer" that is spread all over the world.
You don't need to pay anything except maybe some increased electricity bills (but you change some settings to use only a little part of the CPU/GPU and therefore create less heat).
Of course the program only uses the CPU/GPU power that's not required by any other software on the computer. I can literally play games while the client is running. No performance decrease.
That's a short intro by me. I can suggest you to visit their website and maybe even start folding by yourself!
Also @cr78, @kescherRant and me are in a team together. If you want to join our team as well just use our Team ID:
Yup, there's this little stats site (https://stats.foldingathome.com) where all teams can compete against each other. Nothing big.
I hope I convinced atleast some of you!
Feel free to ask questions in the comments!
Me: This is going to be a big issue
Me: (X10) Raise same issue
Suddenly my Friday starts with two teams going "HEY THIS IS AN ISSUE!"
Me: No shit? I never would have guessed. See you when I get back from vacation!2
Our project at work goes live in 3 weeks.
The code base has no automated tests, breaks very often, has never had any level of manual testing
will not be releasing with any form of enforced roles or permissions in our first release now due to no time to enforce, however there is a whole admin api where you can literally change anything in our database including roles.
We also have teams in various countries all working separately on the same solution using microservices with shared nuget packages and they aren't using them properly.
Our pull requests are so big - as much as, 75 file changes - in our fe app that I can't keep up with it and I honestly have no idea if it even works or not due to no automated tests and no time to manually test.
We have no testing team, or qa team of any sort.
Every request into the system has to hit a minimum of 3 different databases via 3 different microservices so 1 request = 4 requests with the load on the servers.
We don't use any file streams so everything is just shoved in the buffer on the server.
Most of the people working on the angular apps cba to learn angular, no one across 2 teams cba to learn git. We use git so they constantly face problems. The guy in charge has 0 experience in angular but makes me do things how he wants architecturally so half the patterns make no sense.
No one looks at the pull requests, they just click approve so they may as well push directly to master.
Unfinished work gets put in for pull request so we don't know if the app is in a release state since aall teams are working independently, but on the same code base.
I sat down and tested the app myself for an hour and found 25 fe only issues, and 5 breaking cross browser issues.
Most of our databases are not normalised. Most of our databases make no sense. 99% of our tables have no indexing since there is no expertise with free time to do it.
Our. Net core microservices all directly use ef in the controller actions so there is no shared code there.
Our customer facing fe app is not dry because no tests so it was decided it was better this way.
Management has no idea on code state, it seems team lead is lieing to them about things like having any level of tests.
Management hire devs that claim to be experts but then it turns out they have basically no knowledge of what they were hired to do, even don't know what json is or the framework or language they are hired for, but we just leave them to get on with it and again make prs too big to review.
Honestly I have no hope that this will go well now but I am morbidly curious to watch. I've never seen anything like the train wreck that we are about to get experience.7
Big-time Microsoft fan who claims they've been using licensed versions of Windows since Windows 3.0. Still has all old versions of Windows on different machines / hard-disks. They use only Microsoft Surface devices. They still use Nokia Lumia (with Windows Phone 10). They were working with an organization that used Office365 for enterprise email and collaboration. They used Microsoft Teams for team collaboration when the rest of the organization was comfortable with Atlassian tools like jira, confluence and bitbucket.
One fine day, news spreads that the organization is moving into GSuite for enterprise email and collaboration. They are devastated. They quit citing personal and family reasons, but we knew the real reason.16
story which happened yesterday and ended in mixed emotions
big changes in our company were announced, non tech employees changed positions, new business plan, people changing teams, shattering my plans of relocation back to my home country on the end of this year... told my manager I'm not happy, scheduled a call with manager on the highest position I'm in contact with
the call BB - big boss
BB: things are changing, it was decided like this, must be like this, can't do anything with it, other manager bla bla
ME: yes, but you knew I wanted to relocate, now my only option of relocating is to leave the company
BB: well, yes, thats unfortunate, but we would like you to stay, manager bla bla about growth, good work environment
ME: yes, but you're leaving me in this team as a only developer with people who not just don't have any tech background, they don't have a clue about dev stuff, like... at all * me = very not happy *
BB: but you know all our systems and work processes which will stay in place and you can teach new people, we need you * stopped, because probably realised what he said *
ME: * arrogant little laugh * well, i mean, I think i can live with it, but really wanted to talk about this, so you guys know I don't agree with what is happening here
BB: * sigh * ok, well.. yes, I mean, we were counting on this, we can give you a raise, but not much, maybe x%
ME: x% sounds good, I guess I can learn to live with this situation for a while
* everybody laughs *8
For a long time, I wanted to be a part of open source communities. I've been a dev for 6 years now.
I have the skills needed to help out but usually I'm fairly unexperienced on working with big teams, code reviews, and build-test systems they often use. So I'm scared as hell to even begin with. I feel unsecure to reach out and ask for helping or send a basic fix / pull-request.
What are your suggestions, how did you start working on open source projects?
Teach me senpai.3
2 hour meeting to brainstorm ideas to improve our system health monitoring (logging, alerting, monitoring, and metrics)
Never got past the alerting part. Piss poor excuses for human being managers kept 'blaming' our logging infrastructure for allowing them to log exceptions as 'Warnings', purposely by-passing the alerting system.
Then the d-head tried to 'educate' everyone the difference between error and exception …frack-wad…the difference isn't philosophical…shut up.
The B manager kept referring to our old logging system (like we stopped using it 5 years ago) and if it were written correctly, the legacy code would be easier to migrate. Fracking lying B….shut the frack up.
The fracking idiots then wanted to add direct-bypass of the alerting system (I purposely made the code to bypass alerting painful to write)
Mgr1: "The only way this will work is if you, by default, allow errors to bypass the alerting system. When all of our code is migrated, we'll change a config or something to enable alerting. That shouldn't be too hard."
Me: "Not going to happen. I made by-passing the alert system painful on purpose. If I make it easy, you'll never go back and change code."
Mgr2: "Oh, yes we will. Just mark that method as obsolete. That way, it will force us to fix the code."
Me: "The by-pass method is already obsolete and the teams are already ignoring the build warnings."
Mgr1: "No, that is not correct. We have a process to fix all build warnings related to obsolete methods."
Mgr2: "Yes. It won't be like the old system. We just never had time to go back and fix that code."
Me: "The method has been obsolete for almost a year. If your teams haven't fixed their code by now, it's not going to be fixed."
Mgr1: "You're expecting everything to be changed in one day. Our code base is way too big and there are too many changes to make. All we are asking for is a simple change that will give us the time we need to make the system better. We all want to make the system better…right?"
Me: "We made the changes to the core system over two years ago, and we had this same conversation, remember? If your team hasn't made any changes by now, they aren't going to. The only way they will change code to the new standard is if we make the old way painful. Sorry, that's the truth."
Mgr2: "Why did we make changes to the logging system? Why weren't any of us involved? If there were going to be all these changes, our team should have been part of the process."
Me: "You were and declined every meeting and every attempt to include your area. Considering the massive amount of infrastructure changes there was zero code changes required by your team. The new system simply worked. You can't take advantage of the new features which is why we're here today. I'm here to offer my help in any way I can with the transition."
Mgr1: "The new logging doesn't support logging of the different web page areas. Until you can make that change, we can't begin changing our code."
Me: "Logging properties is just a name+value pair dictionary. All you need to do is standardize on a name and how you add it to the collection."
Mgr2: "So, it's not a standard field? How difficult would it be to change the core assembly? This has to be standard across all our areas and shouldn't be up to the developers to type in anything they want."
- Frack wads smile and nod to each other like fracking chickens in a feeding frenzy
Me: "It can, but what will you call this property? What controls its value?"
- The look I got from both the d-bags I could tell a blood vessel popped.
Mgr1: "Oh…um….I don't know…Area? Yea … Area."
Mgr2: "Um…that's not specific enough. How about Page?"
Mgr1: "Well, pages can cross different areas, and areas cross different pages…what do you think?"
Me: "Don't know, don't care. It's up to you. I just need a name."
Mgr2: "Modules! Our MVC framework is broken up in Modules."
DevMgr: "We already have a field for Module. It's how we're segmenting the different business processes"
Mgr1: "Doesn't matter, we'll come up with a name later. Until then, we won't make any changes until there is a name."
DevMgr: "So what did we accomplish?"
Me: "That we need to review the web's logging and alerting process and make sure we're capturing errors being hidden as warnings."
Mgr1: "Nooo….we didn't accomplish anything. This meeting had no agenda and no purpose. We should have been included in the logging process changes from day one."
Mgr2: "I agree, I'm not sure why we're here"
Me: "This was a brainstorming meeting as listed in the agenda. We've accomplished 2 of the 4 items. I think we've established your commitment to making the system better. Thank you all for coming."
- Mgr1 and 2 left without looking at me or saying a word.1
This is more of a story than a rant, but it has some rant-ey elements, so whetever...
I work for a pretty big company. Several departments, teams, many different markets...so it's a big orchestration. The programming department (aprox. 5% of all employees) is the core of the whole company, because everybody else uses software we've written...(a bit off topic, the point is there are a lot of people)
So today, I got assigned with a side-project. The project spec arrives, and as I read through it, I start realizing that upper-management whats me to build an app to fire people instead for them. The app is supposed to track salary, connect with Trello (for departments that use it) to track finished tasks, track sick days, work attendence...a lot of stuff, and at the end, if the situation requires, spit out a person that is of least benefit to the company, to be fired...
Now from coding perspective, this will be very interesting and fun to build, but from a moral standpoint, I'm a bit woried...simply because, indirectly, I'm firing those people. Because, the way I tune the the app(specifically the algorithm that weighs the value of an employee to the company) will cause certain people to get fired...
So I'm woried I'm gonna have a small breakdown when the app goes live and I see someone saying goodbye to theie colegues of something similar...heck, the app might even spit out my name some day(I should probably add a tiny if statement somewhere in there :) )
What do you guys think about this, from a moral standpoint? Would you be okay with building something like this?
(Sorry for the long post :/ )8
TL;DR: A new "process" for collaboration between teams was created in order to stonewall requests from my team.
A couple months ago, we created a new Dev team that specializes in writing internal tools. This team was staffed with internal developers, and got a separate manager. The whole point of this team was to collaborate with my dev team so we can both help each other develop tools that the company needs.
One of the developers that was on my team went over to this team while he and I were still working on a big application. For a few weeks, he still worked on this application as he normally would, and we'd sit with each other and work through features together whenever we needed a fresh set of eyes.
Well, eventually his new team got protective of him and created a new "process" for our teams to request assistance from one another. So now instead of just popping over to someone's desk to ask a quick question, you have to send an email to the team and request that you can borrow that particular developer for a question, and then the entire team sits down and discusses whether or not they're going to allow that person to answer your question. Then after a week of discussion, if they decide to allow it, they schedule a meeting for a week later, in which you will get the question answered.
So instead of just spending 2 minutes to ask and answer the question, you have to spend weeks in order to request assistance, and then schedule a meeting.
It's ridiculous, and it's all because his team got protective that he was working with another Dev team. Dev teams collaborate all the time, and work together. My team is constantly helping other teams, and we don't have this ridiculous process. We get asked a question, and we answer it. Simple as that.
Last week, I sent an email for assistance in completing a feature, and didn't hear back. I talked to the Product Owner for the team, and he said "Just send an email," to which I responded that I did and hadn't got a response. He said "Oh....." I then told my boss that this is an enormous bottleneck, and he seemed surprised hearing that this is a bottleneck.
A week passed and today I still hadn't got a response, so my boss reached out to the Product Owner to push him. Finally, I got a response and they scheduled a meeting to answer my question 3 days down the road. So it's going on 2 weeks to get this simple question answered.
Normally I'd just have the other developer come over and help, but apparently they yelled at him the last time he did that.
The issue is that the process was created with the assistance of our "senior" developers, who never work with this other team in this capacity, so they just nodded and smiled and let them put this ridiculous process in place.
Like, get off your high horses. You don't "own" him, he's allowed to collaborate with other teams. This question would've taken literally 10 minutes, but because of your new "process" you've turned it into a 2 week debacle and you've effectively delayed the app launch with your pettiness.
They say that this process isn't intended to prevent us from getting assistance, and that might not have been the original intention of the Product Owner/manager, but it's very clear that the developers on the other team are taking advantage of it and using it as a big stonewall so they can beat around the bush and avoid providing assistance when it's needed.
If this becomes a trend, I'm going to schedule a meeting (which apparently they love to do,) and we're going re-work this entire process, because it's extremely counterproductive and seems to only exist in order to create red tape.3
QT Creator and openframeworks on Windows 10 fucking suck!
- Qt creator keeps getting issues with the system. Missing DLLs etc. Fuck you, Qt Creator! They aren't missing. I double checked them. Redownloaded them and installed them.
- Besides of that your inbuilt compiler sucks big time. It takes me a fucking minute to see a complete program with a simple text on a GUI.
Now back to openframeworks.
- OF doesn't use the pre-installed codecs on Windows. You have to install K-Lite codecs to play mp4 n shit.
- If you want to embed a video or an image on the GUI, you keep getting a layer on top of the canvas. Yellow colors turn blue etc. Fucking weird.
- OF isn't a fan of Windows. Tried to install and run OF on VS 2019. It is not supported.
How about we follow the documentation of OF and install it their way? Great. Let's do it.
It says install VS 2017.
Ok, let's try it on VS 2017. Doesn't work.
I realize that they use VS 2015 in the video of their documentation.
Geez. Ok, let us try it with VS 2015.
Tries to download it, but with no success. Microsoft isn't supporting it anymore. Thus no way to download it from the official website.
- How about OF on Code::Blocks?
Not supported. Doesn't work.
I reinstalled everything. Made a Windows update. Rebooted it. Still a big nope.
To both dev teams: Get your fucking shit together, you bloody morons!4
My collegue denies to provide breaking changes in our login API in a separate version to the other teams depending on it.
What is the reason for his stubborn rejection?
It's scrum. We haven't planned the effort for realising a versioning concept for our API.
Let's build it in the next sprint as a part of live deployment strategy.
The point he miss is that the ProductOwner wants his API change deployed during the next sprint.
Additionally, it is best practice, having a compatible, deployable product after each sprint, without any risks.
Furthermore, another best practice to provide your API is one URI without a version part holding the current development of the API. And URIs with a version part in it to keep a specific request/response structure and behavior.
What really grind my gears are sayings like 'if the other teams had well programmed their software, modifying our API won't have any effect on them'
C'mon dude. That's far from reality, as anybody knows.
I can't accept, we provide unprofessional API builds, as he is going to do.
So, i have to spend my time and energy to change his mind, together with other software-architects, planning the big thing API-Gateway *sigh*2
So in my company there few small teams all with lead devs. One team is leaded by a girl who changed her profession. She's good at architecture/Dev stuff. But one thing she's terrible at is her leading role. She won't confront any bad behavior, she won't ask about any problem with the tasks. She won't ask her tram how long will the tasks take, so she puts her own valuations.
But the killer is she's whining everyday to the management about her team members. That they didn't do their tasks/don't want to cooperate. Never looking in the eyes even when she whines about a person in the same room.
Another thing is that our CTO is always doing her leading job, confronting team members, giving them reprimends. She lost all her authority by this. Nobody respects her. And after a slight note about her behavior you just gonna get a big talk with CTO and nothing will change.
Another thing is that, she Nevers connect with her team. Don't talk together, won't go with them for the coffee, never at the integration parties.
That CTO connection is another topic...
Oh and I'm by the next month I'm gonna be throwed into her team, so wish me luck...1
2 years back when I was onshore, we were in the bad situation due to the size and complexity of handling big webserivces simulators. A single change makes the build red hence the face of other developers too.
These simulators were created using J2EE and VM templates 5 years back. With the time, application and data size grown. We were supposed to maintain consistensy in dummy data accross the applications. But some programmers made a copy of these simulators to finish their applications fast and made the situation worst.
Finally one of the team member dare to use stubby4j to solve this problem. Choosing the stubby4j was a good decision as it was the specialized tool written to create simulators only. But as the stubby4j was not having all the features a simulator need, he customized it's build for our simulators. All the team members were happy.
After few weeks, I picked a story to transform other simulators using stubby4j. The story was previously closed as it was hard to implement in stubby4j. I ingonred the comment and started working on. I spent 2 weeks but couldn't solve the problem. I read the comment in between but It was very late to take the step back. I was not able to give proper status update in the daily standup. Other team members (working from offshore) were thinking that I'm just passing the time. However my manager handled the situation very well and asked if I need some help.
This was friday, I took the leave as it was my wife's birthday. We couldn't go out due to the bad weather. I was thinking about the code all the time. Hence I started to write a new utility to handle all the requirement a webseervice simulator need. I took 2.5 days to complete it. On Tuesday, I demoed it to the whole team. And published it as an opensource application "STUBMATIC". In few weeks I received the good response from other teams as well.
I'm a full time open source developer now.
Tl;Dr Im the one of the few in my area that sees sftping as the prod service account shouldn't be a deployment process. And the ONLY ONE THAT CARES THAT THIS IS GONNA BREAK A BUNCH OF SHIT AT SOME POINT.
The non tl;dr:
For a whole year I've been trying to convince my area that sshing as the production service account is not the proper way to deploy and/or develop batch code. My area (my team and 3 sister teams) have no concept of using version control for our various Unix components (shell scripts and configuration files) that our CRITICAL for our teams ongoing success. Most develop in a "prodqa like" system and the remainder straight in production. Those that develop straight in prodqa have no "test" deployment so when they ssh files straight to actual production. Our area has no concept of continuous integration and automated build checking. There is no "test cases", no "systems testing" or "regression testing". No gate checks for changing production are enforced. There is a standing "approved" deployment process by the enterprise (my company is Whyyyyyyyyyy bigger than my area ) but no one uses it. In fact idk anyone in my area who knows HOW to deploy using the official deployment method. Yes, there is privileged access management on the service account. Yes the managers gets notified everytime someone accesses the privileged production account. The managers don't see fixing this as a priority. In fact I think I've only talk to ONE other person in my area who truly understands how terrible it is that we have full production change access on a daily basis. Ive brought this up so many times and so many times nothing has been done and I've tried to get it changed yet nothing has happened and I'm just SO FUCKING SICK that no one sees how big of a deal this. I mean, overall I live the area I work in, I love the people, yet this one glaring deficiency causes me so much fucking stress cause it's so fucking simple to fix.
We even have an newer enterprise deployment. Method leveraging a product called "urban code deploy" (ucd) to deploy a git repository. JUST FUCKING GIT WITH THE PROGRAM!!!!..... IT WAS RELEASED FUCKING 12 YEARS AGO......
Please..... Please..... I just want my otherwise normally awesome team to understand the importance and benefits of version control and approved/revertable deployments2
Ahh, this particularly memorable occasion, it’s not much of a “fight” per se, but remembering the events I really want to beat the shit out of those asshats,
Backstory, I was working in a project, big one, my previous one, we had all this “squads” to say, agile teams consisted of several devs, I was happily working in my squad namely squad “A”, until one day by the end of a sprint my PO asked me to help another squad, call it squad “B”,
Curious for the reason as I may be, I ignored it at first, after all having the higher up owing me one is always welcome, A and B are having similar amount of dev team, with A having 1 more Front End developer,
Skipping the boring detail, continue on to my first sprint, I saw problems within the team, the other 4 FE consisted of 2 foreigners (call them “the good guys”) and 2 of our own (same vendor as me, let’s call them “the pricks”),
The ones leading discussions most of the time are the pricks, the good guys usually keep their mouth shut, calm and composed, and when shit happens, the good guys usually fix the problem without any fuss, on the contrary, the pricks threw fit all over the place trying to find somone to blame first,
Skip all the excruciating 2 weeks of trying to guide them in the right way, and talking with their PO, my PO, tech leads, etc, I came across a development of a certain feature, PR already made and waiting for review from a TL, then being the impatient ass B’s PO is, he pushed me to ask for a review from another TL, and the only one available is “the meticulous and perfectionist” TL, which is definitely not my choice in any given order,
Simple math, I assigned my review to TL X, wait a day, it’ll definitely be merged within a day, give it to TL Y, he reviews it immediately, and he’ll find all these shit squad B’s been writing, and then I’ll be spending 3 days trying to clean it up, but no matter, the PO insist on having it reviewed first,
Lo and behold, it happened, I had to refactor all the shit the pricks have been writing, again, I took the high road, until I stumbled upon a piece of code that just doesn’t makes any sense, no matter how exhaustively I put the effort to trace it out, an hour passed by and I decided to ask the pricks, let’s call them #1 and #2, #1 being the senior prick, and #2 being the regular prick but bigger pain in the ass, it went on something like this,
Me: uhh, sorry to bother you guys, but what’s this piece is used for?
#2: huh? Dunno, last guy to touch it was #1
Me: eeh, but the line history says it’s you,
#2: strange, I don’t remember, for testing probably
Me: well TL said to remove this one if it’s unused, I want to know if it’ll affect any functionality
#2: well, go figure
Me: yep that’s why I’m asking
#2: well, if you don’t need it just remove it
Me: again that’s what I’m trying to figure out, will it affect any functionality, since time is pressing I don’t have room for experimenting so I’m trying to find some solution by asking the creator if he might have any insight on this matter
#2: well don’t ask me, try asking #1
Me: dear sir #1 have you the faintest idea of what this piece of scripture might mean?
#1: huh? No idea, #2 wrote it
#2:... I don’t remember, I thought it was you,
#1: see the git blame, it’s #2
Me: guys, since we’re not getting anywhere, I’ll just go against my guts and remove it, so that everyone can live happily ever after,
#2: wait, who’s asking?
Me: the reviewing TL,
#2: yes, who?
Me: mr Y
#2: let’s meet with him
Me: what for?
#2: you said he wants to delete the code, let’s have a chat with him
Me: *not this shit again
#2: what are we waiting for, let’s go,
Me: naah, no need I’ll just delete it as you said it first, sorry, my bad
#2: what’d you say?
Me: I already deleted it, nevermind
#2: why did you do that? If the TL doesn’t like it let’s have a chat
Me: and what would be the point of that? I deleted it already, case closed, I’ll take the responsibility for fixing anything that may come up later, I don’t have time for your childish shit,
#2: *glares at me
Me: *glares back
#1: now, now, let’s all take a step back here, blah blah blah
#2: blah blah blah
And they both starts arguing with each other after #1 tries to act all diplomatic, I left them to their own discussion, and proceed with the PR,
Thankfully removing the piece of code doesn’t affect anything, it seems like #1 or #2 forgot to delete it when fixing the unit test some commits ago1
"The ability to change on a dime is one thing small teams have by default that big teams can never have. This is where the big guys envy the little guys. What might take a big team in a huge organization weeks to change may only take a day in a small, lean organization. That advantage is priceless." - Andrew Hunt
I know this is utopic, but I've been thinking for a while now about starting an open source platform for figuring out the problems of our society and finding real world, applicable, open source solutions for them.
To give you some more details, the platform should have two interfaces:
- one for people involved in researching, compiling issues into smaller, concrete chunks that can be tackled in the real world, discuss and try to find workable solutions for the issues and so on
- one for the general public to search through the database of issues, become aware of the problems and follow progress on the issues that people started working on
Of course, anyone can join the platform, both as an observer (and have the ability to follow issues they find interesting) and/or contributor (and actually work with the community to make the world a better place in any way they can).
Each area of expertise would have some people that will manage the smaller communities that would build around issues, much like people already do in the open source community, managing teams to focus on the important thins for each issue. (I haven't found a solution for big egos getting in the way yet, but it would be nice if the people involved would focus on fixing stuff in stead of debating about tabs vs spaces, if you know what I mean).
The goal of this project would be to bring together as many people from all kind of fields to actually try to fix this broken society.
It would be even better if it attracted people with money and access to resources (one example off the top of my head being people like Elon Musk) that could help implement the solutions proposed by the community without expecting to gain profit off of it (profit is also acceptable if it is made in a considerate, fair and helpful way, but would not be promoted on the platform).
The whole thing would be voluntary work; no salary, no other commitment than the personal pledge that once someone chooses to tackle something, he/she will also see it trough (or at least do his/her best).
The platform would be something like a mix of real time communication, issue tracker, project management tool and publishing platform.
I don't yet have all the details for how it should all fit together, but if there is something that I would like to start, this is definitely it!
PS: I don't think I can ever do something like this by myself, and I don't really have the time to manage a community of developers to start work on it right now. But if you guys think something like this is something worth your time, I will make time and at least start on defining the architecture and try to turn this into a real project.
If enough people are interested, I will drop any other side projects and do my best to get this into the world!
Thank you for reading :)6
My programming paradigms unit has decided to explore different teaching/learning environments by creating lecture/workshops. Imagine a massive room with big projector screens at the front and smaller screens lined up against the wall at the back. The lecture room seats are designed around tables that are gradually elevated so it’s similar to a lecture hall but you’re sitting at discussion tables.
There’s the usual lecture with all the slides up around everywhere, there’s nice wheelie chairs and dimmer lighting... can’t tell if we’re at a conference or some awards night. Then all of a sudden, we’re coding in teams (tables) and uploading our work on to forums to discuss with the rest of the lecture hall. WHAAAAAAAT
Really different and quite enjoyable experience, there’s more than one tutor walking around to help, there’s mics for people to present.
Just sharing my new experience of forward learning environments that didn’t cause feelings of anxiousness for once or boredom. It was kind of mind blowing, wish it was always like this.
Story of my first successful project
Being part of a great team, I've shared in a lot of successes, one I am particularly proud of is my first attempt to use agile methodologies in a deeply waterfall-managment culture.
Time was June/July-ish and we applied for a national quality award where one key element in the application stated how well we handled customer complaint resolution.
While somewhat true (our customer service is the top-shelf good stuff), we did not have a systematic process in resolving customer complaints. Long story short,
the VP lied on her section of the application. Then came the 'emergency', borderline panic meeting (several VPs, managers, etc) to develop a process to better manage
complaints before the in-house inspection in December.
As most top priority projects go, the dev manager allocated 3 developers, 2 DBAs, and any/all network admins we would need (plus all the bureaucratic management that wanted their thumb in the pie).
Fast forward to August, after many, many planning meetings, lost interest, new shiny bouncing balls, I was the only one left on the project. The VP runs into the dev manager in the hallway and asks "Is my program done yet? If its not ready before December with report-able data, we will not win the award."
The <bleep> hit the fan...dev manager comes by...
Frank: "How the application coming along? Almost done?"
Me:"No, haven't really started coding. You moved Jake and Tom over to James's team, Tina quit, and you've had me sidetracked helping other teams because the DBAs are too busy."
Frank: "So, it's excuses. You really think the national quality award auditors care about your excuses? The specification design document has been done for months. This is unacceptable."
Me: "The VP finished up her section yesterday and according to the process, we can't start coding until the document is signed off."
Frank: "Holy f<bleep>ing sh<bleep>t! No one told you *you* couldn't start. You know how to create tables and write code."
Me: "There is no specification to write to. The design document is all about how they plan on reporting the data, not how call agents will be using the application to serve customers."
Frank: "The f<bleep> it isn't. F<bleep>ing monkeys could code against that specification, I helped write it! NO MORE F<bleep>ING EXCUSES! This is your top priority from now on!"
I was 'cleared' to work directly with the call center manager and the VP to develop a fully integrated customer complaint management system before December (by-passing any of the waterfall processes that would get in the way).
I had heard about this 'agile' stuff, attended a few conference tracks on the subject, read the manifesto, and thought "I could do this.".
Over the next month, I had my own 'sprints' and 'scrums' with the manager (at the time, 'agile' was a dirty word so I had to be careful of my words and what info I shared) and by the 2nd iteration had a working prototype.
Feature here, feature there (documenting the 'whys' and 'whats' along the way), and by October, had a full deployed application.
Not thinking I would get a parade or anything, the dev manager came back from a meeting where the VP was showing off the new app to the other VPs (and how she didn't really 'lie' on the application)
Frank: "Everyone is pleased how well the project turned out, except one thing. Erin said you bothered him too much with too many questions."
Me: "Bothered? Did he really say that?"
Frank: "No, not directly, but he said you would stop by his office every day to show him your progress and if he needed you to change anything. You shouldn't have done that."
Me: "Erin really seemed to like the continuous feedback. What we have now is very different than what we started with."
Frank: "Yes, probably because you kept bothering him and not following the specification document. That is why we spend so much time up front in design is so we don't waste management's time, which is exactly what you did."
Me: "We beat the deadline by two months, so I don't think I wasted anyone's time. In fact, this is kind of a big win for us, right?"
Frank: "Not really. There was breakdown in the process. We need better focus on the process, not in these one-hit-wonders."
End the end, the company won the award (mgmt team got to meet the vice president, yes the #2 guy). I know I played a very small, somewhat insignificant role in that victory, I was extremely proud to be part of the team.
Well kinda, more like first world problems.
I started freelancing almost three years ago, it took a lot of hard work, sweat blood and tears to get this whole thing running.
I am currently in a very good place, have a lot of retainer contracts and the awesome freedom that comes with being a freelancer.
Two days ago I got an offer from one of my clients, they really want to have me on board, full time, it's a small, already established startup company, that has big clients, they want me to go into partnership with them, see still haven't talked numbers but they are very "generous".
the idea is to get me ASAP full time on board and start working on a partnership contract specifying all the small details.
I love being a freelancer, the freedom is amazing, client acquisition is Eons away from being a problem, but I miss the team work, and I miss working on products and building teams, freelancers are kind of a lone wolves.
I love working with these clients, there is a lot of mutual respect, they are very transparent and we really are on the same wave.
This could be an amazing opportunity for the next steps in my carrier.
I'm having a hard time making a decision, I'm basically changing my mind about it every two hours...
I mean I guess I'm planning to open my own company at some point anyways... so maybe going into a small but stable company is the way to go..
What would you do?
Would you take the offer? Or would you keep freelancing?11
I don't know what to feel when you are the only person in team who has completed his deliverables, has his deliverables tested and stamped as alright and yet every time there is an issue everyone simply assumes it it you. Where is my f
* trust, why you so quick to believe the other guys....
and even if they blame me as a member of my team your first thing should not be to blindly believe their claims. I'M ON YOUR TEAM, you forget that when I'm being blamed you are also being indirectly blamed? I may be lacking in communication but my work speaks excellence fluently if anything TRUST THAT! 😑
So i want to know how finances work for tech companies. There are a lot of big numbers that come up when we talk about a company's finances, but i don't understand why the tech people are so down in the ladder, or why those no.s are not associated with the tech teams
Like here's a statement :
"company x is valuable at $42billion , their annual turnover is $5billion. With a profit of $2billion. The ceo has a worth of $1.4billion and company's share are selling at $1500 per share. Person a,b,c of the company hold's 2,3,4% in stocks and the investor sequoia capital is thinking of providing an investment of $25million"
This is a hypothetical company, but if this company is also providing its members of tech team @$20-200k per annum (depending upon seniority), then is it relatively too less? I mean the company is playing with numbers in millions, people are being attributed with billions and yet a developer has to satisfy in those numbers.
Is it because we are being paid by the no. Of hours/time? Because i want to know what other ways are there in which those managers and ceos and investors are being paid? I have heard far too many stories about devs leaving their jobs and starting businesses, and I don't think its only because their boss was a dick3
something id like to yell at my company:
if u only cant afford to take a certain team to team lunches because its getting too big, stop recruiting for fucks sake. it was literally the coolest perk🤷♂️
leave a company where I have big influence with less technical challenges for a big company where I am challenged but jus as an individual contributor
I am working for a good company as a DevOps engineer, made a lot of achievements and literally moved the company to a whole new level, however I am working all alone, no mentorship but I get to lead everything and take initiatives
You can imagine the stress working a lone with a big scale in terms of production and other teams that I should support
Have been promised that we will get a team but it has been 15 months and nothing happens
I feel that technical I am not growing enough since I don't have time to improve or any mentorship
Now I am offered a senior position in one of biggest fashion/retail companies in Europe
And I am not sure if I should leave or not, btw it involves relocating1
I am so tired of working for big multinationals with lots of collegues.
It feels like you are expected to remember -everything- anyone ever said at some point in time.
I honestly can't keep track of all decisions made in the past ten meetings in the last week, what all other twelve teams are working on or the personal preferences of somebody on the other end of the globe.
I just want to write code. Is that so much to ask?
Probably as in most of the world, our company sent us to work from home. So yesterday we had a lot of issues with microsoft teams. If it worked, then with a big latency, most people who had meetings had to cancel them, because teams doesn’t support more than 7 people for conference calls, then it went down for hours cutting off any communication with colleagues, not talking about the meetings. Just as everything Microsoft touches, it’s a pure piece of shit.
So today, literally everyone from dev department moved back to slack.1
Ask lots of questions....ask employees....gather the atmosphere on your walk in for the interview....ask around...if the teams interviewing you in my opinion that’s a good sign. If a non technical manager with a question sheets running the show then warning flag. If they mention Wordpress ask them drag and drop or custom themes. Same with drupal and other cms. Your a dev not a glorified intern. BIG ONE in my opinion: ask how they measure performanace and more importantly how they assure that their developers are constantly keeping up to date with the newest tools.