Joined devRant on 5/24/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Learn more about networking, revisit computer science fundamentals, memorise agile frameworks, practice DDD properly, learn about basic property and conveyancing law for my new job, get through 1 tech book every 2 weeks, revisit Linux as it's been a long time, learn the basics of developing and deploying with azure, learn terraform and docker, finally finish building my own product that has been going for 3 years now, continue learning about mobile development and build a mobile app for my new product.
Should be fine xD3
Maslow's hammer is my new favourite quote.
Ad-libbing - when one only knows how to use a hammer, a lot of his problems start to look like Nails.
This is so true2
"I am not happy with the quality of the product"
"I dislike how I am forced to work here"
"The team does not understand software design and is writing 2000 line single functions"
"I am starting to think the product cannot be saved unless we start focusing on quality"
"I am not happy in my job anymore because I want to work as a professional..."
"All I ever do now is put out fires"
We use a third party paid company to produce a service and give ongoing support for it, which all our revenue streams depend upon. They are shit and their service is shit. Here's how my conversation about testing went today.
Me: 'hey X wrote an integration test project for the service. It shows the service is broken 50% of the time. We should give their team access to it and have them run it as part of CI'
Colleague: 'They are too shit to setup CI'
PM: 'we are stuck with them so there is no point. It is what it is'
Boss: just ignores me. Not even a reply.
Some days later
Head of QA: 'Hey Dev and QA are broken'
Me: 'because their service is broken. I made so and so suggestion before but it was rejected. We will just have to accept Dev and QA are broken 50% of the time'
Head of QA: 'no we cant'
Me: 'ok so we should setup the tests to run by giving them access'
Head of QA: 'No we shouldn't. The tests can only be used by us and if they break it tells us so we can act on it, or choose not to'
Me: 'We would not want to act immediately on all our revenue streams breaking? Yes we can reverse engineer their client and fix errors as they occur, or we could just have them run the tests and a team our company pays for can stop adding breaking changes to their own API every other day. Right now it has been broken for 2 weeks.'
Head of QA: 'in an ideal world we would have an internal team so you're wrong'
I really don't understand how they can come to such a conclusion. Am I missing something or am I surrounded by total fucking idiots?2
My colleague told me today that companies with shit code quality, complete chaos, no tests of QA of any kind, and poor security practices still make loads of money and are extremely successful so it's all a waste of time.
I detest this idea and I refuse to work like that anymore. But I also think he's right :(8
I login this morning
Everyone going crazy as prod is broken in a million ways. 2.5 million exceptions In 24 hours.
We talk for 1 hour and solve nothing.
I diagnose the 2 biggest sources of exceptions and explain every step I took with screen snippets to reach my conclusions
The one other competent person on my team agrees. Otherwise complete silence.
I'm told not to fix the issue because I am leaving in 6 weeks and other people have to start taking responsibility.
No one fixes the issues. Instead they leave early. Now it's the weekend and the product is fucked.
Fucking useless people. Can't wait to leave.12
It is easy to believe something is over-engineered as a junior. You open a solution and get slapped in the face with a wet fish of many classes, with strange names, doing very little, with everything coming together in ways you don't understand.
My advice is to learn about design patterns, clean code, clean architecture, and model driven design. Until that point I don't think you can make such a distinction. And indeed once knowledgeable of patterns and techniques as well as the domain, the same solution can look obvious, elegant and readable.
In a field where everyone is saying 'dont over-engineer', one must be able to tell if something is actually bad, or just uses techniques you don't recognise.
Telling your senior you think something is over done just because you don't understand it is not good. First learn techniques, understand the code, then form opinions that are at least relevant then.
From someone who committed that crime.4
Robert Martin says in clean code, or maybe clean architecture, that one should separate the tests into what is hard and easy. GUI tests are hard and therefore brittle and so we should test against view models.
However on clean agile he says a story is not done until it passes automated acceptance tests which in my experience are always brittle and grow so large and brittle that things grind to a halt.
What am I missing? Are stable acceptance tests possible on the GUI? Should we test only an API?6
I just read Robert Martin's chapter on the Single responsibility principle in Clean Architecture.
In it he explains that stakeholders, or actors, that require their own functionality that may be similar to others should have separated code. This is because 2 actors == 2 potential reasons for change.
But this seems to run counter to DRY. Am I mistaken?12
Need advice guys
Where I'm working now I'm the tech lead, but I'm not happy. I want to get deeper into infrastructure and DevOps but I have no scope for that.
I have an offer from another company. A very small raise. Supposedly will lead to tech lead in 6 months after I help them recruit a team. Offered mid. I went back and said because of uncertainty about where the role would head, and coming from where I am, I would accept the offer with the title so I have more confidence about the future of the role.
They came back with a senior role, not tech lead, saying there's no scope for that yet. They also said they envision giving me architecture control and letting me train and drive the cloud process.
But this is all heresay. I could take the role, the project is postponed, there is no team to be a tech lead for, and so no pay increase or opportunity to learn.
Technical interview to solve a fairly simple problem. I proved that I am an idiot.
Really don't want to work for a company that doesn't test new hires well and hires idiots. Ironic :D10
Today I created some reusable clean decent code to replace the random chaos in a huge project and then realised I had 3 options:
1. Sort out every instance to use the new code. This is very high risk because the project is both a shit show and has no tests. I don't have time to manual test or write unit tests on so much stuff.
2. Move over only some so that I can manually test. Still no time to unit test (management is fucked on their priorities). This will fuck the project even more since i will never get time to revisit this and adds yet more inconsistency and chaos to a project on its last legs and has this problem in droves.
3. Leave the project fucked
I'm veering towards option 3 these days.1
Has anyone ever worked on a project with no architect or team lead? And where no team member has knowledge of OOP or functional, or restful design, or deep framework knowledge or deep language knowledge? And where the accepted best practice for all devs is to copy paste everything so that there is no area you can change and cause breakage elsewhere? And people regularly commit 1000s of lines methods and have never unit tested before?
Because I do right now. Feel free to ask questions of you want.12
Colleagues cannot seem to grasp that allowing a user to manually update a field via an Api, that only business process should update is a bad idea.
The entire team of around 10 'software developers' cannot grasp that just because the frontend website won't set it doesn't mean its secure. I have tried many times now...
Just an example honestly... Our project follows a concrete repository pattern using no interfaces or inheritance, returning anaemic domain models (they are just poco) that then get mapped into 'view models' (its an api). The domain models exist to map to 'view models' and have no methods on them. This is in response to my comments over the last 2 years about returning database models as domain transfer objects and blindly trusting all Posts of those models being a bad idea due to virtual fields in Ef.
Every comment on a pull request triggers hours of conversation about why we should make a change vs its already done so just leave it. Even if its a 5 minute change.
After 2 years the entire team still can't grasp restful design, or what the point is.
Just a tiny selection of constant incompetence that over the years has slowly warn me down to not really caring.
I can't really understand anymore if this is normal.3
Idea - possibly a bad one - visual studio extension that hits a database to display possible values to supply as a method argument. With caching of course..
I'm thinking along the lines of permissions in a database that at some point have to be hard coded against code to enforce them. Stuff like that.
Possible or beyond stupid?7
Msal.js. I give it 3/10..
The docs are duplicated, and in various states of out of date. Half the library seems to be undocumented based on how many edge case bugs I've hit, it offers a popup login but you have to have a set specified white list of urls you can launch the popup from which makes a popup login pointless...
Ontop of that my colleagues shat the bed on it and fucked the whole implementation including the azure b2c setup... We do not even have a backend app listed in the azure b2c apps. The redirect also won't work if you don't instantiate an object in a hidden iframe of your own website that fetches a token... This does not make life easy when you use a SPA framework and you have already implemented a whole pipeline abstracting the creation of this object behind layers dependency injection.. Nice.
After sifting through endless shit I finally have a solution. What a week.
We did a small automated review on our code base at work. We discovered that multiple single functions written by my colleagues have a cyclomatic complexity of over 420.
I can't think of words to describe how shit that is.11
Today after 1 year of taking shit I sat down with my manager and completely tore the whole fucking company apart.
I absolutely slammed my colleagues, obliterated my team lead, went on and on about how no one understands the basics and how everything we have is copy paste procedural code and the only way to fix what we have is to delete it. I then insinuated I want to quit because I cba with the struggle anymore.
Result? Fat promotion. Not sure what just happened here lmao.15
I like the people I work with although they are very shit, I get paid a lot and I mostly enjoy the company but..
Our scrum implementation is incredibly fucked so much so that it is not even close to scrum but our scrum master doesn't know scrum and no one else cares so we do everything fucked.
Our prs are roughly 60 file hangers at a time, we only complete 50% of our work each sprint because the stories are so fucked up, we have no testers at all, team lead insists on creating sql table designs but doesn't understand normalisation so our tables often hold 3 or 4 sets of data types just jammed in.
Our software sits broken for months on end until someone notices (pre release), our architecture is garbage or practically non existent. Our front end apps that only I know the technology have approaches dictated by team lead that has no clue of the language or framework.
Our front end app is now about 50% tech debt because project management is so ineffectual and approaches are constantly changing. For instance we used to use view models for domain transfer objects... Now we use database entities, so there is no commonality between models but the system used to have shared features relying on that..sour roles and permissions are fucked since a role is a page regardless of the pages functionality so there is no ability to toggle features, but even though I know the design is fucked I still had to implement after hours of trying to convince team lead of it. Fast forward a few months and it's a huge cluster fuck to enforce.
We have no automated testing of any sort or manual testing in place.
I know of a few security vulnerabilities I can nuke our databases with but it got ignored.
Pr reviews are obviously a nightmare since they're so big.
I just tried to talk to scrum master again about story creation since any story involving front end ui as an aspect of it is crammed in under one pointed story as sub tasks, essentially throwing away any ability to calculate velocity. Been here a year now and the scrum master doesn't know what I mean by velocity... Her entire job is scrum master.
So anyway I am thinking about leaving because I like being a developer and it is slowly making me give up on doing things to a high standard and I have no chance of improving things, but at the same time the pay is great and I like the people.
I am starting a testing project at work and we have nothing in place.
Should I use a tool like browserstack and try to hold my selenium tests there or bite the bullet and use something like spec flow to write the selenium tests by hand? The advantage being full control, easy way to integrate with CI and easier to integrate to existing workflows (no need for visual studio and a browser open to work on in parallel).
If I do that I will also need some way to do cross browser testing which I guess will require me to export the tests somehow to a cross browser treating service like browserstack.
Sometimes I feel like I am surrounded by idiots. My family are too stupid and lazy to have jobs or do anything involving a skill. They are too dumb to do anything properly so most of the house is fucked.
My co-workers are supposed to be Web devs but cba to learn the frameworks or languages we work on. Some of them have over 5 years experience and don't understand basics like backend verification vs front end.. Or even what json is. Needless to say everything I'm told to do is retarded such as implement roles and permissions where there are no roles, but ot allowed to add roles.
Anyone else surrounded by idiots 90% of the time? How do you not get worn down?3
My tech debt meltdown is happening right now. We are releasing our huge micro service based product next week with no automated testing of any sort. Our front end clients are relatively DRY. No tests and dry = can't change anything = hacks on top of hacks.
Why? Team lead won't listen to me and has beaten me down so I don't care anymore. If it's broken fuck it.2
We have a 45year old junior that is left to his own devices. He simultaneously wants help all the time and won't listen to the answers. He also wants help but doesn't want to redo things he's fucked. He wants to finish tasks but not write tests in case it shows problems and he has to do more work.
The worst thing is he wants to get work done but cba to learn the framework, language, tools he's using, or just the feature of the framework he is literally using for his task. He just fumbles about like a blind man in a strip joint until things 'work'.8
Today for the 4th time I explained to my colleague that just because the front end app can perform validation doesn't mean the backend shouldn't. Every fucking time for all of them.8