[Daily Issue] L'importanza dell'architettura... ma non poi tanto...

Aspettate, leggete prima di saltarmi addosso :P

Ovviamente il titolo va il verso a questo mio post, in cui sembravo dire tutto il contrario...
Comunque, oggi ho avuto un'altra sessione di riunione/sviluppo presso uno dei miei clienti.

Quello di oggi, in particolare, ha la necessità di creare una demo funzionante in tempi brevi che verrà usata, ma che comunque è destinata ad essere soppiantata/riscritta. Per l'applicativo in questione io faccio la parte di coordinatore delle risorse ed "architetto".
Parlando con altre persone di questo lavoro, mi sono reso conto che il mondo dello sviluppo è cambiato radicalmente, ma forse anche un pò troppo... da quanto il termine "architettura" è entrato prepotentemnete nell'uso comune, mentre prima era riservato a poche persone elette, tutti hanno coscienza di questo, e quindi ne usano a piene mani... molto spesso magari abusano...

Intendiamoci, sono io il primo a fare architetture a 3 livelli nei progetti di test, e  poi non va nulla.... ma il test, la teoria, lo studio è una cosa, il lavoro è un'altra.
Tornando all'applicazione di cui sopra, si lo ammetto, ho disegnato un domain model, ma non ho per esempio separato le query dallo strato di business, e non ho usato NHibernate perchè il gruppo di lavoro non sarebbe stato in grado di gestirlo.

Ho creato un'architettura "zoppa" che non è pulita e non usa MVP o altri pattern complessi, ma l'ho adattata al team di sviluppo ed al tempo a disposizione (poco, visto lo status di demo del progetto).... sono io l'unico visionario o penso che sia meglio stuprare la teoria ogni tanto, piuttosto che perseguirla fino all'ultimo e rischiare di far fallire il progetto e confondere gli sviluppatori che ci lavorano?

Mi sembra francamente di aver già letto qualcuno che la pensava come me, forse Luka, ma francamente non mi ricordo :)

18 Comments Filed Under [ Weekly Issues ]

Comments

# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Forse, nel tuo caso, ti basta avere un prototipo. Non c'e' realmente bisogno di architettura :-)
Left by Pierre Greborio on 18/05/2007 7.10
# Re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar è un po' come le specifiche dei motori a curvatura di Star Trek: alla fine il capo ingegnere, dopo 2-3 anni in giro per lo spazio si rende conto che gli iniettori del plasma vanno allineati a 0,3 micron invece che a 0,5 come da manuale, mentre i collettori EPS devono baipassare alcuni circuiti secondari se si vuole mantenere l'efficienza oltre una certa soglia.
Là fuori è un altra cosa...
saluti
Left by Roberto Messora on 18/05/2007 8.45
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar si, lo trovo un ottimo esempio di vita reale di un architetto.

concordo con te che un architetto ha a disposizione in un mazzo di soluzioni da cui estrarre quella adatta ad un singolo progetto in base a:
- tempi
- costi
- requisiti (funzionali e qualitativi)
- team ****

si perchè il _team_ è il primo destinatario della architettura , colui che la userà per risolvere problemi e la evolverà insieme al prodotto.

Left by (luKa) on 18/05/2007 8.46
# Progettazione software, un esempio di vita reale
Gravatar
Left by (luKa) on 18/05/2007 9.11
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Concordo con gli altri. Un prototipo forse ti avrebbe semplificato la vita. Star Trek è l'esempio giusto...
Dura la vita dell'architetto! Per chi volesse intreprendere questa carriera consigliere: buon fegato e mandrakate a disposizione!
Left by Mario on 18/05/2007 11.24
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Mi trovo molto d'accordo con Luka sul fatto che il team gioca un ruolo fondamentale nella scelta dell'architettura. E' inutile inventarsi una super architettura se poi il team non è in grado di gestirla nel modo corretto...meglio semplificare
Left by Emanuele DelBono on 18/05/2007 11.26
# Re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar sì, quoto anche io il commento di Emanuele. L'architettura deve essere calibrata sul team. E' inutile dare uno strumento o delle linee-guida se poi il team non sa gestirle. Meglio semplificare le cose, adattarle al contesto e lavorare. :-)
Left by Igor Damiani on 18/05/2007 11.59
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Vabbe', questa volta faccio l'avvocato del diavolo :-)

