Welcome

This is the generic homepage (aka Aggregate Blog) for a Subtext community website. It aggregates posts from every blog installed in this server. To modify this page, edit the default.aspx page in your Subtext installation.

To learn more about the application, check out the Subtext Project Website.

Powered By:

Blog Stats

  • Blogs - 715
  • Posts - 31151
  • Articles - 309
  • Comments - 113843
  • Trackbacks - 590740

Bloggers (posts, last update)

Latest Posts

Da OneDrive a Dropbox…ma soprattutto: perché?

Sono stato per anni un accanito utente di OneDrive, di SkyDrive prima e di LiveMesh prima ancora (di cui ho fatto anche tutta la fase di beta testing).

Ho documenti per circa 41Gb e non ho mai avuto il benché minimo problema, poi tutto iniziò con: https://blog.onedrive.com/onedrive_changes/, che in realtà non mi toccava neanche di striscio, mi infastidiva molto ma essere infastidito non è un buon motivo in questo caso.

Di palo in frasca…

Ho un abbonamento MSDN (Visual Studio Enterprise with MSDN) personale come MVP e uno come azienda, bene. Ho un abbonamento Office 365 Personal, ho 3 licenze Office 365 qualcosa d’altro (quello che vi da la posta), ho anche Microsoft Office Home & Business 2016

Questo mi fa incazzare, sinceramente: è Topo Gigio che decide il nome dei prodotti? no, perché non si capisce nulla, ti arrivano le fatture e devi fare le capriole per capire cosa stai pagando.

Ma anche questo è solo parte del problema. Sta di fatto che scade Office 365 Personal e mi sono detto che sinceramente non ne vale la pena rinnovarlo, va bene tutto ma regalare soldi per qualcosa che non uso anche no, l’effetto collaterale è che ovviamente lo spazio a disposizione su OneDrive passa immediatamente da 1Tb a 15Gb (i 5 di default + Camera Roll), account bloccato in read-only (e ci sta).

Quindi?

Quindi ti chiedi: cha faccio adesso? Opzioni:

  1. pago OneDrive per avere più spazio
  2. provo ad usare OneDrive for Business (altro genio del marketing)
  3. cerco altrove

La [2] la scartiamo a priori, quando hanno distribuito la qualità quelli di OneDrive for Business erano nascosti molto bene, ciao.

Restavo a questo punto con pago OneDrive pago qualcun altro, pagare per pagare a questo punto si va alla ricerca della qualità, e questo scambio su Twitter direi che riassume bene le mie scelte:

image

Ma ancor di più il “dettaglio” che tutte quelle feature sono richieste da secoli, se-co-li. Millantano che ci saranno e ad ogni nuova versione del client cambiano un sacco di cose, in meglio o in peggio, ma di cose importanti nulla, il feature-set quello è e quello resta.

A questo punto visto che Dropbox mi da quello che mi serve la scelta mi sembra scontata.

posted @ 25/05/2016 9.03 by Mauro Servienti

Letture estive e non solo.

Mi sono fatto ri-prendere dallo shopping compulsivo di libri, è sempre stata una mia debolezza.

IMG_20160516_142803

Non solo, siccome la passione per la gestione dei team e dei prodotti/progetti è sempre forte e il modello aziendale in cui vivo è decisamente complesso mi sono iscritto al corso di Kanban di Brando sono curioso di capire se posso trarne qualche spunto lavorativo interessante.

posted @ 24/05/2016 8.44 by Mauro Servienti

nedb

 The JavaScript Database

Embedded persistent or in memory database for Node.js, nw.js, Electron and browsers, 100% JavaScript, no binary dependency. API is a subset of MongoDB's and it's plenty fast.

 


https://github.com/louischatriot/nedb

posted @ 23/05/2016 17.26 by Alessandro Gervasoni

Sempre per quella storia del non c’è nulla di sbagliato…

Agli inizi del 2000, se ricordo bene, viene da me la Banca del Tempo di Treviglio che sapeva che il sottoscritto smanettava con i computer e mi chiede come poter realizzare una sorta di agenda che visualizzasse:

  • una serie di eventi pianificati per la settimana corrente
  • una serie di eventi pianificati per la settimana successiva

