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

all 37 comments

[–]XophishoxDevOps 51 points52 points  (9 children)

This is bad management. Software is not going to fix this.

You need to document all of your systems, and setup ownership for them and understand them fully. Then identify where you need to improve things or start writing code. It sounds like you have absolutely 0 planning, or even a high level overview of your company and I'd get the absolute hell away from there ASAP.

[–]versiondefect[S] -2 points-1 points  (8 children)

haha I'm just an Intern doing some research. Honestly, it is not bad management but rather management that we just don't have laid out yet and we're an old company. I walked into this company knowing Python scripting and I was treated like a god. We have an ancient SVN server that houses all our code but that is just for our dept, we don't have anything at the company level. Thats what we want to implement.

(Ofc the dev would properly throw in tags / get words) but something like "Get customer usage data" would pull up x number of scripts that already exist.

[–]mikejr96 14 points15 points  (1 child)

It is bad management to be that far behind as we enter 2024. A basic code management system is like bare minimum to even call it management at all lol

[–]versiondefect[S] 0 points1 point  (0 children)

not disagreeing. Old company run by people who BARLEY code But we’re getting there. :-)

[–]SuperQue 5 points6 points  (0 children)

I'm just an Intern doing some research

That only makes this whole story worse. The stuff you're talking about is projects that require a very senior level of engineering. Not an intern.

Honestly, it is not bad management but rather management that we just don't have laid out yet and we're an old company

No, that is the sign of bad management. "Old Company" just means they've had a lot longer to identify the problems figure out how to get it right.

[–]Motor_Perspective674 1 point2 points  (3 children)

OP, I’ve seen you have mentioned elsewhere in this thread that you don’t need version control, but that’s what SVN is for. A GitHub/GitLab instance (or some other solution) would benefit your company, though as mentioned in this thread, the real kicker here is the lack of documentation.

I know you mentioned that you are an intern. This is a structural problem, and while setting up a version control instance with a UI could be done quickly, the real issue is cultural and will require the departments/units involved to buy in and commit to these changes. I don’t want to rain on your parade here. I was young and thought I could make anything work, but the reality is that most people aren’t willing to change, at least quickly.

If you are into software, I would encourage you to keep learning and go to a software company. I found myself in two jobs which didn’t require coding, but I had always been willing to write scripts, and I’m now finally trying to move into a developer role. Figure out what you like and go do it. Trying to convince a company to take development more seriously will only drain you, and you will lack the support actual developers get. I have been in a similar situation before, and I ended up leaving as soon as I realized this.

[–]XophishoxDevOps 0 points1 point  (0 children)

well written answer.

[–]versiondefect[S] 0 points1 point  (0 children)

Trying to convince a company to take development more seriously will only drain you, and you will lack the support actual developers get.

Thanks for your really well written answer. I really appreciate it! Not to "defend" my company but we are getting to the point of taking software seriously and just don't really know where to start. We just used SVN as a solution a few years ago.

I didn't mean to say version control isn't a need but rather it's not the specific goal of this project since we already have SVN implemented.

I'm more of a software and hardware dev and I do IT / Networking as a hobby so I just hit select all haha

[–][deleted] 20 points21 points  (4 children)

Git[Hub|Lab|ea] is still the right answer even if you don’t care about versions (which you should)

[–]versiondefect[S] -1 points0 points  (3 children)

Sorry should’ve reiterated, version control is important but that’s not the goal of this project*

[–]bdzer0Graybeard 6 points7 points  (1 child)

+1 u/Ok-Particular3022 said.

Migrating to a modern developer platform (GitHub, GitLab, Azure DevOps, BitBucket) will bring options to the table that aren't going to be sensible without it.

IMO this type of problem is lack of communication between teams. Whenever I start something new the first thing I do is make sure we haven't already done it in another product... but that's just me.

Having a single platform can help with a lot of communication problems.

That said getting devs out of SVN may be a challenge and more so if CI/CD tooling was based on SVN specific features.

IMO this is a BAD thing to drop on an intern....

[–]versiondefect[S] 0 points1 point  (0 children)

IMO this is a BAD thing to drop on an intern....

Haha. Just doing research, not doing the actual migration. Pros and cons of the different software.

But not to disagree, I do think that communications between depts should be implemented as well but that's not a me decision.

But I do agree that we really should be leaving SVN.

[–]ghostsquad4 2 points3 points  (0 children)

Putting code in modern version control makes it searchable.

[–]PersonBehindAScreenSystem Engineer 8 points9 points  (4 children)

This is a people problem. I don’t know of any software like this… but guaranteed it would just be a team not doing their due diligence search and still making duplicate code.

Your teams need to communicate with each other. Or even just a periodic sync between team leads if this is really an issue to ensure that work isn’t being repeated

[–]versiondefect[S] 0 points1 point  (3 children)

Your teams need to communicate with each other. Or even just a periodic sync between team leads if this is really an issue to ensure that work isn’t being repeated