Non sono d'accordo con l'affermazione che "l'architettura debba essere calibrata sul team."

Considerazioni:

1. L'architettura e' durevole e molto spesso indipendente dalla tecnologia, mentre il team lo e' molto meno. Una buona architettura puo' durare anche 10 anni, il team potrebbe cambiare anche una volta all'anno.

2. Quella affermazione suon un po' cosi': "se ho un team di persone di basso profilo penso ad una architettura di basso profilo, se e' di alto profilo allora la complico"

3. Il lavoro dell'architetto consiste nel soddisfare tutti i requirements di business (funzionali, tempi e costi) e nel definire un sistema astratto al punto di poter cambiare la tecnologia sottostante abbastanza agevolmente. L'architettura risultate deve essere composta da tanti elementi semplici.

4. Non possiamo mai aspettarci di avere un team di guru. E' compito dell'architetto trovare le parole per rendere semplice N sottosistemi, che messi insieme divengono un sistema complesso.

Chiaramente l'architetto ha un compito arduo e deve confrontarsi con molte persone. Ma sono le persone che si adattano all'architettura, non l'architettura che si adattano alle persone.

Se non ci riescono? Un paio di solutioni:
1. L'architettura e' sbagliata (perche' troppo complicata) e quindi va rifatta
2. Le persone non sanno nemmeno i principi base della programmazione...fare un bel corso base o cambiare mansione.
Left by Pierre Greborio on 18/05/2007 19.09
# Progettazione software, un esempio di vita reale
Gravatar
Left by (luKa) on 19/05/2007 9.56
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar @Pierre

concordo molto col punto 4.

mentre sono in disaccordo con questa conclusione: "sono le persone che si adattano all'architettura, non l'architettura che si adattano alle persone."


trovo che l'informatica è per sua natura flessibile e intangibile che poi sono i suoi punti di forza. in più è giovane ed in evoluzione =

1-non ho ancora trovato 2 architetti che usano/conoscono gli stessi strumenti (per attributi di qualità, modellazione della sicurezza, analisi dei rischi, pattern architetturali logici/fisici, metriche, notazioni di modellazione, processi di sviluppo)

2-non ho ancora trovato 2 "developer" che rappresentano con lo stesso modello mentale (stessi termini, stesso approccio, stessa organizzazione, stesso punto di vista) per un problema complesso, figurarsi quanto è distante da quello del "architetto"

=> l'anello debole di questo processo è condividere una visione comune della architettura. in confronto è più facile definirla ... il che trovo sia tutto dire.


Left by (luKa) on 19/05/2007 10.20
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Io direi che se le persone non riescono ad adattarsi all'architettura... bisognerebbe cambiare persone...
come dire che l'ATM cambia i treni della metropolitana, e alcuni autisti non riescono ad adattarsi alle novità...
O li si manda a casa, o lo si manda a fare altro...

Left by Simone Chiaretta on 19/05/2007 12.03
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar > Io direi che se le persone non riescono ad adattarsi all'architettura... bisognerebbe cambiare persone...

certo, e se è il team di dev che non riesce a capirla in alcuni casi quello da mandare a casa è l'architetto che non è in grado di comunicare l'architettura (principale compito del architetto nell'architettura moderna) che ha definito a coloro che sono i destinatari naurali.


Left by (luKa) on 19/05/2007 14.40
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Mah... siamo sempre li... io trovo che ci si sta discostando dalla vita reale :)

Posso anche essere d'accordo sul fatto che se una persona non si adatta è da mandare a casa.. .e sono anche d'accordo che se una persona non si adatta, la mando a casa, ne arriva un'altr ache non si adatta, mando a casa anche lei, e via dicendo.. o il tipo delle HR è da licenziare, oppure l'architetto non vale un gran che...

Ma tutto questo non mi salva dal fatto che il progetto verrà rilasciato in ritardo, che avrà qualche feature in meno, che insomma ci sarà qualcosa che non va....

Mi capita molto poco spesso di poter _scegliere_ il mio team di sviluppo. E sfido una grande società con dei dipendenti a riuscire a riallocare una persona di un team di sviluppo da qualche altra parte se l'architetto dice che "non va bene" perchè lui deve applicare le supercazzole. La decisione ultima spetta sempre a chi caccia i soldi, ricordiamocelo, io di solito parlo con lui ed evidenzio pro e contro. Insomma, posso dire che quella persona è da mandare a casa, ma nel frattempo se riesco ad adattare un'architettura meno perfetta per rispettare le consegne preferisco violentarmi .... il refactoring poi portrà arrivare a risolvere molti degli eventuali errori!
Left by Alessandro Ghizzardi on 19/05/2007 19.00
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Come i fallimenti di molti politici giacca e cravatta, che danno sempre importanza alle parole e niente ai fatti. Alla fine l'importanza vera e attiva è di quella parte di popolo che esegue il lavoro con le proprie mani e non con la testa altrui.
Left by Sem Tamburella on 20/05/2007 2.05
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Luka,
concordo con te che manca uno strumento (o se vogliamo vari strumenti) comune usato dagli architetti, ma non credo sia rilevante.

Ultimamente ho letto un documento (non pubblico) scritto da un ottimo architetto scritto in Word! Ho capito tutto di quel che proponeva come architettura (non sono un guru).

Niente diagrammi UML, niente Visio e niente strumenti strani. UN semplice documento di testo ben organizzato che spiegava in modo discorsivo come immaginava l'architettura.

Che cos'e' quindi un architetto?

1. Un ottimo comunicatore
2. Una persona capace di tradurre un sistema complesso in N sottosistemi semplici
3. Una persona che non ha bisogno di strumenti fantascientifici per illustrare l'architettura
4. Uno che non sta sulla cattedra
5. Uno che ascolta da tutti prima di proporre una soluzione

Alessandro,
hai ragione, chi paga vuole risultati. Ma molto spesso ti capita di incontrare chi paga voler dei risultati tutti e subito senza preoccuparsi dei costi a lungo termine. Se illustri una soluzione che costa 10 oggi e 1000 domani, ed unlatra che costa 100 oggi e 10 domani, che cosa pensi che scelga? Dalle esperienza avute in Italia il 90% sceglie la prima :-) Ma l'imprenditore vero, quello che crede nel proprio business scegliera' la seconda.

