by Paolo Polce
Non c’è Agile Software Development senza Software Developers. Rimettiamo l’attenzione sul lavoro quotidiano, da sviluppatore, che siamo chiamati a fare. In questa sessione parlerò di Design, di OOP, di coesione, messaging, commands&queries, interfaces and inheritance, puntando alla loro incredibile semplicità. Parlerò poi degli errori che si commettono nei test, nel prendere come Bibbia i pattern, nel guardare al problema dalla prospettiva errata.
Questa sessione si basa su due assunzioni:
La maggior parte dei difetti sono causati da side-effect inaspettati sullo stato
Dovrebbe essere considerato normale consegnare software privo di difetti.
This talk is based on two assumptions:
Most of the bugs are caused by unexpected state side-effects.
It should be normal to deliver software with no bugs.
I’ll present some interesting experiences about my architect-teamleader role, for two teams on big projects in a corporate environment. With Agile Methods it is possible to deliver quality software on time; but without the correct architecture the time it takes for every change will increase over time. I’ll present the lessons I learned.
The problem: sw industry is in a dire situation, we cannot even agree on what is the meaning of “code quality”. One of the main reasons is that we forgot what OOP was meant to be. You can find examples of misleading definitions in popular Java books.
OOP and FP are often seen as alternatives, but I believe FP can really help OOP go back to its origins: to simplify the encapsulation of status.
The Solution: learn how to take full advantage of OOP+FP. I will show pratical examples of how clean our code can be. Interfaces, immutable objects, pure functions, hollywood principle entities, stateless services; they all help in keeping complexity at bay.
The Path: how to get there from legacy code. Mostly unnoticed snippets from good books. How to use OOP to program in a Declarative way at high level, and Imperative way at low level. Most important: practice. How much time do you spend to improve your coding skill?
19th November 2011