BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Key Takeaway Points and Lessons Learned from QCon London 2011

Key Takeaway Points and Lessons Learned from QCon London 2011

In this article, we present take-aways as seen by the attendees who blogged and tweeted about the QCon London 2011. This QCon, the 5th in London and 14th world wide was sold out weeks ahead of the conference -  with over  850 attendees including over 100 speakers!  QCon London was produced  by InfoQ.com and Trifork, the company who produces the GOTO conference in Denmark.  QCon will continue to run in London around March of every year, QCon SF will be running again in Nov this year, and QCon Beijing and QCon Tokyo are around the corner, and QCon Sao Paolo will be in September.

Table of Contents

Tutorials

Keynotes

Architectures You've Always Wondered About

Building Systems With REST

Design and Objects 2011

Enterprise Agile Transformation

Functional Web

Future of Java

HTML5, the Platform

iOS4 and Android

Lean and Kanban: Learning Through Systems Thinking

Next-Generation Financial Technology

NoSQL: Where and How

Software Architecture Improvements

Software Craftsmanship

When Things Break

Solutions Track

QCon User Group Events

Social Events

Opinions about QCon

Takeaways

Conclusion

Tutorials

Continuous Delivery by Jez Humble & Sam Newman

Twitter feedback on this session included:

thomleggett: "Build end-to-end business metrics into your applications" - @samnewman #continuousdelivery #qconlondon

Designing Software, Drawing Pictures by Simon Brown

Twitter feedback on this session included:

deanWombourne: 'If your refactoring crosses architectural boundaries, something is wrong' Simon Brown, codingthearchitecture #QCon

Secrets of Agile Architecture by Dan North

Twitter feedback on this session included:

mariendegelder: Take-aways from Dan North at #qconlondon: Stop talking when you stop learning. Develop fast but be a grownup about it. Good stuff!

 

rkrol: New continuous delivery story with 20-30 deploys/days on trading system DWR by @tastapod at #QConLondon

Keynotes

Innovation at Google by Patrick Copeland

Greg Gigon outlined the most important ideas presented during this keynote:

  • Idea is only 1% of the successful innovation, 99% is constant repetition of try and fail cycle. Thomas Edison as an example of the cycle that lead to invention of a light bulb.
  • Every idea can be a winner or a loser. Twitter was never suppose to catch up and Windows CE was suppose to be the greatest mobile platform.
  • Surround yourself with innovators, not thinkers. Look for track record of innovation in portfolio/cv. Innovators beat ideas.
  • Build fast, build the THING, and don’t worry about the RIGHT way of building it. Just get it out. Iterate fast. Dare to fail.
  • Create Pretotypes. Google’s Android application design kit contains a paper clip and a pencil. Draw your idea, application on a piece of paper. Put it into pocket and try to use it like a real thing.
  • More time you spend on the idea without releasing it, the more in love you’ll be with it. Therefore less likely to dump it.
  • Data is apolitical and factual. Use data not opinion to decide upon idea, if it’s worth doing, if the prototype/prototype/beta is getting more popular, etc.

Christoffer Noring attended this keynote:

He made a point of that a company should aim at trying to “build the right it” and not “building it right“. Also ideas in themselves didn’t have value but the people who realize them. Building something new is ”1% inspiration and 99% perspiration”. Copeland then introduced the concept “Thoughtland” where everything is possible, good ideas, bad ideas, which is basically unrealized ideas. Then a number of cases where mentioned, first off IBMs attempt to invent the ”speech-to-text apparatus”. At this point the concept of ”Pretendotype” or ”Pretotyping” was introduced meaning that you should fake creating a product and thereby test the validity of the idea. …

 

Then he gave the general recipe for innovation which was try out some pretendotypes followed by a quick launch on a small user group, followed by abandon or repeat until achieving the previously mentioned high stable usage over time. First after that real prototyping can take place.

Craig Nicol blogged:

In a fascinating overview of creating an innovation culture, Patrick Copeland discussed how everyone at Google is free to develop ideas (the famous 20% time) but that ideas mean nothing without data to back them up. In one case, the usage data led Google to kill Google Wave, which was a good idea, and got a lot of early interest but had no staying power as it struggled to find a killer niche.

 

The most interesting part of the talk was the discussion of “Pretotypes”, which are a generalization of something I’ve always known as “Wizard of Oz” trials. The idea of a Pretotype (“pretend-o-type”) is to build a concept prior to the prototype to see if the idea itself stands up. Where a prototype answers “Can I build it?”, the pretotype answers “Should I build it?”

Twitter feedback on this session included:

timanderson: Google has over 100,000 innovation ideas from employees in a database #qconlondon

 

timanderson: Google Wave "you want to fast fail when things aren't working" #qconlondon

samverschooten: "We are not retreating, we are just advancing in a different direction" Patrick Copeland excellent keynote at #qconlondon

alblue: "Innovations beat ideas, data beats opinions" - Patrick Copeland at #qcon #qconlondon

timanderson: Androgen - ui prototyping tool for Android coming soon from Google #qconlondon

thomleggett: Prototype = "can we build it?", Pretotype = "Would we use it?" - @copelandpatrick #qconlondon #qcon

timanderson: Pretotyping - fake it before you build it says Google director of engineering #qconlondon

jorgenwahlberg: "If you have the right idea, you can screw up all you want and still be successful." @copelandpatrick #qconlondon #qcon

alblue: Innovations are 1% idea and 99% execution; ideas are worthless, innovators are everything - Patrick Copeland #qcon #qconlondon

timanderson: You don't need to seek out your innovators, they make a nuisance of themselves says Google man #qconlondon

alblue: Patrick Copeland on the pretotyping manifesto at http://www.pretotyping.com #qcon #qconlondon http://twitpic.com/482y1d

timanderson: Google Chrome: two main goals, streamlined ui and fast javascript. Others have copied says Google engineer #qconlondon

timanderson: Android strategy vs Apple is same as clone PCs vs IBM in 80s says Google man #qconlondon

alblue: Don't be afraid to kill products based on real data rather than opinions - Patrick Copeland #qcon #qconlondon

robertoaloi: Innovation is the intersection of vision and hallucination. @copelandpatrick at #qcon #qconLondon

Innovations and Integrations: Applying Trendy Technologies to NASA Mission Operations Planning by Mark Powell

Alex Blewitt attended this keynote:

With the final landing of the Discovery shuttle today, it was fitting that QCon rounded off with what's happening at NASA. Mark Powell gave a good set of highlights about the tools that NASA and JPL use, from Eclipse RCP to schedule work on the Mars rovers to using Kinect to interact with graphic displays and wraparound simulations.

 

The images on Mars are processed by a massively parallel cloud computing system, and tesselated into different resolutions to give a Google Earth style flyover of the ground, as well as a geospatial search for nearby objects. Being able to merge all of these into a single application takes a lot of processing power, but the cloud approach can be accessed from all over the world.

Twitter feedback on this session included:

alblue: "If your organisation isn't looking at cloud computing it's time to clean out the tribbles" - Mark Powell #qcon

 

jgrodziski: #qcon how to beat a speaker when his domain is spacecraft ?-:) great talk from Mark Powell about software at NASA

Scaling Lean & Agile: Large, Multisite or Offshore Delivery by Craig Larman

Greg Gigon outlined the most important ideas presented during this keynote:

  • No disperse team – all the teams are sharing same goal and work as equal partners. There should be no hierarchy in teams.
  • Practices should be shared and guarded by Committees of Practice. Committee should have a leader that gets slack time to overlook the Practice and organize teams appropriately.
  • Software design should emerge as a collaborative work during workshops. Embrace open space in the office and lots of white boards.
  • Diverge and merge – teams should come out with design on their own sites, then they should hold Video, show and tell session with all the other sites.
  • When teams come with design on a specific part of the system, team leaders should work across all teams to have a common design for the whole system.
  • A documentation workshop after iterations embraces knowledge sharing and collective code ownership.
  • Avoid PowerPoint architects. Architects that are so far away from the code that they became architecture astronauts.
  • Component guardians are team members who look after code across all the teams, making sure that high quality is kept. If only one team takes care for only one component, the crap code is going to be maintained and accepted within. Teams needs to be cross component and cross-functional.
  • When components involve public interfaces, start with weakly typed, for example do ( aMap ). Once you know more and more code is stabilized you can make those more formal and strongly typed.
  • Continues integration is a must have.
  • There is a need to see the people across all teams. It builds trust and respect. Try to use cheap technology like Skype and web cams.
  • Team members should meet, rotate and travel to other sites.
  • Keep on thinking and adapting your methodologies and processes. Never retire.

Craig Nicol blogged on this Keynote:

Craig Larman was speaking about his experiences of creating agile teams for development projects spanning different countries and large teams. Although his first point can be summed up as “Don’t do it – if you can use a 10 man team, do”, there was a lot of good information on how to split up tasks to distribute them effectively across teams and how to maintain a common vision and feedback path across many locations. …

 

A couple of interesting points he made were that teams should have functional rather than modular responsibilities – i.e. don’t have “database” and “UI” teams, have “HSDPA” or “credit card payment” teams whose responsibilities cut right across the codebase so that the eyes on the code in one module never get stale. He also recommended against proprietary software – mainly as licensing issues create major problems across borders, and generally do not provide enough value over free alternatives to justify the expense.

Christoffer Noring attended this keynote:

The conference started with an introduction speech with Craig Larman, a real UML guru, talking about large scale scrum projects operating on several sites spread out across the world. He talks about the importance of not having component teams as they tend to tasks in a waterfall like approach. It’s also important to find good ways of cooperating and on equal terms. The last excludes using project manager software that teams in certain countries will not be able to afford the license on. So basically use tools that are as simple as possible, Google docs, invest in large whiteboards and so on. With his own words “using project management software is like applying lipstick to a pig”. Larman was responsible for a setup consisting of almost a thousand coders and asked what to change if doing it again- he said only use 10 really good coders to code everything.

