Slide 1

Slide 1 text

Coding for a Living vs Coding for a Mark @irinatsyganok [email protected]

Slide 2

Slide 2 text

Background Test Automation User Experience Web Development Java Development

Slide 3

Slide 3 text

Agenda The culture. Agile Manifesto Working together. eXtreme Programming Building software the eXtreme Way Shipping to production XP at YNAP XP in the context of academia The ideal YNAP developer

Slide 4

Slide 4 text

The culture. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.

Slide 5

Slide 5 text

The culture. Agile Manifesto Individuals and interactions over processes and tools

Slide 6

Slide 6 text

The culture. Agile Manifesto Working software over comprehensive documentation

Slide 7

Slide 7 text

The culture. Agile Manifesto Customer collaboration over contract negotiation

Slide 8

Slide 8 text

The culture. Agile Manifesto Responding to change over following a plan

Slide 9

Slide 9 text

Working together. eXtreme Programming [XP]

Slide 10

Slide 10 text

Working together. eXtreme Programming Adaptability over Predictability Lower the cost of change A mechanism for social change

Slide 11

Slide 11 text

Communication Respect Simplicity Courage Feedback Working together. Values of XP

Slide 12

Slide 12 text

Building software. XP Practices Planning Iterations iteration planning frequent, small releases “Without planning, we are individuals with haphazard connections and effectiveness. We are a team when we plan and work in harmony” - Kent Beck

Slide 13

Slide 13 text

Building software. XP Practices Managing Daily stand up Open working space Sustainable pace Move around Fix XP when it breaks “Follow XP rules to start with, but do not hesitate to change what does not work” - extremeprogramming.org

Slide 14

Slide 14 text

Building software. XP Practices “The hardest part of understanding and adopting XP is system metaphor”- Avraham Poupko, Architect Manager @Cisco Designing Simplicity System metaphor No functionality is added early Refactor, refactor, refactor

Slide 15

Slide 15 text

Building software. XP Practices Testing Unit Functional Acceptance Sanity Performance “There are two ways to write error-free programs; only the third works” - Alan J Perils

Slide 16

Slide 16 text

Building software. XP Practices “Well, let’s just code it up and see what happens. If it doesn’t work, we’ll change it” - Ward Cunningham Coding Customer is always available Write unit tests first Pair-program all production code Integrate often Use collective ownership

Slide 17

Slide 17 text

Shipping to production -  Release stand up -  Continuous Integration [CI] -  Continuous Deployment [CD] -  Small, frequent releases -  Performance monitoring and benchmarking

Slide 18

Slide 18 text

XP at NAP ‘In theory, theory and practice are the same. In practice, they are not’- Anonymous

Slide 19

Slide 19 text

XP at NAP Frequent, small releases Open space Sustainable pace Move around Pair-programming

Slide 20

Slide 20 text

XP at NAP Customer is always available Iteration planning Testing strategy Move around Pair-programming System metaphor

Slide 21

Slide 21 text

XP in the context of academia

Slide 22

Slide 22 text

The ideal YNAP developer Curious Embraces change Friendly Drives own development Collaborative Honest Polite Responsible Open-minded Proud

Slide 23

Slide 23 text

Final Thoughts. “To me, programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge” - Grace Hopper