Archive for the 'Agile Software Devevelopment' Category

QCon London 2008

I’ve received an email, from Floyd Marinescu, announcing this “mega” conference. They’ll cover all-about-software-development: agile, DSLs, SOA, SaaS, Cloud computing (I guess grid computing related), .NET, Java, Ruby, Rich Client, Scrum, XP, F#, REST…. It will be the DisneyWorld of all software developers! ;-)

Here’s the announce:

You are receiving this email because you opted-in to receive notifications related to QCon London, from the QCon London website. QCon London is taking place in just 8 weeks, March 12-14 and the conference editorial is nearing final. Since our last update in December, a number of important changes have been made to the conference:

  • Google, Yahoo!, Amazon, Salesforce.com now presenting in the Cloud Computing Track
  • MySpace.com, eBay, Magus confirmed in the Architectures you’ve always wondered about Track
  • XP founder Kent Beck, and Analysis Patterns & Refactoring Author Martin Fowler keynoting
  • Banking Architectures Track adds sessions from Merrill, Betfair, Credit Suisse
  • GoF Patterns Author & Eclipse Architect Erich Gamma presenting
  • and much more…

QCon is an enterprise software development conference for team leads, architects, and project managers covering Architecture & Design, Java, .NET, Ruby, SOA, Agile methodologies and other timely topics such as DSLs, cloud computing, and bank/finance architectures. Last year’s QCon London had almost 500 registrants, and was covered very heavily in blog space see QCon London blogger coverage & key take aways).  

The track themes for QCon London & track hosts are as follows:
Architectures You’ve Always Wondered About -  Hosted by Redmonk’s James Governor
The last 2 QCon’s featured: Amazon, Linked-In, Yahoo!, eBay, Second Life, and Orbitz architecture case studies
Domain Specific Languages in Practice - Hosted by ThoughtWorks’ Neal Ford
Takes DSLs to the next level by practical applications and tools that are useful today.
Effective Design
Translate a set of abstract ideas into working and functional software in an effective way.
Architectures in Agile - Hosted by POSA author Kevlin Henney
How to integrate the trade-offs related to aspects such as performance, security, scalability and modifiability into an agile process
Banking: Complex high volume/low latency architectures  - Hosted by John Davies & Alexis Richardson
The latest innovations as well as time-proven best practices that architects of banking & finance systems need to know.
The Cloud as the New Middleware Platform - Hosted by EAI Patterns Author Gregor Hohpe
Is the internet becoming the computer?
Implementing Scrum and XP- Hosted by Patterns Almanac author Linda Rising
Leading practitioners will present and explain how Scrum and XP are implemented in the most effective way.
Java Emerging Technologies - Hosted by Java Concurrency Author/spec lead Brian Goetz
The previous QCon covered: JRuby, Grails, Server-side OSGi, DSL development, Batch Processing
.NET in the Enterprise - Hosted by Matt Deacon
.NET has brought Microsoft’s platforms into many business-critical applications, back-office, and server-side solutions.
Programming Languages of Tomorrow
Erlang, F#,, Intentional and Scala. How can we best leverage them in our next software project?
SOA, REST and the Web - Hosted by InfoQ’s Lead SOA Editor Stefan Tilkov
REST & SOA, Internet Scale Integration, REST & WS Myths
Browser & Emerging Rich Client Technologies - Hosted by InfoQ lead RIA/Java editor Scott Delap
Silverlight vs. JavaFX/Consumer JRE vs. Adobe Flex/AIR vs. Google’s Ajax RIA stack
The Rise of Ruby
Learn how to best take advantage of what Ruby has to offer
The first two QCon were well received, below are some comments from bloggers who attended our most recent QCon:

  • David Forbes - Exhilirated after gorging on brain candy this week, I have a moment to reflect on what just happened. QCon was the right place to be. I can’t imagine where else I would have rather been. If I had the week to do again, I would probably march right down to the Westin…again.
  • Denis Bregeon - I was very happy with it. Most of the talks tickled my imagination and that is the primary thing I was looking for. Many others gave me details on more technical subjects that I wanted to learn about.
  • Srini Penchikala - I was at the QCon conference in San Francisco last week. It was a great experience to be there. I learned a lot not only from the presentation speakers and panelists but also from the attendees who came from different countries (England, Syria, Australia to name a few) and companies.
  • Alex Olaru - Great conference: excellent speakers, very relevant topics, just enough product pushing without it becoming annoying. All in all a conference I would highly recommend to any architect or project manager.
  • Ola Bini - Last week I attended QCon San Francisco, a conference organized by InfoQ and Trifork (the company behind JAOO). It must admit that I was very positively surprised. I had expected it to be good, but I was blown away by the quality of most presentations.
  • Martin van Vliet - All in all, this was a good conference and more than enough reason to look forward to the next QCon, next year in London.
  • Pete Lacey - A wonderful conference made better by being able to meet many people face to face for the first time…