Andrew Hepburn wrote about this keynote:

His advice was basically “Don’t do it!” He recommended that teams should be kept small – ten people or less – if possible. …

 

  • “We should encourage a culture of master programmers not PowerPoint architects”
  • “Architecture is a bad metaphor. We don’t construct our software like a building, we grow it like a garden”

Twitter feedback on this session included:

jurgenappelo: "Architecture is a bad metaphor. We don't construct our software like a building, we grow it like a garden." - Craig Larman #qconlondon

 

KevlinHenney: Architecture is a fine metaphor. What's bad is most people don't understand architecture, metaphor or the architecture metaphor.#qconlondon

SimonHoh: "There's a linear relationship between workshop success and whiteboard space." Craig Larman at #QConLondon

jurgenappelo: "Dispersed teams don't scale. Large-scale multi-site development doesn't need dispersed teams." - Craig Larman #qconlondon

jurgenappelo: "Stay away from commercial tools, use open source." - Craig Larman // Sure, and Craig offers his own products for free too 8-/ #qconlondon

benjaminm: "Avoid any so-called Agile Project Management tools. These are old command & control vendors putting lipstick on a pig" Larman#qconlondon

alblue: Craig Larman recommends "Magic Whiteboard" - official site is http://www.magicwhiteboard.co.uk/ #qcon #qconlondon

robertoaloi: Do you want to scale your design? Scale your whiteboards :) #qconLondon

alblue: Scaling scrum involves partitioning backlog based on customer priorities and grouping, not dev team groups. #qcon #qconlondon

alblue: How to organise multiple scrum teams #qcon #qconlondon - suitable for integrating 5-10 teams http://twitpic.com/47qqq2

alblue: "Avoid using document driven tools, like Word - use wikis instead" - Craig Larman #qcon #qconlondon http://twitpic.com/47qz1p

benjaminm: "Avoid any so-called Agile Project Management tools. These are old command & control vendors putting lipstick on a pig" Larman #qconlondon

benjaminm: "Make sure that all distributed teams feel equally important/valued".

alblue: Sprints are for products, not teams or locations. #qcon #qconlondon All teams need to move in lockstep

alblue: Scaling above 10 scrum teams is done by applying another level of indirection where multiple area planners are responsible #qcon #qconlondon

Things I Wish I'd Known by Rod Johnson

Twitter feedback on this session included:

timanderson: Never raise money when you need it says Rod Johnson #qconlondon good advice!

 

chrisbushelloz: Rod Johnson talking about not letting Wall St. Banks dictate your product roadmap. #qconlondon

timanderson: Nosql is finally a meaningful disruption in data management says Rod Johnson #qconlondon

raveli: World is full of niches. The big companies are good at failing, bad at coming up with simple answers to complex q's. #qconlondon @springrod

chrismay: Rod Johnson #qcon "we overinvested in dm server, cool tech but people didn't need it". TOLD YOU SO http://t.co/O6meR3c :-)

Architectures You've Always Wondered About

Behind the Scenes at Visa by John Davies

Twitter feedback on this session included:

savvas_andreas: The scalability, performance and revenue stats of Visa are extremely impressive..and #java is the major player :D #qconlondon

Data Architecture at Twitter Scale by Nick Kallen

David Rogers attended this session:

Until recently, Twitter received, on average, more updates to the social graph than tweets. That is, counter-intuitively, there were more ‘follow’, ‘unfollow’, ‘block’ etc.. events in total than tweets. As these social graph updates represent CRUD-like behaviour with strict consistency constraints, whereas tweets are mostly append-only with only eventual consistency required, handling these events makes a significant contribution to the complexity required to scale Twitter.

Alex Blewitt attended this session:

Nick Kalen spoke about Twitter's infrastructure and the way that they scaled tweets, timelines and social graphs. Ultimately, the twitter API most of the time boils down to “find by userid” and “find tweet by primary key”. The initial implementation in 2006 was based on a simple Rails/LAMP implementation, but whilst the original tweetbase could be loaded into RAM on a single machine with 800Gb of space, by the time the 3 billionth tweet was sent, the disk was over 90% utilized and growing fast. …

The conclusions were:

  • All engineering solutions are transient
  • Nothing's perfect but some solutions are good enough
  • Scalability solutions aren't magic; they involve partitioning, indexing and replication
  • All data for real-time queries must be in memory; disk is mostly for writes
  • Some problems can be solved with pre-computation but a lot can't
  • Exploit locality where possible
  • Measure at point of network calls to derive latency and time metrics

Twitter feedback on this session included:

alblue: Partitioning tweets by ID gives fast/scalable lookup for tweets, but additional/replicated index for userid-to-tweet allows speed @nk #qcon

 

alblue: "Measure throughput and latency of all major e.g. remote calls in order to know where to optimise" - @nk at #qcon #qconlondon

alblue: "Scalability solutions aren't magic; they involve partitioning, indexing and replication" - @nk #qcon #qconlondon

robertoaloi: "All data for RT query MUST be in memory. Disk is mostly for writes" @nk (Twitter) at #qconLondon #qcon

alblue: "Nothing is perfect, but some solutions are good enough for a while" - @nk at #qcon #qconlondon

alblue: Until very recently, on average, there were more changes to Twitter's social graph (follow/unfollow) than tweets sent @nk #qcon #qconlondon

alblue: In 2008: Twitter doing avg 30/s with all time peak of 120/s; in 2009, doing avg 2000/s with all time peak of 6900/s. @nk #qcon #qconlondon

alblue: Naïve twitter implementation used nested select, but could take 2-3s if data was on disk @nk #qcon #qconlondon

Netflix’s Cloud Data Architecture by Siddharth Anand

Twitter feedback on this session included:

chrisbushelloz: Netflix stressing design for resilience with their aws platform. #qconlondon

 

peter_pilgrim: NetFlix uses AWS (EC2 Stack) where the application sits on the platform and other infrastructure jars. #qconlondon

timanderson: Netflix had to build its own middle tier load balancer and discovery service to get its Amazon cloud-based service to scale #qconlondon

timanderson: Netflix was founded because founder was cross about late fee for DVD he rented #qconlondon

OnLive’s Launch Experiences and Real Time Gaming Architecture by Tom Paquin

Christoffer Noring attended this session:

The idea with OnLive product is basically about playing video games without actually owning anything more than a computer screen or TV. All the processing is made in the cloud and the resulting image is sent to you. He made a point of this not being able just 24 to 18 months ago both due to the limitations in computer screens as well as the speed of the internet. The general response time to aim at is 16 to 80 milliseconds, he explained, for the user to perceive it as happening in real time. This is an example of software as a service, SaaS.

Scaling the Social Graph: Infrastructure at Facebook by Jason Sobel

David Rogers attended this session:

New Zealand is Facebook’s Guinea Pig. Often when Facebook release a new product or service, they will release it to a restricted geographical area to verify it’s scalability, popularity, etc… using a system called GateKeeper. Presumably New Zealand serves as a good test bench as it is an affluent area with a relatively small population, and more accurate GeoIP because it’s an island. Interestingly, I once heard that chocolate bar manufacturers do the same thing (NZ only) to trial new bars on the international market.

Alex Blewitt attended this session:

Facebook has over 500m registered users, half of which use the site daily; putting that into perspective, that's about 4% of the human race. All of the data centres are based in the US in both East coast and West coast sites; however, at the moment, the West coast is a read-only replica of data in the East coast. Any writes to pages results in subsequent reads being redirected to the write master to ensure that pages are kept up to date, though a future topology change might result in multi-master sites.