Ovviamente dovevano poter inserire eventi a piacimento e il sistema avrebbe in automatico scelto cosa far vedere, con quale livello di dettaglio e quando.

Quella qui di seguito è una foto dell’applicazione che gira ancora oggi, la stessa fatta con ASP Classic, un browser in full screen con 2 IFrame con un meta-refresh che richiamano se stessi mettendo in query string la data giusta per eseguire un filtro su un database Access, in cui da un “back-office”, sempre in ASP Classic, è possibile inserire e manipolare eventi.

IMG_20160507_181604

È li, che funziona imperterrita, da almeno 14 anni. Il monitor è l’unica cosa diversa Smile

posted @ 18/05/2016 6.46 by Mauro Servienti

Non c’è nulla di sbagliato in…

…un approccio tradizionale basato su una banalissima CRUD, come non c’è nulla di sbagliato nei DataSet o in un servizio WCF.

L’architettura non deve essere guidata dalle scelte tecnologiche, tanto quanto le scelte tecnologiche non devono essere guidate dall’hype del momento. Scegliere quindi di prendere un’applicazione esistente, farne un massiccio refactoring per trasformare il monolite in qualcosa basato su microservices senza che vi sia una validissima motivazione di business e senza che i pro e contro siano stati valutati cum grano salis è semplicemente folle.

Allo stesso modo scegliere in un nuovo progetto una tecnologia o un’architettura semplicemente perché il nostro vicino di casa ci ha detto che funziona o perché sono la figata sulla bocca di tutti del momento è altrettanto folle.

Lasciatevelo dire ancora

È quasi certo che il monolite che oggi funziona anche se magari ci da tanti grattacapi diventi un insieme di monoliti che oltre a non funzionare più come prima ci danno molti più grattacapi esattamente allo stesso modo quando decidiamo, senza nessun buon motivo di business, di prendere una chiamata diretta al database e mediarla attraverso un servizio WCF: è colpa di WCF o gli storditi siamo noi?