See also past QCon/JAOO talks available online on InfoQ:

Registration for the 3 day conference is 1180£ until Feb 22nd, and 1220£ after March 11th. The conference will be held at the Queen Elizabeth II Center, like last year.  Join us at QCon London!

Angel “Java” Lopez
http://www.ajlopez.com/en

Lessons learnt from an agile year

Recently, my team shipped a product, working at Southworks, after hard work. There were interesting and intense days, and now, I want to write down some lessons learnt from that project, and from others works, during 2007 (and part of 2006).

Architecture decisions must be taken by only one person. This is a lesson that not all my coworkers share, but for me, it’s clear that too many hands on that decisions, could produce a suboptimal result. The member that decides on architecture must hear the other members opinions, actively asking them about problems to resolve, but the final cut on architecture must be made by only one person. I’m skeptic on emergent design, at least on some kind of projects that involves new challenges.

You must be aware of the status of the whole project. As a team member, you must not forget the full picture. It’s your responsability (and the responsability of each member) to keep an updated vision of the advance (or lack of advance) of each committed final deliverable, not only yours, but the other members too.

Don’t hesitate to rise a red flag. At any moment, if you feel that something is out of track, or if you see a potential problem, you must rise hands, and communicate clearly and firmly that problem to the rest of the team. If they were a problem, don’t forget call Houston.

Pursue visibility of what you are doing, and demand the same from the rest of the team.

Practice your communication skills. Give presentations about the advance of the project, lessons learnt, to your peers. This activity increase the team understanding of the project. If you understand something, you can explain it. This is a test of your grasp of the project ideas.

Write down vision and mission for the project from the very beginning. You can have an internal and external mission and vision, but your team must write down those items, and must have a clear understanding of them.

Minimize risk. You must resolve the riskiest part of the project, or be early aware of where risks could rise, and manage to minimize its dangereous influence. Write down proof of concept apps, or take time to spike on ways of doing things, but don’t hesitate to assign resources on those risk management activities.

Every deliverable must be important to you. If you are a coder, don’t forget documentation. If you are a writer, don’t miss the graphic appearance. The process should produce a whole product. You and your team are in charge of the full final result.

Don’t live with broken window. It’s a concept I learnt from “The pragmatic programmer” book. It means that you must not leave open little holes, incomplete work, hand-wired implementation. You must proud of the final product. Any quick hack must be avoided, as it usually spread its influence, as a rotten apple. More on the concept at:

Don’t live with broken window, a conversation with Andy Hunt and Dave Thomas

Get the right people in the team. A team must be composed of different personalities, with complementary skills. If they all were coders, nothing of sustained value could be produced.

Write down a glossary. This is a task that is frequently forgotten. If you don’t have a glossary, explaining the main concepts involved in the project, your team won’t grasp the key ideas and problems that compose the solution to build. The lack of glossary could lead to miscommunication and confusion, inside the team, and in its relation to customer and stakeholders. 

Draw a conceptual map of the whole project, and discuss it with the team. Use an initial meeting to talk about the full model, vision of the project.

Write down a clear list of the final deliverables to produce. Specify a clear contract with the customer, setting his/her acceptance criteria of those deliverables.

Talk the customer language. This could be related to the glossary item. You must understand and use the customer language. You must frequently communicate with her/him, and take account of his/her necessities and problems to resolve.

I didn’t follow all these recommendation all the time, and then, I suffered the consequences of not adhere to this list.

I can think of a few more lessons learnt, but the above list is good enough for now.

Angel “Java” Lopez
http://www.ajlopez.com/en

Agile Methodogies

The past 22 June, Martin Salías gave an excellent conference on agile methodologies, at the University of El Salvador, Buenos Aires, organized here by the Club de Programadores. I have taken some notes, that I will publish and comment when I get some time. Today I want to write down a list of agile methodologies and its connections, according to Martin´s lecture:

Crystal

of Alistair Cockburn

http://alistair.cockburn.us

Cockburn is one of the more philosophical founders of the agile stuff. Crystal aims at small groups.

Feature Driven Development 

www.featuredrivendevelopment.com 

It aims to think the things on the basis of characteristic, it decompose a problem in features.

Adaptive Software Development 

www.adaptivesd.com 

It puts the emphasis in the short iteration.

Scrum

www.controlchaos.com

It is a methodology of control of projects that can accomodate any of the others ….. A people group said: “this is fantastic… agile is terrific…. but as it costs to put this in the head of the managers”. They generate products to calm that anxiety.

Agile Modeling 

www.agilemodeling.com 

Invention of Scott Ambler, he is a guy that models much, he dominates several subjects, and he invented this method: “I recognize that there is value in the UML layout, but all that becomes too heavy, we use it, but using paper and pencil, we remove the formal question”. Let us return to which really the diagram must contribute.   

Extreme Programming

www.ExtremeProgramming.com 

Most well-known, Beck´s method.

Angel “Java” Lopez

http://www.ajlopez.com/