ACCU 2011

ACCU2011 http://bit.ly/e1VQVD:

Day4:

Another interesting keynote starts this morning.  

Good Enough is the enemy of the Good (Nat Pryce, Steve Freeman)

Steve Freeman: good software projects are like playing bass trombone #accu2011

Recommended reading, “Better” by Atul Gawande. Steve is saying that if you never have experienced it, its hard to know how it works. If people stagnate and do not learn better practices it kills the ability to improve in the long run.

lisacrispin lisacrispin

This is an interesting way to look at the issue that both @marick and @gerardmes have graphed on ROI of TDD @sf105 #accu2011
Why do we care? We are pragmatic about testing/refactoring but we are not doing it too much. People are not stupid, they just do not know that they could be better. What is troubling is not just being average but settling for it.
  • Arriving at meaningful solutions is inevitablly slow and difficult process 
  • Nonetheless, what I saw was: better is possible. It does not take a genius
  • It takes dilligence. It takes moral clarity. It takes ingenuity. And above all it takes a willingness to try.

Farewell to Disks: Efficient Processing of Obstinate Data (Diomidis Spinellis)

The Requirements 10 step (Allan Kelly)

http://allakelly.net
Twitter: allankellynet

Software Stragegy Ltd,
http://softwarestrategy.co.uk

How do you do requirements in Agile? USER STORIES! -> Gee, I thought everyone knew that….But there`s something more to that.
As a <Role> I can <Action> So That <Reason>

  • Where`s the business value?
  • What are reasonable actions and reasons?
  • And what about stakeholders and Customers?
  • Aren´t personas in here somewhere?
  • Where to Roles come from?
Let`s take a step back. In the beginning…. There is work to do
  • Product (maintenance)
    • Enhancements to something that exists
    • Team exists
    • Thing exists
  • Project
    • New Thing
    • Start&End dates
    • New Team
  • –>Salami Slice

You do not know what you are doing when you start ->Goal Driven Project

Salami Agile -Interface Agile team to traditional organization

  • LImited Agile
  • Limited Change risk
  • LImited benfits

Goal Directed Projects

  • Business case sets out objective. Not a shipping list of features.
  • How goal is achieved is part of the work. Research, experimentation
  • Governance based on: progress against goal and future potential

Goal Directed: Start with Output

  • Only outputs have value

Agile 10 Step

1. Objective  -From above: What is the goal? Why are we doing this?
2. Stakeholders -Who are the stakeholders? What is success to them?
3. Vision -Team`s Vision for the solution
4. Roles -Who will use the system?
5. Personas -Key Personas
6. User Stories
7. Acceptance Tests -How do we know we are done?
8. Development
9. Delivery
10. Value Check -Close the loop: Progress against objective, value delivered?, should we continue?

Stakeholders->Roles->Personas  “Who are the customers? How they are segmented?”

ysb33r Schalk Cronjé

Objective – Why?
Is NOT….
  • Requirements document
  • Shopping List
  • Technical

Could be:

  • mission statement
  • Marketing Brief
  • Market opportunity assessment
  • Project initiation document

Put a man on the moon****I have a Dream***Beat Xerox***Encircle Caterpillar

Objective is a reason to start. Start thinking, gather resources. It is also a reason to stop. Measure of success. How do you know you are done? ->Measure Progress Against Objective

Stakeholders. Any person or organizational group with an interest in, or ability to affect, the system of its environment.
Human or other legal Entity playing a system role and thereby having a valid interes in the development of the system  or product
ysb33r
Schalk Cronjé

“You don’t get to choose the stakeholders. The stakeholders invite themselves to the party” – @allankellynet #accu2011

Internal and External (Customers, Regulators)
Stakeholders have goals too. They might be aligned with your project (or might be little different). Success is measured in the terms of stakeholders goals.

All Customers are not equal….Segment!

Vision

  • How are you going to meet the objective?
  • The answer to the stakeholders needs

Value -did we make a difference?

  • Delivery technology “fix”
    But fixes the wrong problem
    Fix technology
  • Deliver Great SW
    But nobody uses it
  • Deliver what was asked for

QUESTION: Do you:

  • Adequately identify and quantify the benefits of IT projects
  • Overstate benefits in order to obtain funding?
  • Adequately review and evaluate completed projecs?

Stakeholders define value

  • Benefit is value delivered to stakeholders. So do you need to know who the stakeholders are to determine value
  • How do you measure benefit? Ask the stakeholders!

Business Practices that enhance Productivity. (Source Wired for Innovation)