La tecnologia in se e per se non è ne giusta ne sbagliata è l’uso che ne facciamo che è giusto, sbagliato o disastroso. E se non c’`e un buon motivo di business e/o un’attenta valutazione di pro e contro e dell’impatto economico siamo degli irresponsabili.

posted @ 16/05/2016 9.33 by Mauro Servienti

Lavoro da remoto - strumenti: Waffle.io

Come in parte abbiamo già detto tutto il nostro sapere sta su GitHub, in una serie di repository pubblici e in una serie ben più ampia di repository privati.

GitHub fa tante belle cose lo ammetto ma devo anche dire che la gestione degli “issue” fa letteralmente acqua da tutte le parti, sono lontani dal minimo sindacale necessario per poterli definire uno strumento in qualche modo utile per la gestione di un progetto. (fine dello sfogo)

GitHub per tanti buoni motivi resta comunque il centro del nostro mondo e per una questione di sanità mentale di tutti noi è necessario che oltre ad essere il centro sia anche la sola ed unica “single source of truth”; vogliamo evitare come la peste che le informazioni siano accidentalmente duplicate producendo, in particolare in una realtà dispersed, ben più problemi di quelli che vogliamo.

Board: waffle.io

Una delle cose che ci mancano è la gestione di una io più board per organizzare in maniera visuale un gruppo di issue. Waffle.io ad oggi ha dimostrato di essere la soluzione ideale in una realtà come la nostra, inoltre il team è responsivo alle nostre richieste di implementazione di nuove feature.

image

Quella che vedete è la board pubblica di Radical, le nostre purtroppo non ve le posso far vedere.

La cosa interessante di Waffle.io è che non mantiene in nessun modo nessuno stato lato Waffle.io, quindi la single source of truth è GitHub, tutto sta li. Fino a poco tempo fa usavamo HuBoard che ha qualche funzionalità in più ma che ha un suo stato per gestire queste funzionalità in più, cosa che vi obbliga ad usare sempre e solo la board perché toccando direttamente gli issue rischiate di disallineare le due cose, cosa che con Waffle.io non può succedere e che soprattutto voi non volete che succeda.

posted @ 13/05/2016 9.32 by Mauro Servienti

Electron

image

Electron ha il suo perché, non c’è che dire. Per chi non lo sapesse Electron è sostanzialmente una piattaforma di sviluppo per applicazioni “desktop” che vi consente di realizzare applicazioni cross-platform (Windows, OSX, Linux) utilizzando JavaScript, HTML, and CSS. Quindi ad esempio vi permette di realizzare un’applicazione desktop usando AngularJs e Bootstrap.

Quello che Electron fa è fornirvi una shell ad hoc per ogni piattaforma e le API unificate per consentirvi di dialogare in maniera uniforme ed agnostica alla piattaforma che vi ospita. Non è molto diverso da quello che Cordova fa nel mondo mobile.

La vera differenza, per quel poco di esperienza che ho con Cordova, è quello che avete sotto il culo (perdonate il francesismo). Oggigiorno la potenza di un PC è tale da rendere pressoché insignificante, per moltissimi scenari, il dettaglio che l’applicazione non è un’applicazione nativa, ma nel caso di Electron basata su Chromium e Node.js.

Una buona dimostrazione di questo sono la pletora di applicazioni, anche non banali, che ad oggi ne fanno largo uso. Applicazioni che per inciso funzionano abbastanza bene anche su quel posa pentole del mio Surface 3 non Pro (per gli amici detto Poor).

posted @ 12/05/2016 9.35 by Mauro Servienti

Reliability, Throughput, Latency (RTL)

Quando parliamo di sistemi distribuiti di solito uno dei dogmi fondanti è il cosiddetto CAP Theorem, internamente ne abbiamo coniato un altro, per certi versi simile: RTL.

Reliability, Throughput, Latency

Mentre CAP descrive una caratteristica intrinseca del sistema, RTL vuole principalmente descrivere una caratteristica dell’output del sistema, o se vogliamo vederla in un modo diverso di quali sono le aspettative che l’utente può avere e che desidera vengano rispettate.

Come per CAP, Reliability, Throughput e Latency non posso tutte e e tre essere massimizzate contemporaneamente. Devo fare delle scelte e sacrificarne almeno una, o una parte di essa in favore di una delle altre due. Se mi aspetto un sistema altamente responsivo, ergo con Throughput altissimo e Latency bassissima, forse ma forse devo accettare che perdermi per strada qualche pezzo è possibile altrimenti devo sacrificare una delle due a favore della Reliability.

Questo introduce un interessante aspetto sia dal punto di vista architetturale, che di modellazione, che di scelta tecnologica: fare una scelta uniforme e consistente in un sistema distribuito nella maggior parte dei casi non è la strada ideale.

I modelli di cui stiamo discutendo potrebbero avere requisiti, in termini di RTL, radicalmente diversi, ergo le scelte architetturali e tecnologiche di uno potrebbero essere sbagliate per un altro.

posted @ 11/05/2016 10.30 by Mauro Servienti

Date di consegna, pianificazione e perché no gestione delle persone

Sono reduce da un’esperienza alquanto interessante in merito alla gestione di un progetto lungo, complesso e molto faticoso. Ho raccolto una parte delle mie impressioni e alcune considerazioni nel mio blog in inglese:

Deadlines: are they a good thing? The acting and directing metaphor.

You might already know that for living I work in the software industry. It has been my primary job for the last 16 years or so. You might not know that my secret dream is to be an artist.

I studied classical dance when I was young and I always enjoyed being on stage. When it comes to dancing (classical dance in particular) getting older doesn’t really help, so in the last few years my hobby moved from pure dancing to acting, singing and dancing in an amateur dramatics company.

Our current show is a reworked and simplified version of the awesome, Mamma Mia.

Se voleste approfondire: http://milestone.topics.it/2016/05/02/deadlines-acting-metaphor.html

posted @ 10/05/2016 11.21 by Mauro Servienti

rollbar.com



Full-stack error tracking for all apps in any language

https://rollbar.com

posted @ 10/05/2016 11.05 by Alessandro Gervasoni

Update VSTS–6 Maggio

Un altro aggiornato è stato fatto a Visual Studio Team Service il 6 Maggio, come sempre l’aggiornamento non è disponibile a tutti gli account immediatamente, per cui ho deciso di attendere qualche giorno prima di fare il post.

Anche in questo aggiornamento troviamo importanti novità, che il team spesso prende da UserVoice . In questa release finalmente abbiamo la possibilità di personalizzare il Process Template includendo campi booleani che vengono rappresentati come Check-Boxes.

Checkbox control added to a work item

Altre modifiche cosmetiche sono state fatte alle board, in cui è possibile ora scegliere se vedere o meno le annotazioni.

Un’altra interessantissima modifica è la possibilità di personalizzare le tile di tipo Query nelle Dashboard, cambiando i colori di sfondo in maniera condizionale. Ad esempio nella figura sottostante è stato chiesto di visualizzare il background in rosso se il numero di Bug Attivi eccede il valore di 40.

Selecting rules and colors for Query Tiles

Per quanto riguarda il Release Management, è stata introdotta la possibilità di utilizzare un repository Git o TFVC come sorgente di artefatti. In questo modo non è più necessario essere costretti a pubblicare tramite build script o altri artefatti per poterli usare in una definizione di RM.

Sono state introdotte inoltre REST API per interagire con il Release Management, in modo da rendere semplice interagire tramite codice con RM.

Come sempre ci sono altre modifiche minori e potete leggere tutta la lista nel sito ufficiale di Visual Studio.

Gian Maria.

posted @ 10/05/2016 9.04 by Gian Maria Ricci

SOA service model decomposition: i modelli

Ci siamo lasciati con un primo tentativo che sebbene praticabile espone comunque il fianco ad sacco di potenziali magagne. Prendiamo la solita immagine che abbiamo usato usato fino ad ora e proviamo ad applicare sull’immagine delle etichette che rappresentano gli attori di cui abbiamo parlato nel post precedente, l’obiettivo di questo esercizio è trovare gli owner, trovare quindi quali porzioni dell’informazione che stiamo visualizzando sono gestite da chi.

I nostri attori potrebbero essere i seguenti, potrebbero essercene di più o di meno ovviamente in base al contesto:

  • Marketing
  • Warehouse
  • Sales
  • Shipping

E se li sovrapponiamo alla nostra immagine ci rendiamo conto molto facilmente che tutte le informazioni sono in qualche modo controllate da qualcuno e che non vi è nessuna sovrapposizione

image_thumb11_thumb

Ci basta?

In realtà no, manca “qualcuno”, che anche nella realtà esiste, manca quel qualcuno che decide che un prodotto è effettivamente acquistabile da qualcuno, potremmo anche usare il termini “in vetrina” e/o pubblicato.

Potremmo quindi aggiungere un nuovo attore, Publishing, che potrebbe anche essere visto come un componente di Sales o Marketing, se nella nostra realtà sono loro quelli effettivamente responsabili di gestire questo aspetto.

Post in questa serie:

posted @ 09/05/2016 10.45 by Mauro Servienti

Prima di andare avanti: Microservice…grrrr

Lo dico una volta per tutte: I microservice sono una cagata pazzesca.

L’aspetto a mio personalissimo modo di vedere problematico e che porta troppo spesso ad errori di design madornali è che la teoria dei microservice confonde:

  • gli aspetti di design (SOA)
  • con gli aspetti di deploy
  • con gli aspetti infrastrutturali legati al come garantisco alta scalabilità e alta affidabilità
  • infine siccome non era abbastanza detta anche un assioma sulla dimensione.

I microservice, se interpretati con il minestrone li sopra, sono una cagata pazzesca.

La “dimensione”, che poi mi piacerebbe capire quale unità di misura vi aspettate di usare, è l’ultimo dei vostri problemi. Il primo passaggio è comprendere il dominio: decomposizione del dominio (ad esempio tramite Context Mapping e Bounded Context), identificando i BC, da li module e submodule arrivando ad un concetto molto simile ai servizi di SOA.

Identificati i moduli diventa abbastanza semplice (si fa per dire) definire gli aggregati, gli aggregati non hanno dipendenze dirette tra loro (o meglio non dovrebbero), quindi un aggregato può essere visto come un componente nel mondo SOA, per il quale i componenti sono autonomi.

Attenzione che autonomi non ha ancora nulla a che spartire con il deploy.

Identificati i componenti la macro architettura è li che ci guarda, ora non ci resta che disegnare i messaggi (secondo SOA, quindi non ancora messaggi su una coda, o chiamate HTTP, o quello-che-vi-attizza-come-tecnologia) stiamo parlando di payload, come lo trasportiamo non è ancora un problema, ci interessa capire:

  • cosa trasportiamo
  • da dove a dove
  • quali dipendenze il carico ci impone

A questo punto l’architettura è definita, ora potete ricominciare da capo e aggiungere i vincoli di deploy, tecnologici, tecnici, di budget, etc…

Sono tutte cose ovviamente importantissime, ma se finiscono con l’avere un impatto sulle scelte architetturali imponendoci dei compromessi dobbiamo sapere che abbiamo fatto dei compromessi, partire ciecamente con dei compromessi, soprattutto se dettati da requisiti non funzionali, ci porta a disegnare un qualcosa che è castrato in partenza e che non mira a risolvere il problema di business ma mira a risolvere prima quello tecnologico portando quasi certamente a più danni che benefici perché a questo punto è il requisito di business che ne soffre.

posted @ 06/05/2016 8.47 by Mauro Servienti

“Focus Day on Developer Tools”

Con grande piacere sono stato invitato, dai ragazzi di Brain-Sys e da Overnet, al Focus Day che si terrà a Milano il 27 maggio.

Il focus della giornata sono i “developer tools” quindi tutti gli strumenti che un team di sviluppo si trova ad usare quotidianamente, parleremo quindi di Visual Studio, dando anche una sbirciata a cosa ci riserva il nuovo Visual Studio “15”, di NPM, Bower, Grunt e Gulp senza dimenticarci di UWP e Xamarin per lo sviluppo cross-platform.

Io personalmente mi dedicherò a qualcosa di un po’ inusuale:

GitFlow & GitHubFlow: gestire al meglio prodotti e progetti con Git (e non solo)

Un sistema di Source Control è solo uno strumento per conservare, condividere e gestire le versioni del codice?
È tutti qui? O possiamo sfruttare il nostro motore di Source Control anche gestire, e semplificare, il processo di sviluppo?
Obiettivo di questa sessione è comprendere a fondo Semantic Versioning (SemVer), le differenze tra GitFlow e GitHubFlow, come usare branch e PR per gestire il ciclo di vita e di rilascio e infine capire cosa sia GitVersion. Il tutto ovviamente senza dimenticare che viviamo in un mondo in cui CI e build automatiche dovrebbero essere la norma.

Se la vogliamo guardare da un altro punto di vista l’obiettivo della sessione è quello di trasmettere come Particular Software gestisca quotidianamente progetti e prodotti “sparsi” su circa 130 repository, tra pubblici e privati, di GitHub, applicando un processo di gestione del codice molto rigoroso e altamente automatizzato.

posted @ 05/05/2016 9.24 by Mauro Servienti

Live update nella Kanban Board in VSTS

Una delle ultime novità per la Kanban Board in VSTS offre la possibilità di abilitare il “live update” per la board, attivabile selezionando una semplice icona a fianco delle impostazioni.

image

Figure 1: Icon to enable live update to Kanban Board

Una volta abilitata, la board rifletterà in tempo reale ogni cambiamento dei work item che sono rappresentati nella board stessa. Questo significa che modificando o riordinando o cambiando colonna o in generale modificando qualsiasi proprietà di un Work Item da qualsiasi sorgente (web, Visual Studio, Integratione con Excel, etc), i cambiamenti si rifletteranno immediatamente nella board.

Questa possibilità è interessante in accoppiata con la visione in full screen (l’icona a destra dei settaggi), che permette di visualizzare la board a pieno schermo. Questa funzionalità, assieme al Live Update, permette di mettere un monitor o televisione che mostra sempre in tempo reale la situazione della board.

Questa funzionalità è per ora solamente disponibile per VSTS.

Gian Maria.

posted @ 27/04/2016 22.32 by Gian Maria Ricci

EDID Emulation… I love you :-)

La workstation che uso quotidianamente come macchina per lavorare è carrozzata con una scheda video più che discreta, una AMD FireGL PRo con tanta memoria e un po’ di porte DisplayPort 1.2 per pilotare un po’ di monitor 4K.

Tutto bello se non fosse che DisplayPort fa vedere a Windows i monitor come device plug&play e ogni volta che un monitor ad esempio va in stand-by, o viene spento, per Windows è come se staccassi il device e lo riattaccassi con l'effetto collaterale che tutte le finestre posizionate con maniacale cura vanno alle cozze...

Con ovvia mia somma gioia. Bene, insomma non proprio.

Ma non tutto è perso, EDID, sulle schede che lo supportano, permette di emulare il profilo del monitor facendo credere alla scheda video e a Windows che sia un altro tipo di monitor o che abbia caratteristiche diverse; la cosa interessante è che quando questo succede Windows si fida dell'emulazione e smette di rilevare il monitor ogni volta che si spegne/accende...ottimo Smile

La mia scheda video, visto quello che costa direi che dovevo aspettarmelo, permette di esportare il profilo EDID dei monitor attaccati e, dopo averlo modificato se necessario, di reimportarlo “forzandoli” così come sono.

Nel mio caso il profilo dei monitor va bene così come è, quindi reimportandolo e forzandolo il risultato è che la scheda video emula i monitor esattamente come sono e Windows è felice.

La cosa a cui stare attenti è se si cambiano le porte a cui i monitor sono attaccati, o si cambiano i monitor stessi, perché ovviamente adesso la scheda video si aspetta che al connettore 1, e via dicendo gli altri, ci sia attaccato un monitor ben specifico e se ci attaccassimo qualcosa di diverso non è detto che quel qualcosa sia felice, ergo se è necessario cambiare le impostazioni dei monitor è consigliabile prima disabilitare l'emulazione EDID e poi riabilitarla.

posted @ 20/04/2016 16.26 by Mauro Servienti

Configurare TFS 2013+ con il Team Field

In alcuni articoli passati ho spiegato come configurare TFS o VSTS per utilizzare un solo Team Project, dividendo il lavoro logico con il concetto di Team in TFS. In tutti gli articoli l’approccio utilizzato è stato quello di configurare per i vari Team L’area Path e l’iteration path assegnati, in modo che ogni Work Item appartenesse al backlog di uno o più team in base all’area path o all’iteration Path.

Se avete TFS on-premise, dove potete configurare il process template, potete adottare una soluzione che spesso porta ad una configurazione più chiara, ovvero modificare il Process Template per far aggiungere un campo esplicito che determina l’appartenenza di un Work Item ad uno o più Team. Questo approccio viene chiamato Team Field e la sua configurazione viene descritta direttamente in MSDN.

Il processo da seguire è molto semplice, si crea una GLOBALLIST con la lista dei vari team, si configurano tutti i Work Item che sono visualizzati nelle varie board aggiungendo un campo custom ed infine si configura il processo per utilizzare tale campo invece dell’Area ed Iteration path.

Una volta effettuata questa configurazione, per ogni Team del vostro Team Project si dovranno scegliere i valori di tale campo per cui un Work Item è associato al team. Questo permette quindi di creare anche un Team chiamato Admin che ha associati tutti i valori possibili per tale campo, in modo che questo Team possa vedere tutto nella board.

A questo punto per assegnare un Work Item ad un particolare team si può semplicemente cambiare il valore del Team Field, rendendo il processo di assegnazione sicuramente più esplicito.

Gian Maria.

posted @ 19/04/2016 20.04 by Gian Maria Ricci

Aggiornamento di VSTS 13 aprile

Il nuovo aggiornamento di TFS è in deploy, e contiene come sempre molte novità interessanti, come potete leggere dal post originale.

Le novità in questo caso sono molto interessanti, innanzitutto ora i Work Item hanno una icona che vi permetterà di “seguire” il Work Item, ovvero venire notificati ogni qualvolta il Work Item viene modificato.

Follow a work item

Di seguito poi viene una delle funzionalità più richieste di tutti i tempi (dopo il rename del Team Project) ovvero la possibilità di cambiare tipo ad un Work Item.

image

Le ragioni per il cambio di tipo sono molteplici, ma la prima è una riorganizzazione e promozione durante il Backlog Grooming. Supponiamo di avere una User Story che si rivela molto grande in fase di analisi, cosi grande da non poter entrare in un singolo sprint. A questo punto deve essere decomposta e la soluzione migliore è quella di, convertirla in epics (feature) e poi andare a decomporla in nuove User Stories.

Chiaramente anche il cambio di tipo è una operazione che viene tracciata.

image

Ma le novità non sono finite quì, un’altra delle funzionalità più richieste, ovvero il poter muovere un Work Item tra Team Project è stata finalmente implementata. E’ ora possibile muovere un singolo Work Item, oppure una serie di Work Items in un altro progetto.

image

Si può specificare quindi dove andare a mettere i Work Item, ma soprattutto, è possibile anche cambiare tipo.

image

Nell’esempio in questione, ho preso tre Product Backlog Items, e li ho spostati in un Team Project basato sul template Agile, per questa ragione ho deciso anche di cambiare il tipo di Work Item in User Story.

A questo punto già abbiamo un bel insieme di novità, ma non è finita qui, è ora possibile personalizzare i work item scegliendo una Pick List, ovvero aggiungendo un campo che può assumere un pre-determinato insieme di valori.

Add a field to a bug

Un’altra interessantissima funzionalità è la possibilità di cliccare su un errore di compilazione di una build ed essere portati direttamente alla riga di codice che la ha causata, direttamente dal vostro browser.

Per finire sono state introdotte anche numerose interessanti funzionalità sul Release Management che potete leggere dal blog ufficiale.

Buon fine settimana a tutti. :)

posted @ 16/04/2016 12.03 by Gian Maria Ricci

Che l’idempotenza sia con noi… :-(

Idempotenza questa sconosciuta… Il “buon” Subtext è evidente che non sa cosa sia…

image

post, duplicati, visibili da front-end ma non da back-end, dove ce ne sono altri duplicati:

image

Lasciamo perdere poi la gestione della paginazione:

image

image

Evito poi di addentrarmi nei meandri dello scheduler…è come sparare sulla Croce Rossa.

posted @ 15/04/2016 12.23 by Mauro Servienti

Slack è la nuova mail?

Ho parlato in maniera estesa di come usiamo Slack internamente, leggendo Scott Hanselman mi viene in mente che è un po’ che sento commenti del tipo “Slack è la nuova mail”.

image

Tra tutte le risposte quella del mio collega Simon è quella che meglio riassume la situazione:

image

Dunque…

Non c’è scritto da nessuna parte che Slack non diventi una bolgia ingestibile allo stesso modo di quelle simpatiche situazioni in cui la gente fa “reply all” in automatico e magari aggiunge pure qualcuno in copia.

Slack è lo strumento, se lo usate male è un vostro problema non potete di certo colpevolizzare solo lo strumento. Lo scenario d’uso peggiore è quello del singolo canale che usano tutti, è esattamente uguale alle mail con un bel “reply all” dove ogni tanto l’argomento cambia in corsa…un disastro annunciato e noto a priori.

Lo scenario migliore è quello dei tanti canali tematici con uno stretto controllo su “on topic/off topic”, in questo caso il vantaggio è palese, è molto facile se vi serve capire cosa è successo negli ultimi due giorni, cosa che se arrivate tardi nella mail probabilmente è impossibile perché qualcuno nel mentre ha deciso che in uno dei tanti “reply all” maledetti era meglio togliere tutta la parte quotata rendendo di fatto incomprensibile una cosa già molto difficile da gestire.

Tra parentesi se siete dispersed il dettaglio che Slack possa essere visto come un “meeting that never ends” io lo trovo personalmente vantaggioso, posso finire la mia giornata, uscire dal meeting, svegliarmi la mattina dopo, rientrare e con poco sforzo (se lo strumento è usato bene) capire cosa è successo nel mentre e portarmi alla pari.

Questo ovviamente vale per Slack e tutti gli altri astri nascenti che fanno più o meno cose simili, io conosco Slack.

posted @ 13/04/2016 12.34 by Mauro Servienti

Latest Images

From miscellaneous
From miscellaneous
From miscellaneous
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini