Sono interessato a sapere come gestire un processo di sviluppo software attuale che non è stato modificato per anni e che alla fine porterà a guasti del prodotto e del team. Sì, probabilmente il modo più semplice per risolvere questo problema è cambiare lavoro, ma con questa economia è più facile a dirsi che a farsi. Tuttavia, se hai esempi specifici e hai visto o sei stato più volte nella stessa situazione e pensi che la soluzione migliore per affrontare questi problemi, è di lasciare l'azienda, ti preghiamo di supportare la tua risposta. Il punto è che questa domanda ha davvero una risposta soprattutto se più esperti in materia finiscono per indicare che il percorso migliore da percorrere è: percorso A.
So che tonnellate di sviluppatori sono stati o si trovano in situazioni simili. Questo è uno dei motivi principali per cui le aziende passano dall'essere il numero 1 nel loro mercato a diventare l'ultimo o addirittura fuori dal mercato. Speriamo che le risposte in questo post possano aiutare altri sviluppatori ad affrontare ostacoli simili. In un team di sviluppo piccolo o grande questo di solito accade:
- Alcuni sviluppatori sembrano non preoccuparsene e decidono di seguire il flusso e preferiscono lasciare il codice con un sacco di odore di codice così com'è e il processo di sviluppo così com'è,
- Altri si stancano di nessun cambiamento e si dimettono e si trasferiscono in un'altra società,
- Altri sembrano aver paura di parlare e preferiscono stare zitti,
- A volte pochissimi sviluppatori o solo uno cercano di parlare per migliorare il prodotto e dicono al team quanto sia importante seguire le migliori pratiche di codifica e i vantaggi di farlo per clienti, utenti e team. Questo tipo di sviluppatori di solito decide di rimanere con il team per motivi come la società offre vantaggi che pochissime aziende di software offrono o il prodotto ha un grande potenziale, ecc.
Il prodotto nel nostro team è solo una piccola parte del fatturato dell'azienda in quanto ha un ombrello di prodotti (questa società non è una società di software / hardware; pertanto, nessuna controversia sui brevetti costante, almeno per ora, che crea lavoro instabilità). Quello che ho imparato finora in questi anni dalle esperienze di altri sviluppatori e la mia esperienza è che per conoscere davvero un team di sviluppo, ci vuole tempo, non giorni, né settimane, ma alcuni mesi. Durante il processo di intervista se la squadra vuole assumerti o ha bisogno di te; fanno suonare tutto alla perfezione e potrebbero dirti cosa vuoi sentire. Tuttavia, la realtà è diversa quando inizi a lavorare in quel team e inizi a scavare all'interno del codice e ti muovi verso il processo SDLC completo. Questo è quando come sviluppatore, inizi a vedere la realtà del lavoro che hai svolto. Questa realtà rende difficile voler passare da una società all'altra perché è difficile sapere se la società in cui ci si sposta sarà migliore o peggiore. Sì, puoi leggere le recensioni su Glassdoor ecc., Ma quante di queste recensioni online sono reali e non da risorse umane?
Quale sarebbe il modo migliore per affrontare i problemi descritti di seguito considerando che il manager fin dall'inizio ha sempre resistito al cambiamento e gli sviluppatori precedenti hanno fatto lo stesso per anni?
Mancanza di prodotto Innovazione da anni: il prodotto ha molte potenzialità e porta buoni ricavi all'azienda, ma sembra che sia stato realizzato 20 anni fa. Alcuni utenti si sono lamentati del fatto che il prodotto non è intuitivo né intuitivo, e altri hanno menzionato che vengono utilizzati per app come Gmail e si sentono frustrati quando si utilizza il prodotto a causa della mancanza di funzionalità simili. Il problema principale qui è che quando si tenta come sviluppatore di apportare modifiche al prodotto e si inizia a spostare gli elementi principali del prodotto a solo un paio di pixel di distanza (per renderlo più user friendly o intuitivo), il panico del gestore e ti dice per rimetterlo dove era. Se si tenta di aggiungere una funzionalità a beneficio della produttività per gli utenti, il manager ti chiede di rimuoverla a causa di "gli utenti sono abituati a fare il processo così com'è, ecc." Penso che tu abbia avuto il punto di resistere al cambiamento, al miglioramento e all'innovazione (il manager non è aperto al cambiamento, anche quando tu come sviluppatore fornisci forti argomenti di benefici). L'azienda ha alcuni concorrenti nel settore (i prodotti di alcuni di essi sono molto più competitivi), ma in qualche modo l'azienda ha mantenuto gli attuali clienti per anni.
Mancanza di coordinamento della gestione del progetto: di conseguenza, alcuni progetti vengono consegnati in ritardo, con bug e alcuni clienti si lamentano (i clienti segnalano anche i bug) o il budget viene utilizzato troppo velocemente prima di consegnare il progetto ecc. Li ho forniti alcuni suggerimenti per il coordinamento dei progetti e le idee vengono ora utilizzati regolarmente per tenere traccia dei progressi dei progetti e delle attività da svolgere.
Pratiche di sviluppo software errate: l'odore del codice è visibile sulla maggior parte se non su tutti i file, nessuna documentazione, ridondanza del codice, livello front-end e back-end miscelati sullo stesso file, strumenti di sviluppo obsoleti, nessun ambiente di test reale o strumenti di test (basta copiare e incollare file dall'ambiente di sviluppo alla produzione, quindi verifica manualmente che le cose appaiano bene e rilascino). La maggior parte degli strumenti di sviluppo che utilizzo per lo sviluppo e il test sono sconosciuti per team, poiché il team utilizza solo 2 IDE per lo sviluppo del codice e il controllo del codice sorgente è disponibile solo per l'ambiente di sviluppo. Altri sviluppatori hanno tentato di utilizzare i framework più recenti per migliorare i problemi attuali, ma al gestore non piace a causa di "cosa succede se si lascia, quindi chi manterrà quel codice ?, lasciamolo così com'è" Alcuni di questi sviluppatori già lasciato e trasferito in un'altra società.
In sintesi, sono sicuro che situazioni simili si verificano a molti sviluppatori in altre società, ma a causa di circostanze diverse, uno sviluppatore potrebbe preferire rimanere nel team piuttosto che andare in un'altra società per motivi come (convenienza del lavoro, flessibilità del lavoro, benefici per l'azienda o solo perché non è arrivata un'opportunità migliore). Non esiste una compagnia perfetta di cui io sia a conoscenza, ma come faresti tu come sviluppatore a comportarti e ad affrontare tutti questi problemi al fine di mantenere le cose positive e in definitiva promuovere il cambiamento per il miglioramento del prodotto e il miglioramento del processo di sviluppo del software (se ne hai molti anni di esperienza di sviluppo o solo pochi)? So che questo post è lungo, ma ho preferito fornire ulteriori dettagli per aumentare le possibilità di ottenere feedback più utili.
Grazie mille per tutto il tuo feedback e tempo