one of the largest rolling mills in Europe. The big roller stacks are 4 meters high. Task: port the control software for the cooling part to modern hardware.
and detailed list of requirements, but we realized it would have been a very poor way to frame a contract with us, the software house, and the customer, the bank. Much better to go the the main stakeholders and ask what they value. In this particular case, the boss cared about “migrating all existing customers to the new system without causing them any inconvenience”.
Merchant prosegue la sua operatività con il nuovo sistema Scala: % del transato migrato Status: [10/02/2012] ~8% Goal: [31/03/2012] 100% We wrote a long and detailed list of requirements, but we realized it would have been a very poor way to frame a contract with us, the software house, and the customer, the bank. Much better to go the the main stakeholders and ask what they value. In this particular case, the boss cared about “migrating all existing customers to the new system without causing them any inconvenience”.
della feature A Utenti tipo II - 2 merchant che necessitano delle feature A, B Utenti tipo III - 400 merchant che necessitano delle feature A, B, C Utenti tipo IV - 1600 merchant che necessitano delle feature A, B, C, D Step-Feature-A Descrizione: Implementare la feature A Criterio di accettazione: Un merchant tipo I migrato con successo Step-Feature-B Descrizione: Implementare la feature B Criterio di accettazione: Un merchant tipo II migrato con successo Step-Feature-C Descrizione: Implementare le feature C Criterio di accettazione: Un merchant tipo III migrato con successo So we partitioned the customers according to how many functions they required. We tracked the main progress metrics “% of customers migrated to the new system” and “availability of the new system”.
Batch Sync Utenti Apache Perl filter Utenti migrati Utenti non migrati We migrated the first customer (an important one) at 6 weeks into the project. All other customers kept using the old system. The first migration was frontend-only; the newly migrated customer was still using the legacy backoffice app. This was possible because we kept the legacy DB in sync with the new one.
Batch Sync Utenti Apache Perl filter Utenti migrati Utenti non migrati • Primo rilascio dopo 6 settimane We migrated the first customer (an important one) at 6 weeks into the project. All other customers kept using the old system. The first migration was frontend-only; the newly migrated customer was still using the legacy backoffice app. This was possible because we kept the legacy DB in sync with the new one.
piccole e frequenti We have a self-reinforcing loop. This cuts both ways: it can be a virtuous circle, or a vicious one. If you mess up in production, the customer will not trust you and will ask you to deliver in larger batches, which will lead to increased likelihood of problems in production.
piccole e frequenti Qualità You can stack chance in your favour by applying a lot of energy to “not messing up in production”. This will set a virtuous circle in motion.
Development • Pair programming • Integrazione continua • Specifiche su wiki • Training del personale • Technical Reviews • Manual test plans • Automazione spinta • NO Frameworks XP tradizionale
two main sources of inspiration: Evo taught me how to frame the project for success by tracking the metrics that really mattered to the customer. XP taught us how to deliver very high quality software.