May 14, 2023
Se vuoi consegnare velocemente, i tuoi test hanno l'ultima parola
InfoQ Homepage Articles If You Want to
Articoli sulla home page di InfoQ Se vuoi consegnare velocemente, i tuoi test hanno l'ultima parola
06 giugno 2023 23 minuti di lettura
di
Jorge Fernández Rodríguez
recensito da
Matt Campbell
Penso che sarai d'accordo sul fatto che l'ingegneria del software è speciale rispetto ad altre professioni. Le cose cambiano drasticamente e rapidamente. Richiede molta potenza cerebrale solo per rimanere aggiornati.
Forse come conseguenza di ciò, ci atteniamo ad alcune pratiche o idee generali ben consolidate (anche se ci causano problemi o non si adattano ad alcuni casi). Queste pratiche cercano di coprire la maggior parte dei casi, ma non possono coprirli tutti. Tuttavia, queste pratiche ci danno conforto. Abbiamo bisogno di qualcosa che non cambi, che ci faccia sentire sicuri e che liberi la nostra mente dal peso di pensare se sia effettivamente adatto o meno. Entriamo in modalità pilota automatico.
Il problema è che vogliamo che lo sviluppo del software si comporti come una catena di montaggio: una volta costruita la catena di montaggio, non la tocchiamo mai. Operiamo sempre allo stesso modo. Potrebbe funzionare con le nostre corsie CI/CD per un po', ma purtroppo non sempre funziona bene con il nostro codice.
Codifica, distribuisci e scala Java a modo tuo.Microsoft Azure supporta il tuo carico di lavoro con numerose scelte, sia che tu stia lavorando su un'app Java, un server di app o un framework. Saperne di più.
La situazione peggiora anche perché a volte il messaggio viene trasmesso così tante volte che perde la sua essenza e ad un certo punto prendiamo quella pratica come parte della nostra identità, la difendiamo e non lasciamo entrare punti di vista diversi. Soprattutto se apparentemente richiedono uno sforzo maggiore. Altre volte vogliamo semplicemente integrarci e non vogliamo suggerire nuove idee.
Quando codifichiamo, dobbiamo lottare contro questo fenomeno e riflettere in ogni caso se la pratica si adatta allo scenario attuale. Pensa alle "migliori pratiche" come alle "migliori pratiche generiche".
Un esempio di ciò sono i molti modi in cui l’agile può essere interpretato erroneamente. In alcuni casi l'essenza è andata perduta.
In quel pezzo sostengo che l’essenza dell’agile spesso va perduta perché molte volte l’implementazione dell’agile si concentra sulle cose sbagliate. Per definizione, qualcosa di agile può facilmente cambiare direzione e rispondere rapidamente ai cambiamenti.
Cerchiamo di raggiungere questa reattività con pratiche di diversa natura: tecniche, come CI/CD (Continuous Integration/Continuous Deployment), e strategiche, come lo sviluppo in iterazioni. Tuttavia, spesso dimentichiamo l’agilità quando ci occupiamo del fulcro dello sviluppo software: la codifica. Immagina di preparare il tuo piatto o dessert preferito senza l'ingrediente principale della ricetta. Questo è ciò che facciamo quando miriamo all’agilità senza considerare il codice.
Ciò può accadere perché migliorare il codice sembra spaventoso e complicato o potrebbe essere facile entrare nelle tane del coniglio (tutti questi possono essere eliminati). Forse è proprio perché non è facile vedere l’effetto negativo che alcune soluzioni hanno sulla nostra manovrabilità; trasformare gli sviluppi futuri in un incubo: l’opposto dell’agilità. Invece di concentrarsi sul codice, si presta troppa attenzione al raggiungimento della perfezione nei nostri processi (di metodologie come Scrum), che sono meno importanti e cercano di risolvere il problema senza affrontare la questione principale.
Infine, suggerisco che sia necessario dare maggiore visibilità all’effetto che il codice ha sugli sviluppi futuri (e, di conseguenza, sul futuro dell’azienda). Si spera che l’intelligenza artificiale possa aiutarci a quantificarlo con qualcosa di simile a un coefficiente che non solo ci dica la qualità, ma preveda anche quanto lo sviluppo sarà più lento in base alle nostre potenziali scelte. Penso che qualcosa del genere potrebbe aiutare le aziende a rendersi conto che devono investire nello sviluppo sostenibile. Le discussioni su quando affrontare il debito tecnico diventerebbero storia.