u/ThomasHawl

È normale lavorare su grandi progetti software senza praticamente nessun senior engineer/architect?

Lavoro da circa un anno come software engineer in un’azienda che sviluppa software per il settore difesa.

Per semplificare: una grande azienda della difesa chiede alla mia azienda un software per una certa funzionalità/display/aereo, e noi lo sviluppiamo. Siamo probabilmente una via di mezzo tra consulenza e prodotto.

C’è una cosa che però non riesco a spiegarmi, e onestamente sta iniziando a farmi odiare questo lavoro.

Da un anno lavoro sempre sullo stesso progetto. In pratica stiamo sviluppando da zero due componenti software importanti per un nuovo velivolo. Il team è composto da:

  • persone che parlano con i clienti/utilizzatori finali (piloti ecc.)
  • persone che scrivono i requisiti
  • persone che si occupano della grafica/UI
  • e poi il mio team, che sviluppa il software vero e proprio

Il problema è che non ci sono praticamente senior engineer.

A parte un manager che coordina il progetto, siamo tutti junior. La maggior parte delle persone ha tra i 6 mesi e 1 anno e mezzo di esperienza, massimo 2. E onestamente ho la sensazione di non stare imparando come funziona davvero lo sviluppo software “serio”.

Quello che sento mancare è qualcuno che definisca l’architettura del progetto e che spacchetti i problemi in modo corretto.

I task sono tecnicamente divisi, ma più nel senso:
“Tu occupati di questa feature enorme.”

Solo che quella “feature” magari contiene 10+ sottofunzionalità e una complessità interna notevole.

Quindi sì, alla fine produco codice che compila e funziona, ma ho continuamente la sensazione di stare mettendo pezze su pezze senza una direzione chiara o una visione di lungo periodo.

Quello che mi sembra mancare è qualcuno che dica:

  • “Per questo problema usiamo questa architettura.”
  • “Questi componenti comunicano in questo modo.”
  • “Questo è il flusso dei dati.”
  • “Qui ha senso usare questo algoritmo/questa struttura dati.”
  • “Queste saranno le interfacce/API.”
  • “Organizziamo il software in questo modo.”

Un’altra cosa che mi pesa è che mancano proprio figure tecniche senior a cui fare domande.

Se mi blocco su un bug complicato, un problema di design o di implementazione, non c’è davvero un engineer esperto con cui confrontarsi. Certo, posso debuggare da solo, usare Claude/Codex, leggere documentazione e alla fine trovare una soluzione, ma mi urta comunque il fatto che non esista una vera guida tecnica interna al team.

Le uniche figure senior sono i manager, ma fanno più da collegamento tra noi developer e i clienti/executive. Facciamo circa una call a settimana sugli avanzamenti del progetto, ma le discussioni sono più del tipo:
“Quella funzionalità sta andando?”
“Bene, continua così.”

Non vere discussioni tecniche o di engineering.

