Friday 12 November 2010

Tech Ed–Day 3

So I’m starting to find my way around a bit which is typical when you’ve only got 1/2 a day left at the conference.

Today I almost managed to go to all the talks originally planned for, I changed one at the last minute after checking on the content, the sessions I attended were:

  • When working software is not enough: Death of an Agile Project
  • Architecture in Agile
  • Silverlight experts panel
  • Deep Dive into “HTML5”
  • Design Considerations for ASP.NET MVC Application

When working software is not enough: Death of an Agile Project – Mitch Lacey

Despite its title this presentation wasn’t really about agile at all.  Mitch was using a project that he worked on as a case study in how just producing working software using agile can often be the least of your worries.

What Mitch highlighted in his presentation is that no matter how good you are at developing software in an agile manner when it comes to statements of work, contracts, etc. things aren’t that easy and if you aren’t dealing with the right people in the client organisation, or worst still, don’t know everybody who is actually involved you will run into a lot of issues.

The main thing I took away from this presentation was if the customer wants fixed schedule, fixed cost and fixed features create a contract for doing just that even if you know its going to change and then charge the customer for every single change they want to make.  Also if you estimate its going to cost £1 million and the customer only wants to pay 1/2 that then walk away unless you have a really good reason to foot the bill for the other half of the work (Mitch said that the company he was with absorbed the extra cost as they had another £5 million contract with the customer about to start).

Architecture in Agile – Mitch Lacey

So I went from one session with Mitch to another and I was looking forward to hearing his thoughts on how architecture and architects fitted into an agile environment.

I was a disappointed in this session as the majority of it seemed to be more like a sales pitch to architects who were perhaps not working in an agile environment currently; if I had no agile experience then I believe this would have been a good introduction to agile principles and practices with Mitch explaining how you slice the system, create throwaway code to get it working, etc.

For me Mitch covered a little of what I had originally attended the session for right at the end explaining how he saw an architect working in an agile team and utilising emergent design/architecture working out any architecture that was needed in a just in time fashion.

One really good anecdote was an experienced architect who worked on one project with him and saw the architecture that was created after the project was successfully completed said to him that it was a really elegant design and even with his 20 years experience he didn’t think he could have come up with an elegant design if he worked the way you normally work i.e. big up front design which shows that simply have x years of experience isn’t always what you need or even helpful.

Silverlight experts panel – Gill Cleeren, Laurent Bugnion, Pete Brown

This was an interactive question and answer session with the presenters fielding questions that were asked by the audience.

I asked the first question which was ‘is Silverlight dead?’ and felt I got a corporate answer being told its not dead and that Silverlight 5 was on the way rather than the discussion I had hoped for relating to where Silverlight sat currently and where they saw it in the future.

I won’t relate all the questions and answers here as there were about 20 of them and some with answers from all 3 presenters, but during the course of the session I sort of got the answers I was looking for so to summarise what I believe Silverlight is now being used for and where its going in the future:

  • Silverlight's main focus is most likely to be internal line of business applications in the enterprise providing quicker development and ease of deployment and maintenance.
  • It may be used on the internet but only to provide specific functionality much the way flash tends to now e.g. play video
  • Silverlight is intended to create web based applications not general sites for people to browse.
  • Html 5, when it comes, will the technology to create sites/applications outside of the enterprise but you are still likely to find Silverlight fulfilling a the web application niche where you need rich functionality.

Deep Dive into “HTML5” – Giorgio Sardo

This was a very well timed session coming after the Silverlight Experts panel as up to now I have not looked into Html5 at all and so was very interested to hear all about it.

So Html5 is the future of the web, well most of us knew that already, but what I wasn’t aware of was that what people are calling Html5 is in fact a collection of 80-90 specifications that the W3C are looking at and a lot are at different stages in the path to recommendation some are only at the draft stage (beginning) and others are at recommendation already e.g. next version of javascript.

Giorgio went then went on to demonstrate the video and canvas elements as well as CSS 3 & SVG 1.1 showing us some of the power that will be available to us in the future.  Giorgio also mentioned that currently there is very little tooling available out there although there is a download for VS2010 which could help you now as well as some other libraries and utilities.

The one thing I did take away from this presentation is the amount of complexity that web developers/designers will have when trying to use these new features but at the same time making the sites work with browsers that only support Html4.1 which there doesn’t seem to be much discussion over.

Design Considerations for ASP.NET MVC Application – Dino Esposito

Based on the abstract for this session I was expecting to hear and see demos on how best to structure ASP.Net MVC applications to make best use of the technology.

However, the session started with Dino talking about SOLID principles and how at an abstract level ASP.Net MVC controller action method was no different to ASP.Net Webform's event handler with the only exception on closer inspection being ease of testing.

The talk then continued on lines of how to best meet Single Responsibility Principle in your controller, what a service layer was, and the different ways to access data in the view (ViewData, Model & Dynamic in case you were wondering) with strongly typed views using a Model as the best way for any reasonably sized project.

With the majority of the session gone Dino then briefly covered Dependency Injection via implementing your own IControllerFactory before moving on to ASP.Net’s aspect orientation implementation via ActionFilters and how you could create a way to dynamically inject the filters at run time to introduce new aspects without having to recompile and deploy the application, which he then demonstrated using a framework he has created which does just this.

Summary

I found today a mixed bag with the first couple of sessions interesting enough but didn’t really tell me anything new. 

The next 2 sessions helped me fill in gaps in my knowledge so I now have a far better idea how and where to use Silverlight and the real impact Html5 will be having on developers.

The final session was a little disappointing but interesting to see dynamic injection of cross cutting concerns, although I’d probably need more information about what problem this functionality actually solves before attempting to use it.

As per the other days I have more extensive notes for my team but if you want them drop me a line and I’ll sort them out for you.

2 comments:

  1. Hi Nathan,

    Thanks for the writeup on my talks! I'm always trying to improve, what suggestions do you have for the agile architecture talk? The reason I have it focused the way I do is because I find either I get people who have no experience with agile and want that part of the talk or I get experienced people like yourself who wants me to go deeper in specifics. It's a tough balance, and like I said, I'd love to hear your thoughts. :)

    Mitch

    ReplyDelete
  2. Hi Mitch,

    First up thanks for taking the time to read my post.

    As I mentioned I think the presentation you gave was a great presentation for any architect that isn't already involved in the agile world and I don't think you should change it

    When I went to that session I suppose what I was hoping for was some sort of guidance/examples of how you've managed to architect a decent size proejct whilst using an agile process, along the lines of the BI project you mentioned.

    With this in mind perhaps you could run a completely separate session, possibly interactive, where you could run through how you see an architect working on an agile (scrum?) project i.e. when do they get to work out the architecture, same sprint as the work, sprint before the work, etc.

    Another possibility is that you could do a workshop and get people to actually do an activity where they get to architect a piece of work and then do feedback on if the people have gone too far, done too little, etc.

    Thats what I've got off the top of my head but I'd be more than happy to talk about this more if you like.

    ReplyDelete