The majority of Facebook is implemented in PHP on top of MySQL with InnoDB back-ends. In order to speed up the access, a memcache layer is used (without which, Facebook wouldn't exist). To speed up PHP, the Facebook team created HipHop, a PHP-to-C compiler.

Much of the data mining is done with Hadoop and Hive, but the core languages remain PHP and C++, with some Java thrown in for data mining purposes.

Craig Nicol blogged:

The scary takeaway message from Jason Sobel’s talk was not the 150-200 engineers supporting 500m users. It wasn’t the pushing live several times a day, using flags to keep “in progress” features from being visible live, or the hoops they have to go through to have 2 (soon to be three) data centers in sync (hint – most user operations are read-only). The message that a lot of people went away with was that the front-end is PHP, compiled to a monolithic binary via C++ using HipHop, that weighs in at a single 1.6Gb executable running on every front-end server. Between that, the spaghetti code on the backend that had to be replaced and the use of multiple MySQL databases on a single physical server (to make migration easier), I suddenly find myself thinking our legacy code maybe isn’t that bad.

Twitter feedback on this session included:

alblue: Over 500m users at Facebook; 50%+ log in every day #qcon #qconlondon

 

alblue: "Hadoop/Hive really does our business" (at Facebook) - Jason Sobel #qcon #qconlondon #datamining

alblue: "Memcache is the reason why Facebook works" - Jason Sobel #qcon #qconlondon

alblue: "Facebook's development methodology is to enable small teams to develop things more quickly" - Jason Sobel at #qcon #qconlondon

alblue: "If you are starting a website and planning to become huge, work out the API to access data before you start" Jason Sobel #qcon #qconlondon

alblue: "Code is deployed weekly, using configuration to enable new features, often to New Zealand or Chille first" Facebook at #qcon #qconlondon

Building Systems With REST

Building a RESTful Architecture on .NET with OpenRasta by Seb Lambla

Craig Nicol blogged:

Two very useful points: they were both using Fiddler for demonstrations, and pointed out a way round Windows’ networking shortcut that usually prevents packet sniffing on the local loop. Using “localhost.” or “127.0.0.1.” (note the trailing dot) allows Fiddler to listen in on the local loop packets. I’ll have to see how Fiddler compares to my current tool of choice : WireShark. …

The biggest problem with REST over HTTP appears to be that the most well known HTTP client, the browser, is a poor HTTP citizen. This doesn’t surprise me, given that browsers also tend to be 3rd class citizens of other protocols such as FTP, Gopher and IRC. Indeed, perhaps they should be called renderers, since they are generally better hosts of HTML, CSS and JavaScript content. Don’t let browsers fool you into thinking that you know HTTP. If you want to know HTTP, read the thesis that gave birth to ReST.

Building Best Buy's BBY Open RESTful Commerce Engine by Brian Sletten

Twitter feedback on this session included:

kief: Great phrase by Brian Sletten on releasing early & often: "Reduce the surface area of change" #qcon #qconlondon #continuousdelivery

mcsnootch: "It's possible to do some pretty amazing things with small, driven teams" -@bslattern #qconlondon

stilkov: BestBuy got a 30% increase in traffic for RDFa-enabled pages @bsletten #qcon #qconlondon

Getting Things Done with REST by Ian Robinson

Craig Nicol blogged:

The talk showed a well-structured set of code that implemented the state machine using XForms as the POST representation of data, and therefore embedding links into the content. The emphasis was on discovery of workflow (after all, when I create a new order, I don’t know in advance what its ID will be, and I won’t know what the options are if I have a loyalty card).

The talk was a great sales pitch for REST, but don’t take my word for it, read the InfoQ: GET a cup of coffee article yourself.

Make Yourself Comfortable and REST with .NET by Glenn Block

Tim Anderson also attended this session:

A project which I have become aware of here at QCon London is the WCF Web APIs, presented here by Microsoft’s Glenn Block. WCF Web APIs focus on support for REST, JQuery clients, and programming model simplicity for a variety of other clients such as Silverlight and Windows Phone. The bit that surprised me is that WCF Web APIs are not just another wrapper for WCF; it is a completely new library that does not build on the old WCF Service Model. The fact that it is called WCF at all is confusing, though of course it belongs in that space within the overall .NET Framework.

Craig Nicol blogged:

If you want a good REST client however, .Net does offer some hope, as demonstrated by Glenn Block. The HTTP response and request that have always been part of the server side are now freed to be available for web clients, outside the IIS framework, so that you can now write happy C# web clients using REST, using the classes you know from the server, but inside a framework that makes them easy to mock.

Twitter feedback on this session included:

timanderson: HTTP is about asking for a resource not invoking a remote procedure says Glenn Block #qconlondon

timanderson: Glenn Block explained at #qconlondon that WCF Web APIs does not use the old WCF ServiceModel at all

Using Hypermedia Services for System Integration by Tim Ewald

Twitter feedback on this session included:

gblock: Tim Ewald: When designing RESTful services, keep the visual Web in mind, but understand the critical difference #QConLondon

Design and Objects 2011

Large-scale Pure OO at the Irish Government by Richard Pawson

Twitter feedback on this session included:

natpryce: "There's no such thing as an 'application'." Different users see the same objects, scoped by permissions on classes & methods. #qconlondon

natpryce: "All UI for in-house users are a direct (runtime) reflection of the domain model... Not one line of custom UI code" --RP #qconlondon

natpryce: Principle-based architecture: "principles should not be motherhood & apple pie. They should have real teeth." --Richard Pawson #qconlondon

Enterprise Agile Transformation

Agile Operations - Optimizing The Business One Shell Script At A Time by Dan North & Chris Read

Twitter feedback on this session included:

lunivore: "Automation will reinforce the process... whatever the process is." @tastapod #qconlondon

lunivore: "People are Capital-L Lazy. Before you create a process to make people do the new thing, make it easy to do it." @tastapod #qconlondon

drunkcod: "logs are a user interface, the users are called op's" - @tastapod #QConLondon

drunkcod: "something to remember about Legacy code, it's valuable otherwise we would turn it off." - @tastapod #QConLondon

drunkcod: "Patterns are about being sympathetic with your environment" - @tastapod #QConLondon

drunkcod: "Say after me: Transfer objects are an oxymoron" - @tastapod #QConLondon

drunkcod: "Optimizing for a short code base half-life opens many options. But it needs to be a deliberate decision" - @tastapod #QConLondon

drunkcod: This I can live with: "Your job as an architect is to create an environment where people can create software" - @tastapod #QConLondon

drunkcod: "don't automate what you can't do manually. If it hasn't become boring yet don't automate" - @tastapod #QConLondon

stnor: Dan North @tastapod Get "hello world" out in production as release 1 to build release and test pipes. #qconlondon

Learning and Perverse Incentives: "The Evil Hat" by Liz Keogh

David Arno attended this session:

Liz talked about how as most people are scared of failure or of being told they did something wrong, we tend to fixate on the negatives. Companies build metrics, incentives and reward schemes around identifying the negatives and trying to fix them. Because the rewards tend to come from fixing failure, whole cultures of encouraging, or watching for, failure spring up as that is the only path to reward. It is much better to focus on the positives. …

The key point from the talk for me is that metrics are useful, but only as a source of information. Never use a metric as a target, otherwise your team will game it and you’ll be the biggest loser.

Twitter feedback on this session included:

miiaforssell: "Game the system. If you don't, someone else will." Liz Keogh is my new idol :). #qconlondon #qcon

 

mariendegelder: Even if you think you are a nice person, your brain will game the system - Liz Keogh @lunivore #qconlondon

jurgenappelo: Nice talk by @lizkeogh about bad metrics. But I think targets are the real problem. We need metrics to improve, not to punish. #qconlondon

Why Don't We Learn!? by Russ Miles

Craig Nicol blogged:

In the first proper session, Russ Miles spoke about why the things we hear about at conferences don’t always translate back to the office, and how to do more than just cutting and pasting ideas into a new context without thought. Apart from calling Freud a Psychologist, and a long reading list, this was a great talk about why critical thinking and experimental practice, with feedback, are essential for improvement.

There was a wonderful dialogue structure to the talk, in the best philosophical traditions, and it pulled in ideas from across philosophy, the scientific method and psychology theories to provide a coherent basis for how to apply the knowledge gained from experience or from others, and to measure its effectiveness in order to obtain more knowledge for the future.

Twitter feedback on this session included:

drunkcod: Strive not to bring home ideas but bring back (testable) hypothesis. #QConLondon insanely good advice from @russmiles

Functional Web

Clojure and the Web by Glenn Vanderburg

David Rogers attended this session:

Functional languages are ideal for building elegant web frameworks. The functional paradigm complements the fundamental function of the web: read text in, write text out. Also, lazy evaluation allows for elegant solutions to building web frameworks in Clojure, as demonstrated by Compojure and Ring, where the flow of the application does not have to be controlled to ensure efficient operation.

High-Performance Web Applications In Haskell by Gregory Collins

Twitter feedback on this session included:

drunkcod: "You need to understand the execution model of Haskell to write performant Haskell" - Gregory Collins #QConLondon #TrueForAllLanguages

Node.js: Asynchronous I/O for Fun and Profit by Stefan Tilkov

Alex Blewitt attended this session:

Stefan Tilkov covered the basic premise behind Node.js as a server-side network server framework (“with a DSL that looks like JavaScript”). By using asynchronous IO – in other words, by never blocking on an IO operation – it's possible to get high throughput whilst consuming minimal memory.

The key is to have one (or a small number) of threads servicing requests from a network source, but only servicing those that are ready instead of having one thread blocked per waiting client….

Combined with decent http support, where it's possible to write a (non-caching) HTTP proxy in ten lines of code, and chunking support for streaming back data, Node.js looks like a high performant mechanism of writing services. Note that the key benefits here are twofold:

  • Programs are written in JavaScript, which makes it easy to prototype/iterate/test
  • Using asynchronous behavior can be an efficient way of dealing with high load

Twitter feedback on this session included:

alblue: "Using blocking io prevents streaming" - @stilkov at #qcon #qconlondon

 

alblue: "Ten years ago, people would have laughed at server-side Java. Five years ago, at server-side JavaScript" - @stilkov at #qcon #qconlondon

alblue: "No major web application can survive without at least some Javascript" - @stilkov #qcon #qconlondon

alblue: "Node.js is a network server whose DSL just happens to be JavaScript" @stilkov at #qcon #qconlondon

alblue: "Node.js makes it really easy to build streaming chunked servers, withut having to know the low level protocols" @stilkov #qcon #qconlondon

alblue: Cool ... Node.js' api has "util.pump" such enables a (non-caching) http proxy in less than ten lines. #qcon #qconlondon

alblue: "JavaScript, like any good programming language, supports higher order functions" (lambdas/closures) @stilkov #qcon #qconlondon

Webmachine: A Practical Executable Model Of Http by Justin Sheehy

Twitter feedback on this session included:

debasishg: "Designing whole systems and components with individual failures in mind is a plan for predictable success" << @justinsheehy at #qconlondon

natpryce: "HTTP is both complicated & deceptively simple" -- Justin Sheehy #qconlondon

Future of Java

Java without GC Pauses: Keeping Up with Moore's Law and Living in a Virtualized World by Gil Tene

David Arno attended this session:

I expected to doze through a dull JVM talk. I was pleasantly surprised to find it was nothing of the sort.

Java, and all other managed-code systems such as .Net, ruby, python, flash etc, have a problem. The length of time taken to garbage-collect is directly proportional to the heap size. Once that heap size reaches the 2-4GB stage, garbage collection (GC) can take many seconds, during which the system locks up. Once the heap size increases to 100GB or more, the lock-up lasts for minutes. In situations where timely human interaction with the system is required, such delays are unacceptable. Therefore GC has become a true bottleneck to the growth of managed memory solutions. Unless we are all to abandon it and return to the hideously bad old days of C/ C++ and unmanaged code, a solution is required. …

Gil’s company – Azul Systems – has come up with an ingenuous and “obvious, once explained” solution: use virtualization. By using a virtualizer, their C4 garbage collector can use virtual pointers. This means that memory can be compacted without having to change the pointers within objects. Instead indirection vectors get changed in the middle. These are fast to find and change. This results in the GC need never stop the VM from running.

