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 - "separate my concerns"
-
Just need to get this off my chest. Started a new job 3 weeks ago at a company that has been around ~18 years, it is only recently that they have started to grow more rapidly. I was brought in under the guise that they wanted to embrace change and better practices and so said I was up for the challenge.
In my 2nd week I was asked to produce a document on tackling the technical debt and an approach to software development in the future for 3 consultants who were coming in to review the development practices of the company on behalf of the private equity firm who has taken a major stake in the company. I wrote the document trying to be factual about the current state and where I wanted to go, key points being:
Currently a tightly coupled monolith with little separation of concerns (73 projects in one solution but you have to build two other solutions to get it to build because there are direct references.).
Little to no adherence to SOLID principles.
No automated testing whatsoever.
Libraries all directly referenced using the file system rather than Nuget.
I set out a plan which said we needed to introduce TDD, breaking dependencies, splitting libraries into separate projects with nuget packages. Start adhering to SOLID principles, looking at breaking the project down into smaller services using the strangler pattern etc. After submitting what I had written to be part of a larger document I was told that it had been tweaked as they felt it was too negative. I asked to see the master document and it turns out they had completely excluded it.
I’ve had open and frank discussions with the dev team who to me have espoused that previously they have tried to do better, tackle technical debt etc but have struggled to get management to allow them. All in all a fairly poor culture. They seem almost resigned to their fate.
In my first 2 weeks I was told to get myself acquainted and to settle myself in. I started looking at the code and was quite shocked at how poorly written a lot of it was and in discussions with my manager have been critical of the code base and quite passionate and opinionated about the changes I want to see.
Then on Friday, the end of my third week, I was invited to a meeting for a catch up. The first thing I was told was that they felt I was being too openly critical in the office and whether I was a good fit for the company, essentially a stay or go ultimatum. I’ve asked for the weekend to think about it.
I’ve been a little rocked by it being so quickly asked if I was a good fit for the company and it got my back up. I told them that I was a good fit but for me to stay I want to see a commitment to changes, they told me that they had commitments to deliver new features and that we might be able to do it at some point in the future but for now I just needed to crack on.
Ordinarily I would just walk but I’ve recently started the process to adopt kids and changing jobs right now would blow that out the water. At the same time I’m passionate about what I do and having a high standards, I’m not going to be silenced for being critical but maybe I will try and tackle it in a different way. I think my biggest issue is that my boss who was previously a Senior Developer (my current position) has worked at the company for 12 years and it is his only job, so when I’m being critical it’s most likely criticising code he wrote. I find it hard to have the respect of a boss who I had to teach what a unit test was and how to write one. It makes it hard to preach good standards when by all accounts they don’t see the problems.
Just wondering if anyone has suggestions or experience that might help me tackle this situation?12 -
After exhaustive talking to my boss, who always expresses the same concerns, we always end up agreeing that we need to separate development across our coworkers competences ...
We are even gonna hire a full front-end developer this time (as we did with the last 3 hires)..
And what did he do you may ask...
Put our front ender in charge of:
- Build a api in python
- Build the front-end
- 2 months deadline
The front ender is smart and is constantly asking me stuff and learning a lot.
But wtf boss? I could do it in no time...
I literally spent this whole week doing nothing, waiting for some approvals...
He is making everyone unmotivated as fuck ...
I'm starting to wonder pretty fucking every time if he is genuinely retarded.6 -
I'm the lead dev on this team. The project is split into multiple separate modules to comply with separation of concerns, and so new devs don't need the whole fucking codebase (risking them running away with everything) to contribute to the project as a whole.
So we don't need a fucking config file to enable and disable features.
So we don't need to upload a 500mb monolith every time we want to test a change.
So we can test old fucking versions of modules without merging it back into the entire codebase.
What did this fucking dev do? He was having one small issue with Maven. One. It wasn't updating his local snapshots to the correct Artifactory version.
He decided, instead of trying to fucking fix it: HEY, LETS IGNORE THE LEAD DEV'S DEMAND TO KEEP THEM SEPARATE. IM GOING TO MERGE THEM INTO ONE MODULE FOR SOME FUCKING REASON.
I refuse to continue working with this dev if he's going to sidestep my demands and undermine my authority. He wants to go it alone? Be my fucking guest. I'm not touching his shitty single-codebase monolithic monstrosity.
If this is going to be a regular fucking occurrence, he can eat a dick and choke on it.2 -
Since when are developers supposed to write story scenarios? Isn't that what I'm supposed to be working from?
😒1 -
I hate unnecessary meetings. It is a waste of my productive time. Also I hate daily stand ups that becomes a regular meeting with question and answer portion lol
It is like they are lazy creating a separate meeting for specific concerns and just brings it up in the daily stand ups lol nice way of doing agile things lol1 -
I've been using dotnet and aspnetcore for years. I've heard people complain about MVC but I never really saw the problem. The controllers are easy to set up for basic endpoints, I have my domain models and DTOs, and our views I guess is our standalone webpage just consuming jsons.
Only now I'm having to work with an *actual* aspnet MVC stack - server-rendered cshtml and all - and it's dawning on me like a truck what people were actually referring to.
Out of all the issues I've had so far, they have all been due to black box enigmatic voodoo because don't worry about it, the framework takes care of it - it should just work. But what if it doesn't? I have no idea because the trail ends at the bit that should just work.
I should know better than to criticize an entire framework and paradigm made by devs with vastly superior experience and expertise than me, and my issues are absolutely due to being new and unfamiliar with this, but imagine coming up with an architecture to obsessively separate the MVC concerns, then you make cshtml.2 -
How do you guys separate your working environments for different projects?
My situation is that I have one gaming project which requires having Windows OS (for testing purposes since can't run that game on Linux or Mac OS)
Then I have 2-3 other projects (freelancing/fulltime gigs) which don't require Windows so I use macbook for them.
Then I have other projects for my freetime (self development and stuff) and also need an environment just to be able not to work and chill instead
I tried separating these concerns with using tools such as evernote, trello and etc. but it's really getting out of hand.
Using different users for Win/Mac is not an option since I dont want to be switching between different users all the time.
Should I consider using some VM's to have my working environments for different projects separate? Will I use performance when using these VM's?
Buying 5 laptops just to separate everything doesnt make sense as well.6 -
I tend to overengineer. Why? Because I had a view in JavaFX with its controller that had a bunch of key listeners which changed the UI. I wanted to change the view based on wifi connection/no connection with a server, which was managed in a Client class. The controller took the client to give it a message that client then had to send. For "separation of concerns" I created a separate view + controller for the "not connected" state.
Now the Client knew all about the connection, so I put up the Observer pattern and wanted the Main (Application) class to swap the layouts as an Observer of the Client. After an Exception on FX thread and Platform.runLater(), to solve the issue, I faced a new problem: the key presses weren't executed anymore. I still don't know why this happens. Maybe I'm missing something.🤷
Then met with one of my group partners (it's a uni project):
Let's attach the Observer to the original controller. Have only the original view that changes due to the controller updates as Observer. Let's see if that might even remotely work...🤔
It worked🤦😂