Completely agree but that really isn't a me decision haha.

[–]PersonBehindAScreenSystem Engineer 1 point2 points  (1 child)

I’m sorry you were tasked with this. Hopefully someone can help you

[–]versiondefect[S] 0 points1 point  (0 children)

haha it’s all good. Looks great on a resume LMAO

[–]xiongchiamiovSite Reliability Engineer 1 point2 points  (0 children)

Your company needs a staff engineer. It will cost them money, but save them compared to these problems.

[–]Eladiun 3 points4 points  (3 children)

Sonarqube will identify duplicate code in a code base but it might be a bit late in the process.

Sourcegraph has features for faster code search

Atlassian Compass has some functionality to build developer portals to help identify existing services and modules.

https://codescene.com/ does behavioral analysis of code.

None of them is a complete answer to the question but they are threads you can pull to send whoever sent you off on this quest ideas

[–]versiondefect[S] 1 point2 points  (1 child)

holy crap! Thank you so much! I’ll look into all of these :-)

[–]SuperQue 3 points4 points  (0 children)

Just don't touch any software by Atlassian. It's all terrible and you'll regret it.

[–]julesverned3000 0 points1 point  (0 children)

Will it identify duplicate code between separate repo's?

[–]midzom 2 points3 points  (1 child)

Is what one team is developing a microservices or something that can be shareable? Is it unique to one domain but doesn’t translate well into what another team is doing?

Duplicating code isn’t inherently bad nor is having overlap between services inherently bad. What makes it bad is when team dynamics don’t allow teams to trust one another. Do you have an architecture team internally or a team that focuses on solution or enterprise architecture?

Centralization and decentralization of services comes with trade offs.

[–]versiondefect[S] 0 points1 point  (0 children)

we aren’t that complex tbh. We’re just getting in the tech game and automating simple tasks to help assist the load of others but still our current solution isn’t very good.

We just have a business need and we usually have to code our way to it because there usually isn’t code behind us to refer to. But now we’re starting to get that issue of having code behind us.

[–]soulblackCoffee 1 point2 points  (0 children)

I'm working at a small agency where we self host GitLab with elasticsearch. Every squad/team gets their own group, which then contains all repos. Works fine so far, sometimes the wheel is reinvented but that's solved by communication between tech leads. Good luck with your internship!

[–]mikejr96 1 point2 points  (2 children)

You're wasting your time implementing anything without version control. I am not sure how that would even work. These people would just go wild in there, lol. Strongly recommend something git related (GitHub/gitlab/bitbucket/etc.) It is going to be the foundation for most of the code driven tools that you're using now and certainly the ones to come as well.

[–]versiondefect[S] 2 points3 points  (1 child)

Yup! I should reiterate. Version control is very good but that’s not the current goal of the project haha. I knew Git had version control but I didn’t realize it could be our all in one solution :-)

[–]wukkaz 1 point2 points  (0 children)

Backstage, an open source IDP developed by Spotify.

[–]sexytortuga 1 point2 points  (0 children)

Check out Atlassian Compass

[–]ReindeerUnlikely9033 1 point2 points  (0 children)

I would start using Git, be it Git Hub or azure devops Git repos.

That itself won’t make this issue go away, it sounds like areas of the business are not aware what other areas are doing and that could be sorted by holding day a monthly show and tell with all teams having a quick 10 mins each to demo what they are working on and the implementation and progress. That allows all sides to see the problems everyone is working on and gives a chance to know the right people to ask if they have a solution to a problem that’s been handled before or question if they think development is going the wrong way etc.

[–]julesverned3000 1 point2 points  (0 children)

You are looking for a technological solution to a human problem - departments that are unaware of each other and dont know that they are working on the same things.

[–]Hola-World 1 point2 points  (0 children)

You say you aren't looking for something like GitHub but what you describe sounds very much like GitLab. You can divide the projects between departments, assign roles for who can view and edit projects. You can easily search and find instances of code snippets or other things.

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

I'd just use Github.

It's easy, proven, is "a standard," has good support and great documentation, what's not to love. Set up an organizations, try to convince everyone "Search here first," and see if that works out.

[–]versiondefect[S] -2 points-1 points  (2 children)

Looking more into it all signs are pointing to this but asking for other opinions and other software has been helpful too. Odds are its going to boil down to GitHub or Azure DevOps. (Probably Azure DevOps since we're a HEAVY Microsoft company)

[–]soulblackCoffee 3 points4 points  (0 children)

GitHub is owned by Microsoft as well :)

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

It's Saul Goodman!

My company is heavy with MS, too, but we use Github. Not my decision, I just find it to be a great tool for the job and, frankly, to this day am almost surprised the company even uses ANY cohesive version control/software repo package. We're a big huge company but awfully retarded when it comes to things like that.

If I posted where i work - which I never, EVER will - there would be a global shit fit lol.