Agile Day 2012   Sviluppo agile in un    contesto bancario:come far convivere team,sistemi e metodi di lavoro          div...
Il progettoRifacimento di un sistema di pagamento elettronicoVINCOLI- nessun disservizio- team misto- contratto fixed time ...
Difficoltà n° 1Da noi non si può fare
Altre difficoltà        Collective Code OwnershipParte del team impegnata in attività pregresse               “Outsourcing...
Setup progetto
Setup ProgettoIn un tipico contesto bancario..
Accordi prematrimonialiRichieste assecondateLibertà sulle macchine di sviluppoAmbiente di sviluppo automatizzato con scrip...
Le specifiche
Le specificheIn un tipico contesto bancario..
Le specificheIn un tipico contesto bancario..
Le specificheSpecifiche recuperate interrogando il precedente                   sistema  curl --insecure --dump-header - --d...
Convivenza sistemiSistema da sostituire       Nuovo sistema                            (Phoenix)         Bilanciatore     ...
Deploy
Big Bang Deploy       xIn un tipico contesto bancario..      Sistema da sostituire        Nuovo sistema                   ...
Convivenza sistemiSistema da sostituire       Nuovo sistema                            (Phoenix)         Bilanciatore     ...
Modulo Perl<Location /vecchio_sistema/servlet/TranPortalXMLServlet>  <Limit POST>    SetHandler perl-script     PerlSetEnv...
Convivenza sistemiSistema da sostituire       Nuovo sistema                            (Phoenix)         Bilanciatore     ...
Migrazione Ma non mi fido....
Squaring[18/05/2012 00:10:04] Verify Migration Script executedon environment productionIncorrect data migration: -- Captur...
Automazione
Diversi repartiIn un tipico contesto bancario..   Reparto di Gestione IT responsabile della     produzione
Diversi reparti$ ./deployToEnv.shUsage: ./deployToEnv.sh [stage|pre-production|production]                          [lates...
Deploy plan
Deploy plan
Test plan
ApplicationCome evitareIf (environment().is(STAGE)) { ... } else {...}PRODUZIONE            Phoenix                Autoriz...
Demo page            Input            Output
Planning
PlanningIn un tipico contesto bancario..
Planning●   Stime di massima inizialianche a sacrificio della precisione,ma costante lavoro sullo scope pur diraggiungere● ...
SAL settimanali         Dove siamo? Che problemi ci sono stati?Priorità prossima settimana?
Focus sull’obiettivoCi concentriamo sui merchant top 100?Amount            Distribuzione Merchant
Focus sull’obiettivoIniziamo dal protocollo piu semplice ma con pochi merchant o dal piu complesso che ha la maggior parte...
MetricheInvece di focalizzarci sul rispetto del piano, teniamo traccia divarie metriche:                                  ...
Metriche       Transazioni su sistema legacy       Transazioni su Phoenix
Metriche       Amount su sistema legacy       Amount su Phoenix
Qualità
Quality AssuranceIn un tipico contesto bancario..            • Team dedicato            all’esecuzione dei test           ...
Collective Ownership
Monitoring
BAMIn un tipico contesto bancario..
Monitoraggio  Nagios, Cacti
MonitoraggioScript di analisi log
Conclusioni Purchè sia mantenuta l’aderenza ai valoridi XP coraggio, semplicità, comunicazione e                  feedback...
Contacts•   Website www.xpeppers.com•   E-Mail info@xpeppers.com•   torti.tommaso@gmail.com•   Twitter @xpeppers
Appendice - Test - Javascript
Appendice - Primo vagito11 luglio 2011   primo commit29 agosto 2011 prima transazione inproduzione
Appendice -Codice Modulo Perlsub handler {    my $r = shift; $request_rec = $r; my $data = content($r);     if (match($dat...
Upcoming SlideShare
Loading in …5
×

Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere team, sistemi e metodi di lavoro diversi

1,203 views

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,203
On SlideShare
0
From Embeds
0
Number of Embeds
322
Actions
Shares
0
Downloads
27
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere team, sistemi e metodi di lavoro diversi

    1. 1. Agile Day 2012 Sviluppo agile in un contesto bancario:come far convivere team,sistemi e metodi di lavoro diversi di Tommaso Torti
    2. 2. Il progettoRifacimento di un sistema di pagamento elettronicoVINCOLI- nessun disservizio- team misto- contratto fixed time fixed scopeNUMERI- Durata prima fase: 4/7/2011 – 30/3/2012- gruppo di progetto > 10 persone- 1487 gg/uomo, 300 erogati dal cliente
    3. 3. Difficoltà n° 1Da noi non si può fare
    4. 4. Altre difficoltà Collective Code OwnershipParte del team impegnata in attività pregresse “Outsourcing” Divisione in sottoteam
    5. 5. Setup progetto
    6. 6. Setup ProgettoIn un tipico contesto bancario..
    7. 7. Accordi prematrimonialiRichieste assecondateLibertà sulle macchine di sviluppoAmbiente di sviluppo automatizzato con scriptMonitor più grandi, tende, lavagne..Non assecondateDatabaseControllo versioneAccesso root in produzione
    8. 8. Le specifiche
    9. 9. Le specificheIn un tipico contesto bancario..
    10. 10. Le specificheIn un tipico contesto bancario..
    11. 11. Le specificheSpecifiche recuperate interrogando il precedente sistema curl --insecure --dump-header - --data-binary @$input_file http://...legacy url... + Esperto di dominio a nostra disposizione Wiki Acceptance Tests
    12. 12. Convivenza sistemiSistema da sostituire Nuovo sistema (Phoenix) Bilanciatore BilanciatoreApache Apache Apache ApacheTomcat Tomcat Tomcat Tomcat Db Db
    13. 13. Deploy
    14. 14. Big Bang Deploy xIn un tipico contesto bancario.. Sistema da sostituire Nuovo sistema (Phoenix) Bilanciatore Bilanciatore Apache Apache Apache Apache Tomcat Tomcat Tomcat Tomcat Db Db
    15. 15. Convivenza sistemiSistema da sostituire Nuovo sistema (Phoenix) Bilanciatore BilanciatoreApache Apache Apache ApacheTomcat Tomcat Tomcat Tomcat Db Db
    16. 16. Modulo Perl<Location /vecchio_sistema/servlet/TranPortalXMLServlet> <Limit POST> SetHandler perl-script PerlSetEnv PHOENIX_REDIRECT_URL http://url_phoenix_apache/phoenix-0.0/phoenixServlet/tranpipe PerlSetEnv LEGACY_REDIRECT_URL http://vecchio_sistema/servlet/TranPortalXMLServlet PerlSetEnv PHOENIX_TERMINAL_ID (123|456|789) PerlSetEnv PHOENIX_NUM_OF_TRANSACTIONS_TO_HANDLE 0 PerlResponseHandler PhoenixPostHandler::Redirect </Limit></Location>
    17. 17. Convivenza sistemiSistema da sostituire Nuovo sistema (Phoenix) Bilanciatore BilanciatoreApache Apache Apache ApacheTomcat Tomcat Tomcat Tomcat Db Db
    18. 18. Migrazione Ma non mi fido....
    19. 19. Squaring[18/05/2012 00:10:04] Verify Migration Script executedon environment productionIncorrect data migration: -- Captured transactions --Phoenix data: [Amount: 498561.03 , Transaction Counter: 7469], Legacy data: [Amount: 498461.03 , Transaction Counter: 7468]...
    20. 20. Automazione
    21. 21. Diversi repartiIn un tipico contesto bancario.. Reparto di Gestione IT responsabile della produzione
    22. 22. Diversi reparti$ ./deployToEnv.shUsage: ./deployToEnv.sh [stage|pre-production|production] [latest|<version number>]
    23. 23. Deploy plan
    24. 24. Deploy plan
    25. 25. Test plan
    26. 26. ApplicationCome evitareIf (environment().is(STAGE)) { ... } else {...}PRODUZIONE Phoenix Autorizzativo AutorizzativoSTAGE Phoenix di stage AutorizzativoPRE-PRODUZIONE Phoenix Fake
    27. 27. Demo page Input Output
    28. 28. Planning
    29. 29. PlanningIn un tipico contesto bancario..
    30. 30. Planning● Stime di massima inizialianche a sacrificio della precisione,ma costante lavoro sullo scope pur diraggiungere● o della settimana Lobiettivspostando tutto il non essenzialenella sezione futuro
    31. 31. SAL settimanali Dove siamo? Che problemi ci sono stati?Priorità prossima settimana?
    32. 32. Focus sull’obiettivoCi concentriamo sui merchant top 100?Amount Distribuzione Merchant
    33. 33. Focus sull’obiettivoIniziamo dal protocollo piu semplice ma con pochi merchant o dal piu complesso che ha la maggior parte dei merchant?
    34. 34. MetricheInvece di focalizzarci sul rispetto del piano, teniamo traccia divarie metriche: Merchant Legacy Merchant Migrati
    35. 35. Metriche Transazioni su sistema legacy Transazioni su Phoenix
    36. 36. Metriche Amount su sistema legacy Amount su Phoenix
    37. 37. Qualità
    38. 38. Quality AssuranceIn un tipico contesto bancario.. • Team dedicato all’esecuzione dei test • Regole per l’aderenza a policy aziendali
    39. 39. Collective Ownership
    40. 40. Monitoring
    41. 41. BAMIn un tipico contesto bancario..
    42. 42. Monitoraggio Nagios, Cacti
    43. 43. MonitoraggioScript di analisi log
    44. 44. Conclusioni Purchè sia mantenuta l’aderenza ai valoridi XP coraggio, semplicità, comunicazione e feedback ...da noi si può fare!
    45. 45. Contacts• Website www.xpeppers.com• E-Mail info@xpeppers.com• torti.tommaso@gmail.com• Twitter @xpeppers
    46. 46. Appendice - Test - Javascript
    47. 47. Appendice - Primo vagito11 luglio 2011 primo commit29 agosto 2011 prima transazione inproduzione
    48. 48. Appendice -Codice Modulo Perlsub handler { my $r = shift; $request_rec = $r; my $data = content($r); if (match($data, "<id>", "</id>")) { return forward_to($r, $ENV{PHOENIX_REDIRECT_URL}, text/xml, $data); } return forward_to($r, $ENV{LEGACY_REDIRECT_URL}, text/xml, $data);}sub match { my $data = shift; my $start_tag = shift; my $end_tag = shift; my $does_match_terminal_id = $data =~ m/(?:$start_tag|&lt;id&gt;)$ENV{PHOENIX_TERMINAL_ID}(?:$end_tag|&lt;/id&gt;|$)/i; return $does_match_terminal_id;}

    ×