Alexandre Martins On Agile Software Development

9Jun/080

Notes from JAOO Sydney 2008

This Monday and Tuesday, as I mentioned in the previous post, I attended the JAOO Conference here in Sydney. The event was fantastic, I had the opportunity to meet some great developers that I previously knew from the web. ThoughtWorks had a stand there, where people could catch up during intervals and play some Wii! See photos here!

The first day:
Erik Meijer made a great talk on functional programming entitled "Why Functional Programming (Still) Matters", his advocation of this style of programming was interesting and funny at the same time. For him, any language that causes side-effects is not functional.

Rebecca Wirfs-Brock talked about "Lessons Learned from Architecture Reviews", explaining the real purpose of these reviews. The normal behavior in most projects is people coming up with an architecture made of trendy technologies as candidate to "address" an issue, just because people say it's nice. She claims that instead of doing this you should think about the outcomes that would result in the issue being addressed, evaluate if it can be achieved using the chosen architecture and if so, present it to the client. Pretty obvious but generally people don't put it into practice.

Martin Fowler talked about "Patterns Of Enterprise Application Architecture". It's impressive how, even when talking about a subject that is not new (for those who read the book), he can still come up with useful information through his insights. One example was the case of when to use Transactional Script and when to use Domain Model.

Martine Devos presented "Agile Coaching", she was also the Certified Scrum Master instructor in the training I attended. What I thought would be a valuable discussion about coaching and organizational transformation activities, type of work commonly requested by companies nowadays, turned out into an explanation of randomly selected agile concepts and practices. A wealth of information but a lack of conclusion!

Than I attended the "Enterprise Systems Panel", with Jim Webber, Patrick Linskey, Thilo Frotscher, Martin Fowler, Ben Alex (on the photo) and Dave Thomas (as the moderator). Lots of discussions on architectural issues such as transaction propagation, distributed architecture, etc.

The day finished with an awesome keynote of Erik Dörnenburg and Martin Fowler about Simplicity in Design.

The second day:
No comments required for Robert Martin! He's always inspired me and watching him was one of the main reasons that made me want to attend JAOO. He made two good-humored presentations about "Clean Code". If you don't know Uncle Bob, go and search for his books!

Steve Vinoski gave a great talk on "Building RESTful Services with Erlang and Yaws", definitely I left this presentation decided that Erlang is gonna be my language to learn in this year. It contains a feature called Pattern Matching that is quite interesting, probably I'm probably gonna post something about it in the near future. Regarding JAWS (Just Another Web Server), written in Erlang, for those implementing multi-threading systems considering the use of Apache as web server, one data: during a workbench, while JAWS was handling 80k concurrent connections, Apache died handling only 4k. I don't know you, but this is enough for me to have a look at it!

Gregor Hohpe talked about Google GData application. I don't know if I am the only one feeling it, but Google's presentations nowadays seems quite similar to those presented by Adobe, BEA etc, teaching how to use their products in order to make them richer!

Michael Feathers talked about "Working Effectively with Legacy Code", I've read part of his book and I found it quite useful. During the presentation he came up with some examples of really bad code (coupled, with no tests) and in real time, wrote unit tests, made it testable by refactoring to make them pass. Nice presentation, as well as being a cool man!

My friend Erik Dörnenburg closed the event talking about "Software Quality", showing the two perspectives of measuring software quality; the external one, if the software aggregates value to the customer, and the internal one, if it is easy to maintain, understand and extend, and if it was designed properly. He talked about tools to help you check code metrics, such as duplication, coverage and testability rate, among others, some with fancy graphics. He explained the purpose of these tools, why keep checking it? Code metrics helps you measuring tech debt and effectiveness of training (in a management role), and it guides you to spot code that needs refactoring/improvement.

For those interested, you can download some slides here.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Reddit
  • Twitter
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


Comment moderation is enabled. Your comment may take some time to appear.

No trackbacks yet.