the art of being an agile programmer

24
The art of being an agile programmer

Upload: claudia-rosu

Post on 28-Aug-2014

97 views

Category:

Software


1 download

DESCRIPTION

Programmers know good code. But in the context of today so competitive world of technology, this is not enough. We know this because good code has not saved us from doing overtime or getting bad performance reviews. What are we missing? We are forgetting about agile technical practices. In this presentation I am talking about how at MozaicWorks.com I have learned to use agile and XP technical practices for efficient quality product development.

TRANSCRIPT

Page 1: The art of being an agile programmer

The art of being an agile programmer

Page 2: The art of being an agile programmer

Claudia Rosu

● Software developer at mozaicworks.com● 4 years experience in JEE development● 3 years experience with Agile practices● A girl working with the guys for making software development

better

Page 3: The art of being an agile programmer

Agenda● True story● The problems from the story● Root cause analysis for first problem● Technical practices to help us● Agile programmer at work● Joy of coding!

Page 4: The art of being an agile programmer
Page 5: The art of being an agile programmer

What was wrong?● Bugs discovered one day before ● Incomplete deployment instructions● Incomplete features

Page 6: The art of being an agile programmer

Root cause analysis

Page 7: The art of being an agile programmer
Page 8: The art of being an agile programmer
Page 9: The art of being an agile programmer
Page 10: The art of being an agile programmer

How to attack this nasty situation?How can we know we are doing the right thing?How can we know we are doing the things right?

Agile is about getting feedback as soon as possible in all phases of software development, not just when testing

Page 11: The art of being an agile programmer

Understand

Page 12: The art of being an agile programmer

Start with the User interface

● Build static html user interface according to mockup

● Validated it with the story owner

Page 13: The art of being an agile programmer

Acceptance Tests

● write integration tests as acceptance tests using code and business like language● they will ensure a common understanding of the story ● review them with a tester or/and the story owner● the implemented solution is complete if it passes all acceptance tests

Page 14: The art of being an agile programmer

Acceptance tests

@Testvoid newPrescriptionFormIsOpened() {

userOpesSubEncounter()userClicksOnWritePrescriptionActivity()assertNewPrescriptionFormIsOpened()

}

@Testvoid newPrescriptionIsCreatedWhenSaving() {

userEntersPrescriptionData()userSavesPrescription()assertNewPrescriptionHasBeenCreated()

}

Page 15: The art of being an agile programmer

Design and implement● design using code● write unit tests as a practice to reflect upon the code

● first advantage: you will write the minimal necessary amount of code for the logic that needs to be implemented

● second advantage: you are already testing your code, so less testing after

● Third advantage: you are already receiving feedback that your solution does what it is supposed to do

Page 16: The art of being an agile programmer

Refactoring

● Do this in order to polish the design● Do it step by step● Quite often, I have found bugs during refactoring● Take 30 minutes or 1 hour

to refactor old code also● Include this always while

implementing the story,

not after

Page 17: The art of being an agile programmer

Code review

● another check for bugs or flawed implementation

● a chance to do pair-programming, to learn from others

Page 18: The art of being an agile programmer

Early testing

● Start testing from analysis phase

● Continue during implementation

● Minimize the work not done

Page 19: The art of being an agile programmer

Automated tests

● sit back and watch how your automated tests are doing the manual testing for you

● they will also keep you away from entering regression bugs

Page 20: The art of being an agile programmer

Agile programminganalysis with acceptance tests and mockups

testing with acceptance tests and unit tests

design with unit tests

implementation with code, refactoring and code review

Page 21: The art of being an agile programmer

Agile programmer at work

● Use code to do analysis, design, implementation and testing● Write readable and maintainable code and tests● Strive for simplicity● Work in small and safe increments● Embrace change● Be creative● Communicate: give feedback and ask for feedback

Page 22: The art of being an agile programmer
Page 23: The art of being an agile programmer

[email protected]@claudia_rosu

Page 24: The art of being an agile programmer

Referenceshttp://mozaicworks.com/blog/5-tips-to-avoid-release-hell-as-scrum-master/

http://mozaicworks.com/blog/a-developer-in-test/

http://www.infoq.com/articles/atdd-from-the-trenches

http://xprogramming.com/what-is-extreme-programming/