Forse avevo aspettative sbagliate, ma mi ero sempre immaginato che in uno sviluppo software “serio” ci fossero:

  • un software architect/system architect che definisce la struttura generale (c'è una figura simile, ma più lato sistema, cioè definisce "cosa vogliono", ma non come farlo)
  • senior engineer che prendono in carico macro-funzionalità e le suddividono in task più piccoli
  • junior che implementano componenti più isolati imparando dai senior

Invece qui sembra più un gruppo di junior che cerca collettivamente di capire cosa fare man mano che il progetto procede.

E sinceramente, dato che vorrei davvero costruirmi una carriera in questo mondo e arrivare un giorno a ruoli come staff engineer, lead engineer o architect, inizio a sentirmi perso. Non capisco se questo ambiente mi stia davvero facendo crescere oppure se mi stia mancando quel tipo di mentorship e struttura tecnica che normalmente si dovrebbe avere all’inizio della carriera.

È una situazione normale nell’industria?
È un problema della mia azienda/team?
Oppure sono io ad avere aspettative sbagliate su come funziona davvero lo sviluppo software professionale?

reddit.com
u/ThomasHawl — 1 day ago

Is it normal to work on a large software project with basically no senior engineers and architects?

I’ve been working for about a year as a software engineer in a company that develops software for the defense industry.

To simplify it a bit: a defense company asks us for some software for a specific aircraft/display/feature, and we develop it. We’re probably somewhere between a consulting company and a product company.

There’s one thing I really can’t understand, and honestly it’s starting to make me hate this job.

For the past year, I’ve been working on the same project. We’re basically developing two major software components for a new aircraft from scratch. The overall team includes:

  • people talking with the customers/users (pilots, etc.)
  • people writing requirements
  • graphics/UI people
  • and then my team, which develops the software itself

The problem is: there are basically no senior engineers.

Other than one manager coordinating the project, everyone is junior. Most people have between 6 months and 1.5 years of experience. And honestly, I feel like I’m not learning how real software engineering is supposed to work.

What I feel is missing is someone who defines the architecture of the project and breaks problems down properly.

Tasks are technically divided, but it’s more like:
“You handle this huge feature.”

But that “feature” may contain 10+ subfeatures and a lot of internal complexity.

So yes, in the end I produce code that compiles and works, but it constantly feels like I’m patching things together without any real direction or long-term design.

What’s missing, in my opinion, is someone saying:

  • “For this problem we’ll use this architecture.”
  • “These components communicate this way.”
  • “This is the data flow.”
  • “This is the right algorithm/data structure here.”
  • “These are the interfaces/APIs.”
  • “This is how we organize responsibilities.”

Another thing that bothers me is that there are basically no technical senior figures to ask questions to.

If I get stuck on some complicated bug, design issue, or implementation problem, there isn’t really an experienced engineer I can go to and discuss it with. Of course I can debug things myself, use tools like Claude/Codex, read documentation, and eventually solve problems, but it still feels wrong that there’s no actual technical mentorship inside the team.

The only senior people are managers, but they mostly act as coordinators between us developers and the executives/clients. We usually have one weekly call about project progress, but the conversations are more along the lines of:
“Is that feature progressing?”
“Looks good, keep going.”

Not really deep technical discussions or engineering guidance.

Maybe I had unrealistic expectations, but I always imagined that in a “serious” software project there would be:

  • some kind of software architect/system architect defining the high-level structure (there are figures like these, but they are mostly on the system side, defining what the software should do, not the architecture itself, I hope I am explaining myself clearly)
  • senior engineers owning major areas and decomposing them into smaller tasks
  • juniors implementing more isolated features/components while learning from seniors

Instead, it feels like a group of juniors trying to collectively figure everything out as we go.

And honestly, since I really want to build a long-term career in software engineering and eventually become something like a staff engineer, lead engineer, or architect, I’m starting to feel lost. I don’t know if this environment is helping me grow, or if I’m missing the kind of mentorship and technical structure that people normally get earlier in their careers.

Is this normal in the industry?
Is this just a problem with my company/team?
Or did I have the wrong expectations about professional software development?

reddit.com
u/ThomasHawl — 1 day ago

Is it normal to work on a large software project with basically no senior engineers and architects?

I’ve been working for about a year as a software engineer in a company that develops software for the defense industry.

To simplify it a bit: a defense company asks us for some software for a specific aircraft/display/feature, and we develop it. We’re probably somewhere between a consulting company and a product company.

There’s one thing I really can’t understand, and honestly it’s starting to make me hate this job.

For the past year, I’ve been working on the same project. We’re basically developing two major software components for a new aircraft from scratch. The overall team includes:

  • people talking with the customers/users (pilots, etc.)
  • people writing requirements
  • graphics/UI people
  • and then my team, which develops the software itself

The problem is: there are basically no senior engineers.

Other than one manager coordinating the project, everyone is junior. Most people have between 6 months and 1.5 years of experience. And honestly, I feel like I’m not learning how real software engineering is supposed to work.

What I feel is missing is someone who defines the architecture of the project and breaks problems down properly.

Tasks are technically divided, but it’s more like:
“You handle this huge feature.”

But that “feature” may contain 10+ subfeatures and a lot of internal complexity.

So yes, in the end I produce code that compiles and works, but it constantly feels like I’m patching things together without any real direction or long-term design.

What’s missing, in my opinion, is someone saying:

  • “For this problem we’ll use this architecture.”
  • “These components communicate this way.”
  • “This is the data flow.”
  • “This is the right algorithm/data structure here.”
  • “These are the interfaces/APIs.”
  • “This is how we organize responsibilities.”

Another thing that bothers me is that there are basically no technical senior figures to ask questions to.

If I get stuck on some complicated bug, design issue, or implementation problem, there isn’t really an experienced engineer I can go to and discuss it with. Of course I can debug things myself, use tools like Claude/Codex, read documentation, and eventually solve problems, but it still feels wrong that there’s no actual technical mentorship inside the team.

The only senior people are managers, but they mostly act as coordinators between us developers and the executives/clients. We usually have one weekly call about project progress, but the conversations are more along the lines of:
“Is that feature progressing?”
“Looks good, keep going.”

Not really deep technical discussions or engineering guidance.

Maybe I had unrealistic expectations, but I always imagined that in a “serious” software project there would be:

  • some kind of software architect/system architect defining the high-level structure (there are figures like these, but they are mostly on the system side, defining what the software should do, not the architecture itself, I hope I am explaining myself clearly)
  • senior engineers owning major areas and decomposing them into smaller tasks
  • juniors implementing more isolated features/components while learning from seniors

Instead, it feels like a group of juniors trying to collectively figure everything out as we go.

And honestly, since I really want to build a long-term career in software engineering and eventually become something like a staff engineer, lead engineer, or architect, I’m starting to feel lost. I don’t know if this environment is helping me grow, or if I’m missing the kind of mentorship and technical structure that people normally get earlier in their careers.

Is this normal in the industry?
Is this just a problem with my company/team?
Or did I have the wrong expectations about professional software development?

reddit.com
u/ThomasHawl — 1 day ago