Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Coding for a Living vs Coding for a Mark

Coding for a Living vs Coding for a Mark

This talk was given to the first year students at the University of Surrey. The main objective was to introduce them to the culture of the tech industry, and the main principles of eXtreme Programming.
The talk was designed to serve as an industry report of a kind, drawing on real life examples of using XP practices both successfully, and not.

Irina Tsyganok

May 05, 2016
Tweet

More Decks by Irina Tsyganok

Other Decks in Programming

Transcript

  1. 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
  2. The culture. Agile Manifesto We are uncovering better ways of

    developing software by doing it and helping others do it.
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. Shipping to production -  Release stand up -  Continuous Integration

    [CI] -  Continuous Deployment [CD] -  Small, frequent releases -  Performance monitoring and benchmarking
  9. XP at NAP ‘In theory, theory and practice are the

    same. In practice, they are not’- Anonymous
  10. XP at NAP Customer is always available Iteration planning Testing

    strategy Move around Pair-programming System metaphor
  11. The ideal YNAP developer Curious Embraces change Friendly Drives own

    development Collaborative Honest Polite Responsible Open-minded Proud
  12. 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