Getting the most from IT requires:.
1. Move from analogue to digital processess
2. Open information access
3. Empower the employees
4. Use performance-based incentives
5. Invest in corporate culture
6. Recruite the right people
7. Invest in human capital

Day3:

New morning, old tricks. Today we will start with a excellent keynote:

Optimizing for Happiness (Tom Preston-Werner) http://yfrog.com/h0nyegxj

lisacrispin Oxford is optimized 4 happiness – you have a pub every block! #accu2011 keynote Tom Preston-Warner of GitHub
Businesses are thinking more about cost, speed and efficiency than happiness #accu2011 @mojombo

kevj121 Kevin Johnston If you like where you are good things should happen
Be more careful on where we put our money or cut our costs, consider intrinsic vs extrinsic motivator.
GitHub also offers unmetered vacations. It’s about responsibility, trust, hiring ppl who are adults. #accu2011 @mojombo (via @lisacrispin)
Another great keynote! One comment puts this into context: someone hoped that there would be managers listening to this one, otherwise all developers here are jealous for the guys working in GitHub. Now continuing with:

Mastering Git Basics (Tom Preston-Werner)

Git-Forget everything you
know about version control

Branches are just pointers to commits. Actually you may bookmark them. It`s easiest to think of the working directory as corresponding to a branch. As you commit, the branch moves with you.

Agile C++ through Advanced IDE Features (Peter Sommerlad)

Outline:

  • Why an IDE for C++ development
  • Basic Eclipse CDT usasge
  • Useful Plug-Ins for C++ development with CDT
  • Code Analysis: CODAN
  • Sconsolidator for Scons users
  • Agility through CUTE Unit Testing, Refactoring and Feedback
  • Future Outlook

Brief installation of Eclipse CDT http://www.eclipse.org/cdt/downloads.php for gcc Wascana
CDT bad reputation, early versions were almost unusable, Today it works. Key Concepts:

  • Workspace
    • Here are the projects resided and organized
    • can be switched
  • Project
    • Organizes files around one build targe
    • Perspective
    • view

Facilitation Patterns and Antipatterns (Steven List)

This session was very inspiring and gave me energy. Steven is a excellent speare and get`s his audience to participate well into discussion. I enjoyed the FUN part, games most.

Lightning talks

Olve Maudal – Technical debt is good

Polishing and shining developers baby, the product. Cost of techical depth is zero if you are not forced to change the code. Four quadrants of technical dept. “We do not have time to fix this” a familiar sentence.

Allan Kelly – Dialogue Sheet Retrospectives

Intention is to get people to speak with sheet made by Allan. No facilitator needed. karmolis
Kari Eerola  Technical debt quadrants mentioned in @olvemaudal ‘s lightning talk: http://bit.ly/KiCRH #accu2011

allankellynet
allan kelly

  #accu2011 Dialogue Sheets are at http://Ww.dialoguesheets.com

Martin Winkler – There is no Base

Didier Verna – Letting Go of Control

Tom Gilb – User Stories: Why tehy might be too light

Chris Oldwood – The Ups and Downs of being an ACCU member

Pete Goodliffe – Manyfestos

Peter Pilgrim – We are going to live forever

Roger Orr – Errors are Evil

Mark Dalgarno – Optimizing for Unhappiness

Day2:

Keynote: Advanced simplicity (Giles Colborne) http://twitpic.com/4kac3b

Simplicity=Extreme Usability. Web usability is a combination of effectiveness, satisfaction  and efficiency. Efficiency is actually perceived efficiency. “Simplicity is the ultimate sophistication” Leonardo DaVinci. What using it feels like – what it looks like – how it is made. petegoodliffe Giles Colborne on “advanced simplicity” at #accu2011 looking for “the simplicity of genius”

  • Mainstreamer
  • Expert

Under a pressure even a trained expert will crack down. Here we had an example from football when England lost against Germany on penalties: Pearce -an expert under pressure http://bit.ly/eSn6o5
Agtheo Matt Oakley Currently redesigning a DVD remote for simplicity as an exercise at #accu2011. Using telepathy appears to be the optimum solution.
samwessel
Sam Wessel
Users prefer mobile versions of web sites because they tend to be simpler, exclude marketing & SEO nonsense. Giles Colborne at #accu2011