The Future of Java EE by Jerome Dochez

Twitter feedback on this session included:

timanderson: Java EE team is considering a standard API for access to non-relational databases #qconlondon

robertoaloi: Lists in the new java? [1,2,3]. Sets? {1,2,3}. Hold on a second? www.erlang.org #qcon #qconLondon

timanderson: JEE platform may be broken down into separate services to better fit cloud model #qconlondon

timanderson: End of 2012 is target date for completing JEE 7 spec #qconlondon

HTML5, the Platform

HTML5 @ Facebook by David Recordon

Alex Blewitt attended this session:

Facebook do a lot of work in HTML5; for some older browsers, certain features (like Chat) are not available. They have a Using HTML5 today post which explains where it is currently being used.

Some problems exist – like the lack of a video codec standard – but libraries such as VideoJS allow fallback to Flash if standard video support is not available.

For implementing games, you typically need to be able to display 5 sprites at 30fps for a board game, 25 sprites for classic arcade games, 50 for shoot-em-ups and 100 for higher performance 2d/2.5d games. … WebGL, if supported, provides an order-of-magnitude difference for game performance. Some cross-platform APIs – like PhoneGap are available, but there's a list of devices and what they support as well listed via Wurfl and other data.

Twitter feedback on this session included:

alblue: "Flash is still the only cross-platform way of playing video across the entire userbase" - David Recordon #qcon #qconlondon

alblue: "WebGL gives an order of magnitude of performance improvement on Chrome 11 and Firefox 4" - David Recordon #qcon #qconlondon

alblue: Wurfl: detecting crowdsourced mobile device capabilities: http://on.fb.me/9zqHmn #qcon #qconlondon

alblue: "Mobiles are going to drive web standards over the next few years" - David Recordon #qcon #qconlondon

HTML5 And The Dawn Of Rich Mobile Web Applications by James Pearce

David Rogers attended this session:

You can wrap up a web-app so it looks like an app, with PhoneGap. James said we’re currently at 1995 on the mobile web (e.g. app stores = yahoo website index). We’re in the slightly bizarre position that in order to create a ‘app’ that’ll sit in the AppStore, Market etc.. it has to be wrapped up in a customized container so it can pretend to be an ‘app’. This is because we haven’t got sufficiently user-friendly solutions to discoverability on the web.

Alex Blewitt attended this session:

James Pearce gave an excellent overview of the state of HTML5, reinforcing a lot of the earlier content. Although the iPhone kickstarted a new generation in 2007, other devices are now in play with an estimated 35% iPhone, 35% Android and 35% RIM in the United States (with Nokia having a greater showing in the UK). Although the initial strategy of building per-device specific applications seemed good at first, the reality is that building a new app for each new type of device is a difficult process….

Frameworks take the pain out of mobile devices, such as SproutCore and SproutCore Touch, Sencha and tools like PhoneGap can help make cross-platform mobile devices. Knowledge bases such as http://caniuse.com, http://modernizer.com and http://deviceatlas.com can give information about what a device's HTML implementation supports.

Twitter feedback on this session included:

alblue: "The web is changing from a document oriented environment to an application oriented environment" - @jamespearce #qcon #qconlondon

alblue: "Web technologies are a viable alternative to native development" - @jamespearce at #qcon #qconlondon

alblue: "The mobile web is *not* a 320px web" - @jamespearce #qcon #qconlondon

alblue: "You don't need to ask Steve Jobs for permission to update your website" - @jamespearce on why web apps are better at #qcon #qconlondon

alblue: Lots of different mobile platforms with HTML5 being common denominator #qcon #qconlondon @jamespearce http://twitpic.com/48i2gf

Secure Distributed Programming on EcmaScript 5 + HTML5 platforms by Mark S. Miller

Alex Blewitt attended this session:

Mark Miller talked about the theoretical and implementation details of SecureEcmaScript. The problem being solved is a combination of adding modularity as well as revocation into the EcmaScript language.

To achieve this, a generic proxy to wrap all interaction between two objects. In normal operation, a function is forwarded onto the wrapped object; but a disconnect (or delete) method releases the contained proxied object and subsequent calls become a no-op….

Finally, the talk introduced futures in EcmaScript or 'promises', which were used in the implementation of the distributed system, including a couple of examples in implementing an infinite queue as well as a mechanism to uses these futures as a means of performing a shared bank transfer.

Whilst proxies are in the latest FireFox 4 Beta, and will be part of a future EcmaScript specification, some of the other parts are not yet production ready and remains an ongoing research project.

Michael Mahemoff attended this session:

There are a ton of attack vectors for browsers, as shown on the Caja wiki. There are spec vulnerabilities, implementation vulnerabilities, and an ongoing arms race emerges. Mark shows a table of numerous variables for each browser, where the variation is not just wild but more or less random. The attacker only need to find one vulnerability here.

Perhaps the ongoing cat-and-mouse game means there's something wrong with the whole identity-centric paradigm. Instead, maybe we can look at access control - don't worry about who's sending the request, worry about if the request has the correct level of access. …

How do you mix coded from multiple untrusted sources into the same frame?

To solve this problem, we bring other security models to the world of JavaScript. With EcmaScript 3, Caja had to perform complex, server-side, translation with a runtime overhead.

The lessons of this effort were taken to the Ecmascript committee, and accordingly, EcmaScript 5 is one of the easiest OO languages to secure, instead of one of the hardest, as was the case previously.

Single Page Apps and the Future of History by Michael Mahemoff

Alex Blewitt attended this session:

The problem with hashbang ajax crawling (first proposed on google webmaster blog) is that it changes the URL to effectively be a global single reference e.g.twitter.com/#!/alblue. When bookmarked, the basic twitter.com page will be accessed which won't have any specific reference to specific pages (including any Google crawlers).

The HTML5 history API can help here; using history.pushState() you can push a triple ofstate,title,path onto the stack. The browser's URL path will be replaced with path, and it will look like a normal page transition – except that the page won't be refreshed as a whole.

Changing the URL is only one part of the situation, though. The app will also have to recover from URL changes. When the URL is changed (whether back/forward button or manual intervention) there will be a window.onpopstate change. This will return the memento associated with it from the history before (or null if the user has typed in the URL manually), which the AJAX application can parse and generate the appropriate data for the call. The example cited was http://rampage.mahemoff.com, which is a pure AJAX application which derives all its data from a single JSON file: http://rampage.mahemoff.com/monsters.json. Interestingly (and somewhat orthogonally to the talk) it was using the mustache templating library, so-called because of the {and } used to delineate the template values. Navigating between pages appears to be a normal website, but you'll note that the top of the page remains the same for all instead of requiring a page refresh, also given away with the cross-fades between images.

Twitter feedback on this session included:

alblue: "Single Page Apps are important because they can be offline" - @mahemoff at #qcon #qconlondon

alblue: "Cross document messaging is driving iFrame renaisance" @mahemoff http://bit.ly/hrDAvx (expand) #qcon #qconlondon < used by Safari's extensions

alblue: "Techniques like CometD were workarounds for missing behaviour" - @mahemoff #qcon #qconlondon: but hang on, WebSockets is dropped, right?

alblue: Wikimapia demod as a single page app, overlaying wikipedia info on a geolocated map http://wikimapia.org/ #qcon #qconlondon

alblue: Clean architecture in Single Page Apps - UI is on the client, data is on the server #qcon #qconlondon http://twitpic.com/48fenv

mahemoff: Here's my Single Page App demo from #qcon #qconlondon earlier today http://rampage.mahemoff.com https://github.com/mahemoff/rampage

iOS4 and Android

Graham Lee noted about this track:

The whole track was full of win: particularly, if you ever get the opportunity to hear @fraserspeirs talk about how his school is using iPads to change the way they teach, please do take the opportunity. You will find out a lot about how to write apps that people can (and will) use.

Do's and Dont's on Android by Lars Hesel Christensen

Craig Nicol blogged:

There were a few nice general points in this talk, but at its heart was a fascinating discussion of how to improve performance and respond to customers and their devices. …

There were a few tricks, mainly from Google’s Android Dev site, that allowed them to improve animation speed for the main interface components from around 12 FPS to around 47 FPS (which was inline with the iPhone performance), partly by simplifying the graphical structure, but also working around limits in the Dalvik JIT compiler, in particular in regard to a slow dynamic lookup for polymorphic method execution.

On the customer side, there were a few tips on how to augment your apps to make crash reports available via the Android Market more useful, and a list of problems with cameras that led to custom patching for some devices and disabling of cameras on other devices, all managed through an extensible framework that was partly controlled by the server so that preferred resolutions could be tested and sent by the server without requiring a client software update just to support a new device.

Alex Blewitt attended this session:

Lars Hesel (@larshesel) talked about experience of developing a mobile phone application for a bank. One problem cited was that although Android is the same across platforms, support for hardware varies across and different devices. In particular, the cameras were singled as having challenges; some devices reported arbitrary resolutions which weren't in fact supported, and other devices had differing Android operation systems installed. This resulted in needing to buy a small number of devices to verify the specific hardware compatibility if a general bug couldn't be found. …

He summarised by saying that iPhone developers have it easy since the variations in hardware is much easier supported than the variety of Android devices, particularly when the Android devices aren't updated as often.

Twitter feedback on this session included:

akosma: Supporting the camera in Android apps running in versions previous to 1.6 seems like a real nightmare #QCon #qconlondon / cc @alblue

alblue: Removing background view on Android can result in a few fps improvement #qcon #qconlondon

akosma: Amazing: in Android, some combinations of overridden methods in subclasses led to performance increases of 46% (!) #QCon #qconlondon

alblue: Android graphics no-no is creating objects in the onDraw impl - resulted in 10-12 fps (iPhone cited 50fps). #qcon #qconlondon