Al cliente vanno date piu' opzioni e sta poi lui a scegliere. Se poi vuole schiantarsi sta a noi decidere se bruciarci o no. Ma stai tranquillo, che quello che ti chiede do spendere 10 oggi vorra' spendere 10 anche domani e se le cose non vanno la colpa sara' sempre la tua...
Left by Pierre Greborio on 21/05/2007 8.00
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Correttissimo, ma sarà una mia pecca, non ho la fortuna di poter sempre scegliere i miei clienti. Nel senso che nell'ambito di un'azienda di medio/grandi dimensioni mi capita di interagire con differenti PM, e tra queste persone il modo di vedere cambia in maniera assolutamente radicale. Non posso permettermi di perdere il cliente perchè non riesco ad "abbassarmi" ogni tanto.
L'importante è mettere le cose sempre per iscritto e, soprattutto, evitare di proporre qualcosa che costa dieci e che sarà inmanutenibile nel lungo periodo! Io parlo sempre di architetture non perfette, non di architetture mancanti.. c'è una grande differenza :)
Left by Alessandro Ghizzardi on 21/05/2007 10.32
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar http://en.wikipedia.org/wiki/You_Ain't_Gonna_Need_It

YAGNI :-)
Left by Roberto Valenti on 21/05/2007 12.38
# re: [Daily Issue] L'importanza dell'architettura... ma non poi tanto...
Gravatar Secondo me un architetto deve essere un mediatore, un artista, un leader, uno scienziato. In alcuni casi deve semplificare per rendere agevole lo sviluppo, in altri forzare e insegnare a utilizzare alcuni concetti e idee in nome di un fururo più roseo. Deve capire il problema, e capire cosa può fare il team che non può spesso sostituire. Ottimizzare tempi e costi, senza poter sbagliare. E anche se fa un ottimo lavoro, non risolve i problemi, può solo minimizzare le spese e interventi futuri. In conclusione, un architetto non è nulla, senza un team di sviluppatori, manager e commerciali appropriato. L'architettura quindi inizia quando viene assunto un collaboratore, nelle pause caffè e nelle cene con i colleghi, nella riflessione che viene fatta a fine giornata, anche prima di addormentati...
Left by jumparound on 13/07/2007 10.47

Leave Your Comment

Title*
Name*
Email (never displayed)
 (will show your gravatar)
Url
Comment*

Please add 8 and 4 and type the answer here:

Preview Your Comment.