Even mainstreamers need to have a feeling of control. Example: elevator from Apple`s Japan office without any buttons to control the elevator, feeling of control lost as there is no way to do it!  Here are generally categorized ways of simplifying things:

  1. Remove features
  2. Organize features
  3. Hide features
  4. Displace features

All in all this keynote was great, opening up thinking how to address advanced simplicity. Makes me think a lot.

Agile Software Development for Distributed Teams (Jutta Eckstein)

Jutta opens up with dealing some (mis-)conceptions (like productivity gain of 600% or offshore is an excellent way to reduce cost), just a great start! Reasons for global development include: talent, market advantage, proximity to clients. Global settings vary:

  • several development sites involved
  • often larger projects
  • a team can be dispersed across several sites
  • customer can be far away
  • different companies can be involved

Agility is based on values and principles. Jutta lists the principles, which are quite often “forgotten”.  First comment from audience was on challenge building on trust and confidence. After some discussion we ended up perfectly into self-organizing teams 🙂

It is impossible to deliver business value on a frequent pace. Goal is to have dedicated feature teams that do not have dependencies (and are co-located). What if feature requires 6 months with 10 teams? An idea from Jutta: dispersed subteams where cross-team communication is enabled by co-location and inner team communication is enforced by common goal.
athought
Steven (Doc) List
Jutta Eckstein: for multiple locations, have multiple product owners, plus “elite” product owner as lead #accu2011 #distributedagile

Ensuring conceptual Integrity: depending on technology and project size. One architech per feature team. Technical service team(s):  architecture is a service. My opinion: architectural competence is one of the key competencies inside a cross-functional team (like function tester or DSP developer).

Trust needs Touch: face-to-face should always be preferred. Expatriates and other f-2-f options create understanding (rotating people over sites). Communication costs, but: “you will pay the costs of f-2-f meeting, regardless of whether you have one or not” (Ken Pugh). Trust is based on Mutual Respect “Trust always goes ahead: By giving trust you`re gaining trust” (Tom DeMarco).

  • Different meeting locations, change host, who needs to travel
  • Pay attention to vocabulary (nightly build, remote site, US and THEM)

Dispersed Daily Synchonization

  • Two options:
    *Collocated people meet in person, sites are connected via phone
    *Connect via the highest conjointly available bandwith
  • Different Times
    *Make it comfortable occasionally for everyone
  • Record Impediments
    *On accessible prominent place

Different sites need to be kept in touch. This ensures communication, management/communication by flying around. Facilitation is needed on communication and different key people need to travel on different sites.
Cultural differencies: common difficulties (realistic planning, taking responsibility, stating problems, giving honest feedback). You have to deal with different cultures everywhere. Bridging Cultureal differences, focus on similarities rather than differencies -> create a joint project culture. Retrospectives help to create a community, use them! Regular, make them visual, staged retrospectives (feature team, project, site,…).

Social Connections: How to get there when travelling, what to do there, sharing of nice stuff btw people. Normal social connections also outside the office hours.

Deliver Working Software Frequently
and regularly reflect on how to
become more effective

About Integration and Build: Before spreading to multiple sites make sure that everything works on one site.

Property-Based Testing, Race Conditions, and QuickCheck (John Hughes)

John is in the middle of showing us how to use QuickCheck for race condition situation using Erlang. I wonder if property-based testing is the next silver bullet? Property based development is quick, simple properties find bugs. Using model helps to show test outcomes. Question: how would this approach fit into Agile TDD development with proper CI where system tests are executed continuosly together with properties/unit tests?

Now real-life example from Volvo cars, interesting. Another example: Klarna (invoicing sevices for web shops). Application written in Erlang, Mnesia, a distributed DB. Something fails every month or two. Sounds like a race condition….

Defensive Programming Done Right (John Lakos)

What`s the problem? Large-Scale SW is broken unless it is tested properly. Logical vs. Physical Design.

Keynote ‘On Our Ability To Do Much – A Retrospective of Post-Modern Programming’ by Michael Weathers

Notes on Postmodern programming

In our time, COBOL is Ruby and Fortran is Python.
olvemaudal
Ruby community has this great advantage. Ruby coders tend to be… nice, they want to help each other. @mfeathers at #accu2011

ewanmilne Ewan Milne
#accu2011 the orthodontal model of development in C++ (from Michael Feathers) http://twitpic.com/4kfgg6

Day1:

Pre-Conference tutorials. We attended both on the A Day of Deliberate Practice (Jon Jagger, Kevlin Henney) and Lisa Crispins Cover All Your Testing Bases with the Agile Testing Quadrants.

Here are some remarks from Lisa`s session.

Here are the notes from Jon`s and Kevlin`s tutorial.

Leave a comment