alblue: Interesting stat: 50k Android users (for Lars' banking app) and 100k for iPhone version #qcon #qconlondon

Introduction to iOS Software Development by Adrian Kosmaczewski

Christoffer Noring attended this session:

This lecture was about giving a brief insight in what it means to develop for iOS. It meant to cover Objective-C , the framework Cocoa , Tools, Developing for the web or native and lastly app creation in general. …

 

The basic tools for development are Xcode and Interface Builder but it seems that Apple is looking to merge the two into a single program in a near future. …

One interesting tool is Static Analyzer which analyzes objective-c code and points out potential bugs and best practice which resembles the Resharper product for Visual Studio.

Twitter feedback on this session included:

timanderson: Speaker says that learning Objective C improved his C# code (day job) and says the transition was "enlightening but daunting" #qconlondon

timanderson: Good approach: explaining Objective C by showing Java/C# equivalent, makes it familiar #qconlondon

timanderson: Rumour is that Apple's interface builder will disappear and become part of Xcode in future version #qconlondon

Making Apps That Don't Suck by Mike Lee

Christoffer Noring attended this session:

The lecturer Mike Lee came dressed as a pirate with a “expect the unexpected” premise. He started off showcasing an app for gaming that seemed to firstly consist of an endless number of popup screens that basically did all wrongs possible. The popups did everything from confusing to disappointing to outright annoying the user and the general lesson learnt was that you as a developer will never get a second chance to do a first impression. He also made a point of saying the user deserved nothing but the best so only do what you are good at, if you’re not a graphical artist then hire one or as he said ”design is the cheapest awesome money can buy”. Then came a general advice to app developers to try creating something that lasts rather than trying to make money off of a “crap application”. Next lesson to learn was that communication with a user is important when it comes to feedback and here he said “feedback is a chance to improve yourself not to prove yourself” meaning that developers should treat a bug report from a user as something important and ignore the fact it might be the 1500th time the same bug is reported, in other words be humble.

Alex Blewitt attended this session:

His rules for making great things:

  1. Assume we suck
  2. Figure out why we suck
  3. Suck less

To find out why things suck, learn from experience and notice when they do. Then think about what sucks about them and derive rules in order to apply to other experiences.

Craig Nicol blogged:

The most interesting thought of the talk, and the one that went against the “release early, release often” mantra in evidence across the rest of the conference, was the idea of releasing “version 3″ of your product. Version 1 proves the concept, you then get feedback for version 2 to fix all the bugs, you then get feedback for version 3 to make it shine, and seems like magic. This will make a simple, seamless experience that your competitors cannot match.

Twitter feedback on this session included:

akosma: Apple's business model according to @bmf : "Ship only when the product surprises and delights". #QCon #qconlondon

akosma: "Feedback is not a chance to prove yourself, it's a chance to improve yourself." @bmf at #QCon #qconlondon

judykitteh: "There is a difference between a good user interface and a good user experience." - @bmf #QCon

betterobjects: Mike Lee @ #qcon "Engineering is not a set of rules. It's a way of looking at the world"

Mobile App Privacy: You're Doing It Wrong (And So Am I) by Graham Lee

Alex Blewitt attended this session:

Graham Lee (@iamleeg) gave an entertaining talk on mobile app privacy. The takeaway was training users to skip through dialogs. In the first example, installing Angry Birds from the Android Market resulted in a dialog with an OK button (as well as a brief note that the app needed internet access). Presenting information at an inappropriate time is likely to just result in users ignoring it as taking any advantage.

The other problem is that users aren't rational or predictable. Decisions made at one point may not be relevant after new information arrives later; so asking for a decision initially which may be based on future events is unlikely to be productive.

Craig Nicol blogged:

Graham Lee gave a very entertaining, if slightly misnamed, talk about good User Experience design, that was mostly about privacy but covered security aspects, comic books, and had some great examples of the good and bad out there.

There was a great explanation of why phishing and spamming work, and how developers and app store curators and designers could do more, mostly with an eye on affordability and design (for which there was another long reading list – I doubt I’ll get all this reading done before QCon London 2012). The biggest takeaway was that if you want your users to make a decision about privacy, you have to get them to do it at the right time with easy to understand language, and allow users to ignore your warnings if they know best.

Twitter feedback on this session included:

alblue: "You cannot be a good software engineer unless you know marketing" - @iamleeg at #qcon #qconlondon

 

alblue: "A rational choice made earlier can be overridden by novel changes in environment" - @iamleeg at #qcon #qconlondon

alblue: "Give users an easily-digestible amount of pertinent information at decision time" - @iamleeg conclusion at #qcon #qconlondon

The Invisible Computer Lab by Fraser Speirs

Tim Anderson also attended this session:

he made a persuasive case for how the iPad had transformed teaching (not only computing) at the school. According to Spiers, the children write longer essays because they have discovered word processing for the first time; they have new artistic creativity; they use the web far more and the school had to upgrade its internet connectivity; they are escaping from a word-based approach to learning and presenting their work to one which makes use of multiple media types.

He added that some of the expected snags did not materialize. They were concerned about the virtual touch keyboard on the iPad and offered keyboard accessories to everyone; but in practice few wanted it. The kids, he said, now dislike plastic keyboards with their tiresome buttons.

It is not a new model of computing, it is a new model of education. Handwriting may longer be an important skill, said Spiers.

Twitter feedback on this session included:

timanderson: "I think businesses that stick with the PC infrastructure will not be around in 2024" iPad love-in #qconlondon http://bit.ly/hqBStJ

Lean and Kanban: Learning Through Systems Thinking

Can the Kanban Method Avoid Becoming Another Management Fad by Benjamin Mitchell

Twitter feedback on this session included:

lunivore: "If you bypass stuff, it strengthens it and makes it worse." @benjaminm on Kanban's gentle treatment of politics and resistance. #qconlondon

 

tastapod: @benjaminm: having retrospectives, planning, etc on scheduled cadence is an assumption. What if you were to do them on demand? #qconlondon

tastapod: @benjaminm: if he's a control freak, he'll lie and say he isn't. If he isn't he'll say so. So I can't prove it. But I know! #qconlondon

lunivore: "We think we know, so we start by looking for confirmation, instead of trying to disprove it." @benjaminm on confirmation bias #qconlondon

lunivore: Single-loop learning: actions-> consequence. "Revisit your assumptions. What context are we missing?" @benjaminm on double-loop #qconlondon

drunkcod: Excellent provocative talk by @benjaminm exposing the deficiencies with our internal wiring. And ways to improve. #QConLondon

Complexity vs. Lean: The Big Showdown by Jurgen Appelo

David Arno attended this session:

QCon is a conference structured around topic tracks, and it appears that one of the objectives given to the person charged with setting up a track is to have one session that challenges the ideas of that topic. This talk by Jurgen was one such “Devil’s Advocate” talk that challenged Lean and Kanban. Jurgen did it very well indeed. …

Jurgen examined the principles of Lean and Agile and questioned each in turn. For example, one of the principles of Lean is “Eliminate waste”. Jurgen suggested that this was an over-simplification. If the waste isn’t costing you anything or taking up valuable space, eliminating that waste will actually cost you more than just allowing it to be. To take another example, “Delivery fast” is a principle that fits well with the agile, test-orientated, process. However sometimes, anticipating future needs and spending a small amount of time now to make it easier to incorporate new ideas in the future can save time and money in the future.

Twitter feedback on this session included:

lunivore: "There can be value in waste 'lying around'. If the cost of waste is low, maybe keep it." @jurgenappelo loves Optionst too. #qconlondon

Kanban System Design by Karl Scotland

Twitter feedback on this session included:

cgosimon: @kjscotland start with purpose, then design a method to achieve that purpose, rather than mindlessly applying method #qconlondon

cgosimon: @kjscotland The thinking behind kanban is far more important than the kanban tool itself #qconlondon

jeffpatton: Pondering kanban board as a game board - you can win the "delivery game" and lose the "product game" #qconlondon

shirishtiwari: #qconlondon Kanbansystem thinking - Karl The aim of Kaban system is to remove Kanban system by achieving natural flow.

Using Design Thinking To Stop Building Worthless Software by Jeff Patton

Twitter feedback on this session included:

cgosimon: @jeffpatton Prioritising by "business value" is somewhat akin to asking your stockbroker to only buy profitable stocks #qconlondon

benjaminm: "Delivering stupid software faster just gets you more stupid software" @jeffpatton #qconlondon

benjaminm: "Iterate has two meanings: repeat the same process [process view], keep redoing/improving it [design thinking]" @jeffpatton #qconlondon

benjaminm: @JeffPatton suggests that "refactoring" might be a defensive routine to save dev's from (embarrassment of) saying "fix bad code" #qconlondon

benjaminm: "Things that are hard to see and hard to measure are often ignored." @jeffpatton #qconlondon

benjaminm: "We need to stop measuring ouput (it just creates more output) and start measuring outcome" @jeffpatton #qconlondon

cgosimon: @jeffpatton : we are not writing software, we are changing the world (echo's of @bmf) #qconlondon

benjaminm: "We believe if we could ship more of it, faster, that would solve our problems" is a common misconception @jeffpatton #qconlondon

cgosimon: Who cares about usability if the product is stupid? @jeffpatton #qconlondon

benjaminm: "Goal is learning, not capturing requirements" @jeffpatton echos #LeanStartup's "validated learning about customers" #qconlondon

lunivore: Oh, I *love* @jeffpatton's story maps! Fits so well wih Feature Injection. #qconlondon

When The Pressure Is Really On: A “Rough And Ready” Application Of Lean And Kanban At The BBC by Katherine Kirk

David Arno attended this session:

Katherine works for a large British business that, like many large businesses, puts bureaucracy before common sense at every level of its business in every way it can. Managing software projects in such an environment can be thankless, soul-destroying task. Katherine’s talk explained how she used the ideas of Lean and Kanban to help her manage those projects.

Whilst Kanban techniques undoubtedly helped the situation, I was left wondering whether they were the true reason why the projects succeeded, or whether it was her management skills that truly saved the day. I suspect it was a combination of the two. Either way, it left me inspired to try out Kanban as a tool to help the company I work for manage those development tasks that are not well-suited to Scrum, our current agile tool of choice.

Next-Generation Financial Technology

Complex Event Processing: DSL for High Frequency Trading by Richard Tibbetts

Christoffer Noring attended this session:

Financial systems are characterized by ultra low latency and large data volumes which poses significant requirements on any application or system built to handle the data. StreamBase is a company that invented a graphical language, that has the ability to act as a connection point for more than 100+ adapters and also aims to decrease time to market and time to change considerably. As speed is key StreamBase uses Janino compiler to generate java bytecode and issues such as optimizing garbage collection, array definition, etc. are matters that needed addressing when creating the language. It is built using C++ but also Java. Tibbetts went really in detail at this stage but I think it suffices to say that optimization on all aspects of a language was the driving theme to creating the StreamBase language.

Twitter feedback on this session included:

debasishg: The Streambase session was the best one for me today .. solid stuff, DSLs and language optimization - very well explained #qconlondon

peter_pilgrim: Ultra low latency - as low as 80 microsecond end-to-end latency How did StreamBase do it? #qconlondon

Finance in the Information Era; A New Stack for a New Reality by Sean Park

Alex Blewitt attended this session:

Sean Park gave a highly entertaining account of the development of finance from its inception through to its current day, with some interesting views as to where it will go in the future. ….

The basic gist was that the industrial revolution started with the age of steam (1750), the age of electricity (1830), the age of electronics (1970, with the Intel 4004) and now the age of cloud computing (2006 Amazon Web Services). However, the financial services (and the legislature that supports it) is largely still based in the years before electronics, where paper documentation trails are regular and physical co-location near physical exchanges (Wall St, London Stock Exchange) are still important even with the disappearance of physical stock brokers.

The key problem is reality; partially, the problem of reputation is based on assets in the real world, which can be modeled but may not exist in the electronic world. However, as changes like PayPal and eBay have started to change the way we do business, how long will it be before the standard businesses follow that model as well?

Large Scale Integration in Financial Services by John Davies

Christoffer Noring attended this session:

There seemed to be several protocols involved for sending data at high speed as the lecture revolved around banking systems. For banking system speed is key as well as correctness. Davies narrowed it down to talk about front end and back end protocols and used the FIX protocol as an example for the front end. The important part on the front end is for a handshaking procedure to proceed really fast meaning that all things xml was out of the question and FIX in its very nature is very simple. …

He [John Davies] then continued on to mention SWIFT which are three things; a security network, a standards body and a connectivity provider. Moreover it’s been around for 30 years with an availability of 99.98 % and has “NEVER lost a message”. Sending a SWIFT message is also something you don’t do manually as it has a load of complicated rules that could easily be overlooked and the SWIFT network will fine you heftily if a message is poorly constructed.

NoSQL: Where and How

Using a Graph Database to Power the Web Of Things by Rick Bullotta & Emil Eifrem

Twitter feedback on this session included:

timanderson: Graph database (neo4j) is 1000 times faster then SQL for graph-type queries and much easier to code #qconlondon

Why I Chose MongoDB for guardian.co.uk by Matthew Wall

David Rogers attended this session:

Encapsulating your domain model in a API encourages simplicity.

Using MongoDB encouraged the Guardian team to reduce the complexity of the domain model, such that it could be simply expressed in an extensible API (an API that can mutate over time without breaking compatibility). This was achieved by modeling the API at two levels:

  1. Property groups, which change infrequently and adhere to a contract
  2. Properties, which are not prescribed, allowing the simple addition of properties over time

Tim Anderson also attended this session:

The Guardian’s Mat Wall has spoken here at Qcon London about why it is migrating its web site away from Oracle and towards MongoDB….

So what’s wrong with Oracle? The problem is the tight relationship between updates to the code that runs the site, and the Oracle database schema. Significant code updates tend to require schema updates too, which means pausing content updates while this takes place. Journalists on a major news site hate these pauses.

MongoDB by contrast is not a relational database. Rather, it stores documents in JSON (JavaScript Object Notation) format. This means that documents with new attributes can be added to the database at runtime.

Twitter feedback on this session included:

chrisbushelloz: Guardian using scala for their identity management app. #qconlondon

chrisbushelloz: Guardian considered couchdb and cassandra before settling on mongodb. Couch too simple, cassandra gave unnecessary scaleability. #qconlondon

timanderson: guardian.co.uk site likely to move away from Oracle to Nosql system with MongoDB and JSON API #qconlondon

chrisbushelloz: Guardian has a public api. http://www.guardian.co.uk/open-platform #qconlondon

Software Architecture Improvements

From Months To Minutes - Upping The Stakes by Dan North

David Arno attended this session:

He [Dan North] used a mind-map to trace his experiences over the last year of going from being an agile coach to a proper code-writing developer once more. What he learned was the classic theory versus practice lessons. Many of agile software practice’s ideas are great in theory, but one must often be pragmatic and adapt them to work in reality. A case in point was his company’s approach to a prioritised backlog. Agile says you must have a prioritised backlog. The company he now worked for used a white board. Ideas are added, they are marked with a dot if they are being worked on, and they are removed if no one starts work on them after a couple of days. The whole board is wiped clean each week. And that’s it. They are a small team of six developers, working on short incremental changes, so this works for them.

Something that struck me as odd from what he presented was the use of the term “release”. Basically if you have an automated continuous integration and release process, then every commit is a release. So one can be truly agile and release many times a day. The downside of this approach of course is that you either you thoroughly test each commit or you risk releasing rubbish at times. I’m still unsure whether this is just me “getting” agile, or whether it’s an odd definition of release.

Twitter feedback on this session included:

simonbrown: From months to minutes; sounds like @tastapod's team works purely because it contains good people ... end of story #qcon

Putting the "re" into Architecture by Kevlin Henney

David Rogers noted:

According to the five orders or ignorance, 4th order ‘meta-ignorance’ is to lack knowledge of the five orders of ignorance (broadly equivalent to the Rumsfeldian “[un]known [un]knowns”).

Christoffer Noring attended this session:

He started off with a really striking quote ”Estimates are like fiction you are writing – it’s made up”. With that said it is sometimes really difficult to foresee all the factors and pitfalls when implementing software and estimates are really hard to make. …

He also made a point that not just the architects’ acts as architects for example managers’ act as architects when they make decisions that makes impact on the system. Software construction was also compared to that of a living garden rather than a house. Also there were talks on stability in a system and the impact of a planned change and the methods to analyze it. Employing a dot technique to point out the location of the bugs would give you an estimate of which modules were affected and to what degree but it would not give you an answer. More bugs in one module and less in another could indicate bad code but also that the module with the lesser amount of bugs consisted of codes not being used or that other metrics such as the number of lines of code should be taken into account as the most affected module could be a really large module. The main point to all of this was to learn to ask better questions rather than finding the answer.

Twitter feedback on this session included:

simonbrown: How about we stop discussing architecture metaphors and start helping people do the role? ;-) #qconlondon #wherearetomorrowsarchitects

peter_pilgrim: #qconlondon I like idea of Future-Spective ( imagine a retrospective 12 months in the future that you would hold w/ yr team) @KevlinHenney

Software Quality – You Know It When You See It by Erik Dörnenburg

David Arno attended this session:

Eric’s talk was related to software metrics and the use of data visualisation to present those metrics in ways which people can easily understand. Most people find it hard, if not impossible, to look at rows of numbers and make sense of them. We are however very good at spotting patterns and oddities in those numbers if they are presented in graph form. He showed some great cityscape-like 3D tree maps that could show for example classes in packages, size of the classes, their cyclomatic complexity and number of methods per class all in one 3D map.

Eric made the good point that the use of such visualisations tended to provide a quick reliable way of sifting good code from bad. There is a strong correlation between bad code and ugly disordered visualisations as well as good code and ordered visualisations that are pleasing to the eye. I don’t know for sure whether such an assertion is true, but it sounds believable.

Where Did My Architecture Go? Preserving Software Architecture in its Implementation by Eoin Woods

David Rogers attended this session:

One-way package dependencies can be enforced with Maven and SonarJ. Enforcing dependency rules on a Java project such as ‘package A’ can access ‘package B’ but not vice versa is possible with a number of tools such as JDepend, Macker and SonarJ. SonarJ allows integration with Maven to enforce rules and indicate allowed exceptions to rules.

Software Craftsmanship

Better is Better by Steve Freeman

David Rogers attended this session:

Being in an environment where everything ‘just works’ liberates developers to write great software. In a environment where administrators lighten the work load, operations provide robust platforms and developers have ready access to the necessary technologies, developers can focus on producing quality software. However, to achieve this takes a constant effort; always working towards that which is ‘better’.

Twitter feedback on this session included:

alblue: "Build and deploy to production should be a lunchtime event, not a weekend event" - Steve Freeman #qcon #qconlondon

alblue: "One person was obsessive with naming; he wasn't popular, but he was right" - Steve Freeman #qcon #qconlondon

alblue: "When stuff just works - not enough devs have worked in a good dev environment" - Steve Freeman #qcon #qconlondon

alblue: "Your best admin staff are probably cheaper than your average engineer - so offload admin tasks" - Steve Freeman #qcon #qconlondon

Craft and Software Engineering by Glenn Vanderburg

David Rogers attended this session:

I am both a software engineer, and a craftsman.

This is because, unlike other engineers (structural, chemical etc..), I both design and build the product (working software). Although, this is increasingly true of other types of engineering (electrical, mechanical) because of increasingly advanced software and production techniques using CAD tools. So (my conclusion), according to this metaphor, either I’m still just an engineer, or all engineers are now craftsmen. Whether or not it affects this argument, I did like the quote:

Programs should be written for people to read, and only incidentally for machines to execute. – “Structure and Interpretation of Computer Programs” by Abelson and Sussman

Simon Brown noted on this session:

The first session, entitled Craft and Software Engineering by Glenn Vanderburg, explored the relationship and conflict between the craft and engineering of physical construction and software development. Really interesting session and I recommend downloading the slides or watching it if you get the opportunity. For me, one of the eureka moments was when he presented this picture from his Extreme Programming Annealed essay. Basically, it shows the scale at which the XP practices work. …

My big problem with the whole self-organising team idea is that I rarely see it in practice. This could be a side-effect of working in a consulting environment in that my team always changes from project to project and I don't tend to spend more than a few months with any particular customer team. Or, I suspect that true self-organising teams are very few and far between. Striving to be self-organising is admirable, but most teams have bigger problems and the sort of scenario played out in my recent Software Project SOS session is indicative of the problems that I see.

Twitter feedback on this session included:

tastapod: Favourite #qconlondon quote so far: @glv "Software engineering suffers from premature maturity - it's like a teenager mimicking an adult"

 

tastapod: #qconlondon @glv says designing is more expensive than building for software engineering, which is the opposite model from civil engineering

Deliberate Practice by Jon Jagger

Christoffer Noring attended this session:

He started off by talking about being adaptable and that there was a contradiction between being adapted and being adaptable, i.e too specialized means to rigid and unable to cope to change, like a frog. The total absence of meaningful practice keeps teams from becoming effective learning units he said. Talking about software removing bad practices can actually be compared to training a dog in the sense that inefficient behavior is removed by adding more effective behavior. Research has showed that there exist no effective way to enhance forgetting and suppressing memory directly hence the need to basically overwrite it with learning a good behavior. Focus on what you do good and ignore the bad.

Jagger then told of the importance of keeping your brain constantly challenged, for example try using your off hand and learn to write with it a par level with your main hand , doing what you are not good at isn’t necessarily fun. Also challenge yourself with a task that is just beyond your current ability. The essence of practice is constantly trying to do things one cannot do comfortably. Work hard but work smart. Act your way into a new way of thinking , Boyd’s law. The meaning here is you cant change how you think but you can act the part. …

At this point he was making several quick points, among them: ”You do deliberate practice to improve your ability to perform a specific task, not to complete it”. ”The speed of an iteration trumps the quality of and iteration”. ”Practicing without feedback is like bowling against a curtain”. Talking about feedback he said ”Just calling it feedback doesn’t mean it has actually fed back”.

Twitter feedback on this session included:

drunkcod: "you need to become the change you want to see" - @JonJagger closing his Deliberate Practice talk by quoting Ghandi. #QConLondon

Team Leadership in the Age of Agile by Roy Osherove

Simon Brown noted on this session:

The session was about what you need to do in order to lead a software team, highlighting the fact that not all teams are equal. Roy categorises teams using a simple maturity model, which you can see described in more detail at The 3 maturity stages of a software team and how scrum fails to identify them. The three stages are: chaotic, learning/maturing and self-organising/matured. In essence, each maturity level requires a different approach to leadership.

As I said above, a team where everybody was an experienced software developer/architect would be amazing but this isn't something I've seen happen. Most projects don't have *anybody* on the team with experience of this "big picture" stuff and this is evidenced by codebases that don't make sense (big balls of mud), designs that are unclear, systems that are slow and so on. This type of situation is the one I see the most and, from a technical perspective, I recommend that *one* person on the team takes responsibility for the software architecture role. Roy also suggests that most teams are in the chaotic stage and, similarly, need more of direct leadership approach early on.

Whether you're talking about team leadership or technical leadership, the principle is the same. The chaotic team is like damming a fast flowing river with a bunch of twigs. It'll slow the water down for a very short amount of time but it soon becomes ineffective and you'll struggle just to keep stationary. A more direct leadership approach in these early stages will show you what you can't see and allow for some solid advice on which holes should be filled immediately. …

Agile software projects still need architecture because all those tricky concerns around complex non-functionals and constraints don't go away. It's just the execution of the architecture role that differs. …

One software architect or many? Single point of responsibility or shared amongst the team? Agile or not, the software architecture role exists. Only the context will tell you the right answer.

Twitter feedback on this session included:

simonbrown: Self-organising teams don't need a scrummaster ... @royosherove at #qconlondon

patkua: "Great teams are grown, not hired" @RoyOsherove #qconlondon

marrowboy_co_uk: Social motivation: praise someone for behaviour you'd *like* them to have and they'll change themselves to fit. #qcon @royosherove

The Beginner's Mind by Patrick Kua

David Arno attended this session:

The last talk of the day was a well-structured and presented examination of the “expert trap” that we we all have either fallen into in the past or will do so in the future. As we get more knowledgeable on a topic, we all tend to get less open-minded about it. We know the answers after all, so how can we be wrong, or so the thought goes. As Patrick superbly put it: “In the beginner’s mind, there are many possibilities; in the expert’s mind, there are few.”

Software development though is a fast-changing business. If one rests on ones laurels, one quickly becomes out of date. Similarly, if one closes one’s mind to new ideas and to the possibility that yesterday’s good truisms may not hold today, one risks becoming more asinine than expert. Patrick’s advice on avoiding this trap was all good common sense stuff: remain curious, always question your assumptions and embrace other people’s opinions.

When Things Break

Let It Crash ... Except When You Shouldn't by Steve Vinoski

David Rogers attended this session:

Handle what you can, but let someone else handle the rest (in Erlang?). As a refinement of Joe Armstrong’s ‘Let it crash’ philosophy, as applied to Erlang, this should not be taken as an excuse to remove all guards or defensive programming techniques from your code. You should not be afraid to let the system crash when the error is outside of your control, but foreseeable problems should be accounted for (e.g. legitimate network failures). It seems to me that the presence of Erlang’s ‘heart’ process makes this approach more appropriate than with other languages or architectures.

Twitter feedback on this session included:

kitofr: "Best way to avoid failure is to fail constantly" from Steve Vinoski #qconlondon

stilkov: "The Chaos Monkey’s job is to randomly kill instances and services within our architecture." http://t.co/PbICUhu /via SteveV at #qconlondon

Testing for the Unexpected by Ulf Wiger

Craig Nicol blogged:

For the first session of the day, Ulf Wiger discussed randomized testing, describing existing test automation as a low water mark, filled with often hard-to-maintain code where the effort to maintain the code grows faster than the complexity of the underlying system.

The idea of QuickCheck is to add controlled randomness to tests, by defining the input-output space of the system under test, which the framework uses to generate the test cases to try and find weak points in the system. QuickCheck is suitable for TDD. …

The most fascinating part of the talk for me though was the mention of NModel, which is Microsoft’s implementation of the same concept on the .Net platform. One to investigate.

Twitter feedback on this session included:

debasishg: @uwiger talking about Testing for the Unexpected .. "Test automation is mandatory" #qconlondon

debasishg: @uwiger "Code coverage is an unreliable metric" << so true .. and now he is proving that with factorial #qconlondon

simontcousins: Ulf Widger at Qcon on QuickCheck mentioned NModel http://bit.ly/hIVjOQ (expand) for .NET.

Solutions Track

Lean Programmer Anarchy by Fred George

Craig Nicol blogged:

Probably the talk that generated the most discussion. If Agile is about throwing away the layers that separate developers from clients, Anarchy is about throwing away the hierarchy and process to so that development teams become self-organizing around targets and around projects. It’s a fascinating idea, and involves a high level of trust and self-determination amongst the development teams. For the projects I’m used to, there’s a lot of frameworks in place to protect financial and legal considerations, which seem to be incompatible with the basic premise of Anarchy, but it’s a proven model within the FOSS world, where developers choose where they want to spend their time, which targets are important, and where developers tend to self-organize.

There’s a few themes in this talk that I saw repeated in other discussions, the develop-ship-monitor loop rather than the develop-commit-test-ship loop. This works for his teams because the code is small and short-lived so can be thrown away easily, and the code tends to be for internal teams, rather than external clients. However, the basic idea of constantly monitoring live sites to show that they keep working rather than just demonstrating it before deployment is something that seems to be a trend across many of the speakers.

Twitter feedback on this session included:

benjaminm: "Developers had become 'story drones' working on stories and disconnected from the business problem" @fgeorge52 #qconlondon #agile

benjaminm: "We've moved from empowerment (someone 'gives it/take it' away) -> Anarchy (nobody to ask, disagrements expected)" @fgeorge52#qconlondon

benjaminm: "Monitoring the production environment is more important than making sure it worked the first time you deployed" @fgeorge52 #qconlondon

benjaminm: "Any problem in company becomes my problem" @fgeorge52. Would love to know how he avoids this becoming a dependency #qconlondon

benjaminm: Many of the agile best practices are "crutches" overcome by trust w/ collocation, results not blame, small apps @fgeorge52 #qconlondon

hugorodgerbrown: "Anarchy is inherently scalable" - @fgeorge52 #QConLondon #qcon

hugorodgerbrown: Summary: ops go agile, dev goes beyond agile (anarchy) - and this all works if you can build up enough trust. #qconlondon

Performance Tuning for Java Applications by George Barnett

David Rogers attended this session:

Using more memory for Java applications increases performance, even if they don’t need the extra memory. George had compelling data showing up to 28% reduction in response time for average load to Jira from http://jira.atlassian.com when attempting to ‘drown’ the JVM with larger and larger heap sizes. The basic rules of thumb were:
  • Larger heap = better performance
  • Diminishing returns as more memory is provided. Most improvement comes from first doubling of the heap size above the required size

The explanation was that the GC uses different memory allocation strategies if more heap space is available. If there is plenty of space, these strategies are more efficient.

Take a Ride on Camel by James Strachan

David Rogers attended this session:

I was particularly impressed with the Scala DSL, where, for example, to read messages from a queue, and post them to three load-balanced RESTful services:
"apachemq:events" ==> {
    loadbalance roundrobin {
        to ("http://eventHandlerA")
        to ("http://eventHandlerB")
        to ("http://eventHandlerC")
    }
}

Unifying the Search Engine and NoSQL DBMS with a Universal Index by Jason Hunter

Alex Blewitt attended this session:

Jason Hunter, of Servlet API fame, talked about the MarkLogic Server, which runs the MarkMail search tool (amongst other things). The database is part content repository system (it stores the full content, rather than an index-only approach) and can be used to perform arbitrary queries on the data contained therein.

Most of the solutions appeared to be based on term lists (“the answer is always termlists”) which permits documents to be indexed and have a set of documents returned upon any query. For documents-that-contain, only a single term is needed for the termlist; but for most other operations, term-pairs are sufficient. When constructing a search for a full phrase (“the quick brown fox” was used a few times as an example) it gets deconstructed as word pairs e.g. {the, quick}, {quick brown}, {brown fox} and searches on multiple termlists find the intersection. For some kinds of terms, this answer won't be unique – but brute-force searching could be used to determine of the subset of documents returned which ones matched.

QCon User Group Events

London iPhone Developer Group

Graham Lee noted on this event:

Thursday, I was part of a London iPhone Developer Group panel, alongside @akosma and @bmf, where we talked about $5 Xcode, when iOS and Mac OS X will finally converge, why you can’t sell software to an Android user. Oh, and we prototyped the UI for Photoshop for iPad.

Seriously, we did that. Why? Because there was sentiment in the discussion group that desktops couldn’t die because it was impossible to do Photoshop on an iPad. This is annoying. In order to show the group that doing Photoshop on the iPad might be possible, I made us do it. Now it turns out that once you have done it, it is possible.

Alex Blewitt attended this event:

The London iOS Developer Group was well attended and had some good thoughts about how to pretotype an iPad app for photoshop editing. Some mention was given to the $5 developer tools charge, which some saw as a pithy price to pay for an excellent IDE whilst others were concerned about the general lack of an openly available compiler toolchain regardless of IDE.

OpenSpaceBeers

Craig Nicol remarked on this event:

A great session from the local .Net group where two on-the-spot discussions were voted on. One was about AppHarbour (Heroku for .Net) that allows you to easily test and deploy your code to a cloud hosting solution, as well as a hush-hush competitor that’s coming soon with VPN support so you can host the database in your own data center (handy for certain organizations that have a stricter limit on data via the Data Protection Act).

The second talk was basically an extension of the REST track, where Glenn Block did more to convince everyone that Hypermedia is the future and everyone should use REST (which is fantastic to hear from inside Microsoft, and Glenn did thank Scott Guthrie for helping to foster Microsoft’s new partnership with the development community).

The session worked well, and if we could guarantee enough people, definitely something I’d like to try in Scotland.

Social Events

Twitter feedback on QCon London social events included:

Autowired: Just two days in and I'm already overloaded with all the interesting conversations I've had #qconlondon

debasishg: Great geeky dinner organized by @timperrett .. Thanks a lot .. #qconlondon

jteigen: Absolutely awesome dinner yesterday with @timperrett @debasishg @dustinwhitney @jstrachan @olecr #qconlondon

marcjohnson: Really good night at #OpenSpaceBeers with @Ben_Hall and @serialseb followed by good conversation with some of the #qconlondon speakers

peter_pilgrim: Great conversation on Sci-Fi/Tech at speaker's dinner Glenn Vanderberg, @KevlinHenney & Mark Powell. Last day of #qconlondon 2011 ;-)

glen_ford: Brain melt after first day at #Qcon as always break chats just as informative as any talk and good to see old friends

Opinions about QCon

Andrew Hepburn wrote after attending QCon London 2011:

When I first heard about QCon, a few years ago, I thought it would be just another dull tech conference in an anonymous hotel or conference center, but I’m very pleased to say I was completely wrong! QCon was held in the Queen Elizabeth II conference center right in the heart of London, opposite Westminster Abbey, and provided a range of tracks on subjects as varied as large scale architecture, iOS and Android development, lean and Kanban, HTML5, NoSQL and state of the art .NET.

In addition, there were daily keynotes on subjects such as entrepreneurialism, innovation and scaling agile processes.

Together, these talks provided an opportunity not just to freshen up my .NET development skills, but to find out about technologies and ideas I’d never considered before and, perhaps more importantly, to think about non-technology issues too – innovation, how to learn, continuous improvement.

David Arno attended QCon London 2011:

This was my second year at QCon London, so I had some idea of what to expect. Registration was a painless process: I walked up to booth related to my first name and collected my badge and “bag of crap” as one person described it and that was the job done. No ID or proof of purchase required; other conferences take note! …

Alex Blewitt said after attending QCon London:

QCon is always a blast. As with any conference, it's not just the content of the presentations (which is great) but also the people that you meet, and the technologies that you're exposed to. The only problem is you feel you don't get to clone yourself three or four times to go and see everything; but even if you didn't manage to see everything you want, a fair number of the presentations are recorded and are released over the year at www.infoq.com for subsequent viewing.

Neil Logan expressed his opinion abut QCon:

I was fortunate enough to attend QCon London last week. Despite being billed as a “Software Development Conference” it goes way beyond the normal technical “deep-dives” typically associated with such conferences to cover topics such as group learning, human psychology, critical thinking and even programmer anarchy!

This year the quality of speakers attending was truly exceptional with my particular highlights being the keynotes given by Rod Johnson (creator of Spring), Patrick Copeland (Google) and Craig Larman.

Twitter feedback on QCon London included:

manuelkiessling: QCon really is the TED of Software Development conferences. You can quote me on this one. #qconlondon

drunkcod: It would be advantageous to be in at least two places at once tomorrow. So much great stuff on schedule. #QConLondon

hugorodgerbrown: QCon dilemma - how to clone oneself in order to attend multiple tracks. #qconlondon

georgeslegros: @loicbar a lot actually #qconlondon is awesome! You should have join

jeffpatton: Happy I came to #qconlondon - smart people here - thanks everyone for kind words & good conversation.

Autowired: Exhausted but very much enjoyed #qconlondon. Thanks so much for all the really great conversations everyone!

glen_ford: #qconlondon was awesome, especially as I managed to catch up with great friends, and met some great smart people

mesirii: what a week - an awesome #qconlondon, no sleep, host, interviews, great chats, interesting talks - thanks to all I met & to the qcon team

Takeaways

Craig Nicol concluded after day one:

A wide range of talks, including a couple that I don’t think I would have seen otherwise. A few themes that I saw today were to get repeated elsewhere, in particular the reduced emphasis on testing and requirements as speakers are looking to move beyond Agile, but it’s not clear how much is ideological, how much is misunderstanding and how much is just lazy. A few speakers moved onto new ways to implement the Agile manifesto that allowed them to throw out the current best practice with something that provides a better fit for their needs, but I worry that people will start taking the messages and throwing away the tools of Agile without understanding why those tools are there, which would be a retrograde step.

David Arno concluded when the conference was over:

And so QCon London 2011 drew to a close for me. The last day had proved disappointing, but the first two days were brilliant and more than made up for that disappointment. All in all, this was a great conference: I’d learned a lot of new things, had finally got the point of software craftsmanship and had gained a list of new blogs to follow from some of the more inspirational speakers. So thank you to the organisers and hopefully I’ll be back next year.

Peter Pilgrim outlined his favorite sessions:

  • Glen Vanderberg’s Clojure on the Web on Friday
  • The second half of Rod Johnson’s Friday morning keynote: Things I Wish I’d Known
  • The NoSQL at NetFlix on Friday morning by Siddarth Anand
  • Musical singing and playing of a certain Roy Osherove: Team Leadership in the Age Agile (Thursday)
  • Kevlin Henney’s talk Putting “Re” into Architecture (Wednesday)
  • Gil Tene of Azul interesting talk about Java without GC Pauses (Wednesday)

Other important events for Peter Pilgrim included:

  • Meeting with the people and having inspired conservations about technology
  • Meeting Wendy Devolder of SkillsMatter and discussing the Functional Exchange
  • The Java Community Panel on Thursday afternoon with Stephen Colebourne, Ben Alex, Mark Little, Jerome Dochez and Patrick Curran.
  • Mark Powell’s evening key note on the Jet Propulsion Lab, which contains many Star Trek references
  • Speaker’s dinner where I tabled with Mark Powell, Glenn Vanderburg and Kevin Henney and had a fantastic conversation about The Mote in God’s Eye and science fiction writers, TV, movies and books
  • The speaker dinner’s at the restaurant Inn The Park
  • Winning an Amazon Kindle 3 Wi-Fi bundle in a FuseSource prize drive!!! (Thanks to Matt Thayer)

Alex Blewitt’s takeaways were:

  • HTML5 and mobile web apps are already here
  • Keeping things simple in order to fail fast saves money long term; but that doesn't mean keep it like that forever
  • Separating clients out from data acquisition services over REST (or similar) API means you can innovate in both clients and services

Twitter feedback on QCon London included:

hugorodgerbrown: First theme emerging at QCon - we are in a post-agile era. #QConLondon

thomleggett: Common theme from #qconlondon: challenging the role of the Architect?

bsiggelkow: And here's a view of Big Ben from the QE II Conf Centre #qcon http://t.co/DKwdRf6

robertoaloi: My list of projects and technologies to look at is growing exponentially. #qconLondon is a great opportunity to learn. #qcon

piether: It's not about which talk I found most interesting, it's about which tool/idea/language I'll try next. #qcon

Conclusion

QCon London was a great success and we are very proud to have been able to offer such a conference. We hope to see you next year! To get announcements for the next QCon London, feel free to sign up for updates on the QCon London homepage. Videos from QCon London will be posted throughout the year for free here on InfoQ.com.

Rate this Article

Adoption
Style

BT