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

How Do You Build Software? Software Engineering Practices of an Agile Developer

How Do You Build Software? Software Engineering Practices of an Agile Developer

These are the slides of my latest talk about agile software engineering practices in Etohum's Software Developers Day. In my talk, I am trying to figure out how to build software by obeying the rules of the nature of software development.

Lemi Orhan Ergin

October 11, 2013
Tweet

More Decks by Lemi Orhan Ergin

Other Decks in Programming

Transcript

  1. Software engineering practices of an agile developer how do you

    build Lemİ Orhan ERGİN Principal Software Engineer @ Sony @lemiorhan agilistanbul.com software @lemiorhan ?
  2. Lemİ Orhan Ergİn Principal Software Engineer at Sony has worked

    in Tüsside, BYM, GittiGidiyor/eBay and Sony as lead developer, technical leader, technical coordinator and scrum master got CSM certificate from Jim Coplien year as Scrum Master sprints in 4 years as team member and scrum master experienced in agile transformation and building agile culture in teams & organizations 2001 2013 2009 1 56 agile CSM, PSM1 0.5M total number of views of his presentations
  3. missing deadlines extra costs never used features unknown risks unmotivated

    employees bugs, failures, errors legacy systems incompetent developers micro managing managers huge technical debts
  4. are failing Software projects “50% of IT projects go into

    trash in Turkey” Agile Turkey mercer consulting “When the real costs are added up, 80% of the technology projects costs more than they return”
  5. The ultimate goal is customer satisfaction 1 Customers have rights

    to get software developed with the features they need in a fast way of course, you might not satisfy your customer at this level. that’s fine.
  6. THE REALITY IN SOFTWARE DEVELOPMENT requirements requirements requirements requirements DESIGN

    DESIGN DESIGN DESIGN DESIGN IMPLEMENTATION IMPLEMENTATION IMPLEMENTATION IMPLEMENTATION VERIFICATION VERIFICATION VERIFICATION VERIFICATION VERIFICATION VERIFICATION MAINTENANCE MAINTENANCE MAINTENANCE MAINTENANCE MAINTENANCE IGN
  7. Agile development is not only about project planning Project planning

    is just a part of agile software development
  8. Agile software development Agile planning and management Software engineering practices

    Customer satisfaction Teamwork Motivation this is the topic we are interested in
  9. Define your values and let everyone know Educate everyone up-front

    Define your team’s norms and values the manifesto
  10. Build your team one team per product, not per project

    Cross functional teams swat team sit together Cultivate collaboration culture
  11. Development that will never be the same again use git

    code branching code / Peer review Pair Programming Clean code principles collective ownership build as if it’s open source refactoring
  12. Start the project and follow these basic practices Minimum viable

    product Emergent simple design short up-front design Agile Documenting
  13. testing strategy you can never succeed without it TDD ATDD

    BDD Testing legacy systems A/B Testing chaos monkey MULTI LAYER TESTING design?
  14. get feedback as soon as possible, as much as possible

    code coverage continuous ıntegration continuous build code analysis 10 min build evergreen build status
  15. continuous delivery being always ready to go-live snapshots daily Builds

    continuous delivery central package repository
  16. release & deploy it should be smooth and error-prune short

    frequent releases continuous deployment fast bootup devops enterprise environments cloud compatible
  17. and adabt to change in any circumstances Building robust, stable,

    flexible, extensible, high quality software with teams having highly-competent, motivated people in a fast and efficient way
  18. No methodology is as effective as being passionate and disciplined

    “ ” AltuĞ AlTINTAŞ Lean-Kanban Consultant
  19. http://www.flickr.com/photos/aaronvandike/3221087856 http://www.flickr.com/photos/frozenhaddock/3948223272 http://www.flickr.com/photos/penguincakes/2930270559 http://www.flickr.com/photos/44898314@N06/8310699806 http://www.flickr.com/photos/jymloke/4476177332 http://www.flickr.com/photos/bowmanitis/8634625952 http://www.flickr.com/photos/sarah_rara/382542210 http://www.flickr.com/photos/hansoete/4965196 http://www.flickr.com/photos/x-ray_delta_one/3812795111 http://www.flickr.com/photos/vikhoa/8823977016

    http://www.flickr.com/photos/cattardbezzina/4106668524 http://www.flickr.com/photos/dalboz17/4126689055 http://www.flickr.com/photos/vstrash/2847241785 http://www.flickr.com/photos/aloha75/7299416028 http://www.flickr.com/photos/83905817@N08/7676576180 http://www.flickr.com/photos/dexflu/5330502784 http://www.10wallpaper.com/down/ Leafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaper.html http://www.flickr.com/photos/nicksee/5152087020 http://www.flickr.com/photos/mnsc/2768391365
  20. Lemİ orhan ergİn [email protected] @lemiorhan @lemiorhan agilistanbul.com @lemiorhan LINKEDIN TWITTER

    SLIDESHARE BLOG Principal Software Engineer @ Sony Founder & Author @ agilistanbul.com flyingtomoon.com