BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Presentations Case Study: Large-scale Pure OO at the Irish Government

Case Study: Large-scale Pure OO at the Irish Government

Bookmarks
01:03:54

Summary

Richard Pawson discusses a case study of a large pure OO project for the Irish government, presenting the challenges met, the reason for choosing pure OO, and lessons learned implementing it.

Bio

Richard Pawson’s carrier included working for Commodore and being a journalist. He later spent 14 years with Computer Sciences Corporation (CSC) as a VP and Global Director of Research, specializing in architectures supporting business agility. His PhD thesis was on the 'Naked Objects pattern'. In 2003 he started Naked Objects Group to provide software frameworks that supported the pattern.

About the conference

QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community.QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.

Recorded at:

Oct 13, 2011

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Please note that Naked Objects for .NET has just gone fully Open Source

    by Richard Pawson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I was surprised to see this video appear on InfoQ today , as I recorded it at QCon London, last March. But I'm not complaining. By pure coincidence (I assume) this is a big news week for Naked Objects, because we have just made the framework fully open source. See nakedobjects.codeplex.com .

    Also possibly of interest, Niall Barry, who is the Assistant Secretary General of the Department of Social Protection (the subject of the case study in my presentation) has made the following comment:

    "In the last five years we have delivered more than 30 new core business applications, on-time and on-budget - and Naked Objects has played a critical role in that success. We have seen even greater productivity with the latest Naked Objects for .NET platform and I am delighted at the news that the whole framework is now going open source. As well as the cost savings to our own organisation, we hope that the open sourcing will encourage more public sector organisations to explore the benefits that this technology offers."

  • Re: Please note that Naked Objects for .NET has just gone fully Open Source

    by Sándor Nacsa,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Richard, I was quite pleased with your presentation. It also actually happened that the "promotion" of the now open-sourced Naked Objects for .NET to Hungarian developers came to a point when one guy was very satisfied with the framework while he was complaining about being "not an official one", i.e. not of Microsoft involvement. When asked why the open-source availability is not enough assurance another guy responded that it is not since there is always a temptation to change some not so likable places which then is becoming a kind of nightmare to update when the originators of the framework make an upgrade. And that guy was speaking of his own experience with some other open source stuff.

    At this stage my only remaining argument was to refer to the maturity of Naked Objects for .NET as well as its deep penetration into and commitment to such a large organisation as the Irish DPA. To communicate that I needed recent authentic reports. Was glad to find first the digital.cabinetoffice.gov.uk/2011/09/13/the-fir... (The First AgileTea Meeting) and a report on that at digital.cabinetoffice.gov.uk/2011/09/26/what-a-... (What a great turnout for the first Agile Tea Camp)

    Then I found this great presentation as well. So included both comments to the Naked Objects for .NET news at devportal.hu/blogs/news/archive/2011/10/10/nake....

  • Re: Please note that Naked Objects for .NET has just gone fully Open Source

    by Richard Pawson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Sandor, I must be careful not to be misleading. All the DSP's largest new systems are written on an earlier version of Naked Objects - they are only just starting to moved to the new Naked Objects for .NET. However, Naked Objects for .NET has had the benefit of five more years of development than the original, and is far far more rigorously tested. More importantly, the new framework is actually much thinner: because it delegates everything that it can to standard Microsoft components under the covers e.g. Entity Framework, LINQ, ASP.NET MVC 3, WIF and so on.

  • Re: Please note that Naked Objects for .NET has just gone fully Open Source

    by Sándor Nacsa,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Then Microsoft's www.microsoft.com/sv-se/kundreferenser/Windows-... case study (6/23/2011) of the new Public Service Identification (PSI) application is the real proof-point.

  • The Part That Is Missing...

    by John Passaniti,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I was disappointed by the very end where Richard Pawson asks for the camera to be shut off when he starts to talk about what didn't go well with the project. It's good that the downloadable slides including hints to this (and some other discussion that was either edited or omitted from the talk), but I would have liked more detail. Hopefully he'll discuss this elsewhere. Finding out there was a "single project failure" could be that it was a tools or people problem. But if it's a more fundamental problem with Naked Objects, I'd like to know-- not to shoot down Naked Objects, but to better learn where the edges of the design pattern are.

  • Re: The Part That Is Missing...

    by Richard Pawson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    John

    I can say a little more ...

    But first I'll take the opportunity to correct a statement I made in the video, where I said that the DSP had delivered 11 projects successfully. At a subsequent event, the Secretary General of the DSP presented a slide which named all the projects successfully delivered on the new architecture and the number is in fact 30! Each project is a significant new extension into a new business area. This does not include routine upgrades and enhancements, which are issued approx 10 times a year now.

    The single failure that I referred to in the talk was not in fact a full project - but a significant milestone within one project. The failure was nothing to do with the technology at all - it was a process failure - and an interesting one.


    Specifically, the vendor (this was the first engagement by that particular vendor at the DSP) attempted to impose its own agile methodology onto the process. Previously, the DSP had demonstrated a very strong commitment to the principles of agile, but had not rigidly followed a particular methodology. The vendor, who is well known in the agile field, insisted on following their agile process to the letter: every story agreed at a planning game would proceed on a strict basis of write-the-tests-before-any-code, and be fully integrated through to the database, before being presented back to the client. The DSP was used to a much more iterative style, where early iterations would be very fluid; only as an acceptable solution emerged would the more rigorous approach of writing comprehensive tests be applied, and the persistence added (for the early iterations, all objects are kept in memory). The vendor's methodology could not accommodate this. I could accommodate the concept of a 'spike' - but this was reserved for exploring a specific problem only and lasted only one iteration. The net result was that progress was very slow and lots of early work was wasted. That milestone was, to the best of my knowledge, eventually abandoned (I have no knowledge what happened contractually) - and the functionality was later picked up again within a different project.

    A comment I heard on the grapevine several times was that the vendor's process was 'So Agile, it was completely inflexible!'

    There is a salutory lesson in here for any organisation embarking on agile. The vendor made no attempt to recognise that Naked Objects enabled a far more flexible style of development and delivery (and, indeed, appeared to regard Naked Objects merely as an unwelcome technical constraint that they had to work with), which was what the client really wanted.

    (In case anyone does have knowledge of this situation, I wish to emphasise that the vendor I refer to above was a sub-contractor to the prime-contractor on the project - for that one milestone only. The prime contractor delivered the other milestones within that project and other projects, successfully - but without further involvement of the sub-contractor.)

  • Re: Please note that Naked Objects for .NET has just gone fully Open Source

    by Ivo H,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    That was very inspirational presentation. I was looking forward for a month or so since I noticed that according to qconlondon.com/london-2011/Videos/ all videos will be published on infoq.com. I wish there will be another one in the near future about the technical challenges with the transition to the recently open sourced Naked Object MVC framework.

    Naked objects is definitely one of the most interesting approaches to development today.

    I have few questions to ask you.

    1 - Why did you and DSP went with .NET implementation when you were speaking so highly about smalltalk. I can imagine one of the strongest attribute of the environment to allow you modify the application while running (aka live programming) would be incredible for this approach especially in the initial phase of a new extension of the developed system. As a .NET developer this is the feature I am missing the most on any mainstream development platform. Maybe that was the third language of the initial throw away prototype you mentioned in the speech.

    2 - Was the WPF version also open sourced or was it cancelled? There is no information on your site. How did you manage to solve the security issues of client side code access without breaking the concept of NO and additional custom server side programming? Is it using some kind of dummy WPF client (i.e. the presentation layer only tunneling the action invocations to server side)?

    3 - Does or will Naked Objects MVC adhere to the "restful objects" specification?

    4 - This application of NO is definitely a big one. But because this approach (no GUI custom code) is so heretical to everyone I spoke about this with, are there same case studies or other information of using the NO MVC or the pattern for another client than DSP?

    Thank you....

  • Re: Please note that Naked Objects for .NET has just gone fully Open Source

    by Richard Pawson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thanks for your kind comments, Ivo

    "Why did you and DSP went with .NET implementation when you were speaking so highly about smalltalk."

    There is no implementation of the naked objects pattern in SmallTalk (Morphic has some conceptual overlap - but is aimed at a quite different type of application). Even if there had been, I doubt this would have been an option that DSP would have considered - as the skills are not mainstream enough. Naked Objects is a radical architectural concept, but the application developers skills are mainstream.

    "Was the WPF version also open sourced or was it cancelled?"

    The WPF version has not been open sourced. The DSP still uses this somewhat, and we maintain it under contract to DSP, for as long as they wish. We don't think it will ever appeal as much as MVC, because it is not really designed to be customisable.

    "Does or will Naked Objects MVC adhere to the "restful objects" specification?"

    Not yet, but we are actively developing it, as you may have seen from the RestfulObjects site - I am actively developing the spec with Dan Haywood. Make sure you get on our mailing list to be alerted. (Via link on our CodePlex site).

    "are there same case studies or other information of using the NO MVC or the pattern for another client than DSP?"

    People say: we can't believe it without a real, large-scale case study. We provide a real, large-scale case study. Then they say: we can't believe it without another real, large case study! Yes, I get the same reaction all the time. Sorry, we can't help there. My own view is that even if we had five or ten such studies, the sceptics would be no more convinced.

    Richard

  • Re: Please note that Naked Objects for .NET has just gone fully Open Source

    by I R,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Has any ISV used Naked Objects for a large enterprise application that must be able to be configured to behaviour differently (including UI) for each customer. (The core functionality is the same for all customers, but every enterprise customer always seem to think they know better about how something should be done)

  • Re: Please note that Naked Objects for .NET has just gone fully Open Source

    by Richard Pawson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    "Has any ISV used Naked Objects for a large enterprise application that must be able to be configured to behaviour differently (including UI) for each customer."

    Not that I know of. But in principle this would be possible using MVC. If the number of customers with different requirements is relatively small then the simplest approach would be to have a separate 'Run MVC' project for each Customer, but with all the business logic in the (shared) Model project(s) as usual. Each Run MVC project could have customised CSS, customised views and so on - and could, potentially, have its own private Model project to extend the core Model. This is all straightforward and you could easily prototype such an approach.

    If you're talking about a huge number of customers, as for example in a public cloud-based application servicing hundreds of separate commercial customers, then you would need a more programmatic approach to managing the customisation. Probably, possible, but at that level you're into a huge project by any standards, and I'm not sure that Naked Objects would offer you a great deal of advantage there. However, we're working on an implementation of the Restful Objects spec (see www.restfulobjects.org) that would be relevant.

    P.S. I recommend posting any detailed questions about Naked Objects onto the Discussions page on CodePlex: nakedobjects.codeplex.com/discussions

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT