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.
- 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)
Software Stragegy Ltd,
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?
- Product (maintenance)
- Enhancements to something that exists
- Team exists
- Thing exists
- 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?
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é
- Requirements document
- Shopping List
- 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é
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!
- 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
- 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
New morning, old tricks. Today we will start with a excellent keynote:
Businesses are thinking more about cost, speed and efficiency than happiness #accu2011 @mojombo
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)
- 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:
- Here are the projects resided and organized
- can be switched
- Organizes files around one build targe
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.
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
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
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”
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:
- Remove features
- Organize features
- Hide features
- 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
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.