-
Un articolo che mi ha fatto riflettere, molto interessante spiega la tesi che spendere il
complexity budget sulla Continuous Integration e a cascata TDD ha un impatto positivo sul progetto maggiore che investire su programming languages e frameworks:
Taming the project complexity budget by focusing on continuous integration
Quale di queste 2 progetti descritti qui preferisci ?
- Project is “awesome”, as it uses nice a programming language plus frameworks and tools. Design is “perfect”, methodologies are used extensively, etc. Continuous integration is somewhat broken, and it takes quite a long time to understand if a given change actually works and that it doesn’t break existing functionality. Due to unstable and slow integration points, builds frequently break due to timeouts and inconsistent behavior, and no work has ever been done to solve that problem.
- Project is not that “nice” as it uses an orthodox programming language, frameworks are somewhat outdated, tools work alright, but are not fancy at all. Code and overall design are not amazing, but they are not too hard to understand and maintain. Testing quality is high and continuous integration work flawlessly though, and any changes to the system can be guaranteed to work quickly (in the range of a few minutes) and safely.
La descrizione 1 è perfetta per un progetto di R&D, la descrizione 2 è perfetta per un progetto destinato a rilasciare valore per il cliente.
Quale preferisci ?
Se il progetto a cui stai lavorando corrisponde alla descrizione 2 ma fai le tue scelte come fosse un progetto corrispondente alla 1 probabilmente stai gettando valore fuori dalla finestra il
complexity budget per usare la tecnologia sbagliata.