Faced with management that do not care about "being agile" what can a single developer do? Quite a lot!
Every developer has the power to improve the organization he works in in small iterative steps – and I can show you how.
If you want to make the change and don't know where to start – look no further, in this session I'll share my experience and show a few tips and tricks I learnt. As well as discuss the do and don'ts that can make all the.
- How to be agile developer in a waterfall company.
- Influencing people without formal authority.
- Using the right practices that makes the difference
- How to avoid alienating people
- Discovering your allies
- Know when to fight and when to "retreat" and cut your losses
- Making a change without disrupting the daily routine
- What being an agile evangelist is all about
10. Analysis
• Took two days to fix 40% of tests and make all of the
test run
• Find what are the main issues – and focus on them
o Not readable
o Using logic inside test
o Testing too much
o Hand rolled mocks
o Scenarios hiding as unit tests
o Highly coupled code
15. Then came mocking
• Hard to explain at the beginning
• Instead show them!
o Free tools – low cost upfront
o Commercial products
• Get rid of existing hand-rolled mocks
16. And excuses
• “I didn’t have enough time so I didn’t write a test”
• Crisis mode
• I cannot test it – so I won’t…
• There’s no need to test everything
• It’s much better to have one big test
• Remember not to be discouraged
17. Today
• More than 3000 tests
• Good code coverage
• Most features are developed using TDD
• CI server run all tests on commit
• Change code without fear
29. Effective Code reviews
• Advise don’t force
• Review the code not the person
• It’s ok to discuss the good things as well
• You should get reviewed as well!
• After a while team members can review each other
30. Have the right attitude
• Be positive
• Don’t tell them what to so - suggest improvements
• Don’t force – convince
• Be ready to change if proven wrong
• Don’t be “that guy”
31. Communicate!
• Email
• Phone call
• Face to face
• Presentation
• Coder reviews
• Pair programming
• Daily meetings
34. Change is iterative
• Hard to perform big changes overnight
• Small incremental changes
• Teach the team about the “boy scout rule”.
35. Be pragmatic!
• Every action should have a purpose
• If it doesn’t work – change it!
• Names are not important – just what you do
• Practices can be adapted for the team
• Don’t be a strict task master
Know where to draw the line
39. The end?
• TDD & unit tests
• CI server
• Code reviews before commit
• Automatic deployment
• Task board and iterations
• Better estimations
• Faster time to deploy