{"id":230782,"date":"2022-12-01T18:50:00","date_gmt":"2022-12-01T15:50:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230782"},"modified":"2022-11-09T23:58:25","modified_gmt":"2022-11-09T20:58:25","slug":"spediscilo-o-muori-con-o-senza-qualita-pero","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/spediscilo-o-muori-con-o-senza-qualita-pero\/","title":{"rendered":"Spediscilo o muori (con o senza qualit\u00e0, per\u00f2?)"},"content":{"rendered":"\n<p>Una delle idee che mi intriga \u00e8 la mentalit\u00e0 &quot;ship it or muori&quot;. Riguardo a come si chiama, ci sono variazioni, ma l&#8217;idea alla base della frase \u00e8 semplice:<\/p>\n<p>Se hai un&#8217;idea, portala dall&#8217;ideazione al prodotto il pi\u00f9 rapidamente possibile.<\/p>\n<p>Certo, l&#8217;idea di arrivare al concept di un prodotto pu\u00f2 anche essere chiamata &quot;concept to cash&quot;, ma non c&#8217;\u00e8 mai la garanzia che genererai denaro, giusto? C&#8217;\u00e8 una garanzia che puoi trasformarlo in un prodotto tangibile, per\u00f2.<\/p>\n<p>E nei circoli di sviluppo software, c&#8217;\u00e8 sempre molto per cui una persona pu\u00f2 discutere a favore o contro l&#8217;idea. In cima alla mia testa, i due pro e contro che mi vengono subito in mente sono:<\/p>\n<ol>\n<li><strong>Pro<\/strong>. Ottenere qualcosa fatto rapidamente che funziona e che [potenzialmente] genera entrate.<\/li>\n<li><strong>Con<\/strong>. Architettura debole, manutenzione, scalabilit\u00e0, testabilit\u00e0 e cos\u00ec via.<\/li>\n<\/ol>\n<p>In breve, potrebbe esserci un compromesso tra la velocit\u00e0 con cui puoi spedire qualcosa per un mercato e l&#8217;architettura dietro il progetto. A volte c&#8217;\u00e8, a volte non c&#8217;\u00e8. In generale, per\u00f2, penso che sia lecito presumere il primo.<\/p>\n<p>Inoltre, alcuni potrebbero vedere la prima come una facile via d&#8217;uscita, alcuni potrebbero vedere la seconda come un esercizio in YAGNI o, ancora pi\u00f9 semplicemente, che il problema pu\u00f2 essere affrontato ogni volta che si presenta.<\/p>\n<p>Ma cosa c&#8217;entra questo con qualcosa in questo momento?<\/p>\n<h2>Spedirlo o morire?<\/h2>\n<p>L&#8217;intera ragione per cui sto dedicando tempo a scrivere di questo \u00e8 che \u00e8 qualcosa a cui io, e sospetto che altri nel nostro campo, riflettiamo almeno un po&#8217;. Tutto questo va bene quando se ne parla in senso astratto, ma vorrei provare a legarlo a qualcosa di un po&#8217; pi\u00f9 realistico.<\/p>\n<h3>C&#8217;era una volta\u2026<\/h3>\n<p>Alcuni anni fa, lo sviluppo del front-end consisteva nel racchiudere il contenuto in elementi inline oa livello di blocco e modellarli con CSS di base?<\/p>\n<p>Avevamo strumenti avanzati per lavorare con il nostro codice back-end, ma il front-end era relativamente semplice a parte forse gli standard di codifica imposti dall&#8217;azienda o dal team con cui lavoravamo.<\/p>\n<h3>Ma allora\u2026<\/h3>\n<p>I nostri dispositivi avanzati (che, per la cronaca, considero una cosa buona e persino naturale nella tecnologia). Insieme a tale avanzamento, ora disponiamo di strumenti di creazione specifici per lo sviluppo front-end che sono altrettanto avanzati per alcuni aspetti rispetto a quelli che utilizziamo per il software di back-end.<\/p>\n<p>Certo, abbiamo alcuni che sono &quot;sviluppatori full stack&quot;, ma sono felice di ammettere che sono molto pi\u00f9 a mio agio a lavorare sul lato server che sul front-end. Se lavoro sul front-end, tendo ad attenermi agli strumenti che conosco e cerco di rimanere all&#8217;interno dei guardrail definiti dalla corsia in cui opero.<\/p>\n<p>Aiuta a mantenere lo sviluppo concentrato, veloce e coerente tra i progetti.<\/p>\n<h2>Ok, allora qual \u00e8 il punto?<\/h2>\n<p>Di per s\u00e9, questa sezione potrebbe essere un post lungo, ma non mi interessa andare cos\u00ec lontano. Invece, prender\u00f2 una singola fetta di come funziona lo sviluppo front-end in questo momento e vedr\u00f2 se non riesco a usarlo per chiarire il mio punto.<\/p>\n<h3>Diventando impertinente<\/h3>\n<p>Prendi ad esempio ci\u00f2 che \u00e8 diventato CSS. Abbiamo le lingue sopra le lingue (come <strong><a href=\"https:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a><\/strong> che si trova sopra o aggiunge ai CSS di base).<\/p>\n<p>E abbiamo processori che compilano, minimizzano, sfilacciano e ci impediscono di vedere il nostro lavoro prima che determinati errori e avvisi vengano corretti per motivi di qualit\u00e0. (Non lo considero una cosa negativa, ma mostra il livello crescente di complessit\u00e0 &#8211; o forse maturit\u00e0 &#8211; dei nostri strumenti di front-end).<\/p>\n<blockquote>\n<p>Lo sviluppo del front-end \u00e8 fin troppo facile, rendiamolo pi\u00f9 complesso in modo da poterci sentire pi\u00f9 intelligenti tra quei nostri colleghi che apparentemente hanno a che fare con aspetti pi\u00f9 &quot;critici&quot; del business. Ricorda che questa \u00e8 una competizione.<\/p>\n<\/blockquote>\n<p><strong><a href=\"https:\/\/medium.com\/@julienetienne\/unnecessarily-complicating-front-end-development-to-feel-like-a-smarter-person-5e555fe650ed\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Questo articolo<\/a><\/strong> ha una visione umoristica dell&#8217;intera faccenda.<\/p>\n<h3>Un ragionevole grado di qualit\u00e0<\/h3>\n<p>Per essere chiari, non sto dicendo che questa sia una cosa negativa, ma sto dicendo che le cose che una volta erano relegate al lato server o ai linguaggi compilati ora si stanno estendendo all&#8217;intero stack di sviluppo di un&#8217;applicazione web.<\/p>\n<p>Per essere il pi\u00f9 chiaro possibile: sono tutto per la qualit\u00e0. Spedire cose senza alcun grado pu\u00f2 essere visto come un esercizio di irresponsabilit\u00e0.<\/p>\n<p>Ma credo anche che ci sia un equilibrio da trovare tra la scrittura del codice pi\u00f9 ottimale, funzionale e performante possibile con i vincoli di tempo e budget.<\/p>\n<p>Non credo, non importa quanto ci sforziamo di imporre a noi stessi, che viviamo in un&#8217;utopia degli sviluppatori in cui possiamo ottimizzare, progettare e implementare sistemi incontaminati in ogni singolo progetto.<\/p>\n<p>Sembra, per\u00f2, che abbiamo fatto del nostro meglio per crearlo, vero?<\/p>\n<p>Ma a un certo punto, non vale la pena chiedersi se tutti gli strumenti che stiamo creando e tutte le cose che stiamo aggiungendo ai nostri progetti rimuovono proprio ci\u00f2 che ci ha fatto entrare nel settore in primo luogo? Certo, per alcuni di noi, questo \u00e8 probabilmente diverso. \u00c8 giusto chiedere che avere un&#8217;idea, scrivere codice per darle vita e vederla risolvere un problema \u00e8 ci\u00f2 che ci ha portato all&#8217;ovile?<\/p>\n<p>A questo punto, tuttavia, abbiamo introdotto cos\u00ec tanti strumenti che mettere in funzione un ambiente di sviluppo per un&#8217;applicazione Web in esecuzione dal database fino al browser \u00e8 un&#8217;attivit\u00e0 intimidatoria.<\/p>\n<p>Devono succedere cos\u00ec tante cose prima di essere effettivamente pronti per iniziare a scrivere codice che pu\u00f2 diventare noioso e persino un po&#8217; estenuante solo fare i primi passi per farlo.<\/p>\n<h2>Un parere personale e definitivo<\/h2>\n<p>Gravito verso l&#8217;applicazione di solide pratiche e strumenti orientati agli oggetti in molti dei progetti su cui lavoro con il mio team e che spedisco per altri perch\u00e9 so, per esperienza, il tempo, i soldi e i dati che possono essere persi di qualcosa non \u00e8 &#8216; t indirizzato da tutte le parti.<\/p>\n<p>Questo non vuol dire che la spedizione di qualcosa neghi rapidamente nulla di tutto ci\u00f2. Ma il processo e l&#8217;organizzazione del codice alla base di un progetto \u00e8 qualcosa che \u00e8 molto difficile ignorare cos\u00ec tanto che sembra quasi paralizzante spedire qualcosa che non \u00e8 stato testato e verificato al massimo grado possibile (e anche in questo caso, ci sono i problemi).<\/p>\n<p>D&#8217;altra parte, per\u00f2, c&#8217;\u00e8 una parte di me che vuole sperimentare un&#8217;idea o due dietro la mentalit\u00e0 &quot;ship it or die&quot;, solo per vedere quanto velocemente qualcosa pu\u00f2 essere costruito, spedito e generare qualsiasi tipo di reddito indipendentemente da quanto incontaminato la base di codice \u00e8.<\/p>\n<p>E forse ci prover\u00f2 con alcuni progetti imminenti.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Anche se trovo intrigante l&#8217;idea di &#8220;spediscilo o muori&#8221;, continuo a lottare con quanto sia troppo in termini di garanzia della qualit\u00e0.<\/p>\n","protected":false},"author":1,"featured_media":163522,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[720],"tags":[1168],"class_list":["post-230782","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sviluppatore","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=230782"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230782\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/163522"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}