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

GMO'less Software Development Practices

GMO'less Software Development Practices

This is the English version of my talk about agile software development practices at Agile Talks seminars in Ankara, Turkey. I tried to focus on the nature of software development and figure out the development practices that let us build software in natural way.

Lemi Orhan Ergin

June 23, 2013
Tweet

More Decks by Lemi Orhan Ergin

Other Decks in Programming

Transcript

  1. software development practices GMO { the art of developing software

    in a natural way } Lemİ Orhan ERGİN Principal Software Engineer @ Sony @lemiorhan ‘LESS
  2. Lemİ Orhan Ergİn Principal Software Engineer in Sony has worked

    in Tüsside, BYM, GittiGidiyor/eBay and Sony as developer, team leader, technical coordinator and scrum master got CSM certificate from Jim Coplien year as Scrum Master sprints and 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 @lemiorhan
  3. We won’t make it, we need extra time I know

    it’s impossible, but we’ve already promised We have to cancel the project before going live We are facing critical bugs in production We have to re-write the project from scratch No one knows when the project will be finished It was obvious that the project was going to fail Everything was going fine, but what the ... “ ” Project management / Team
  4. It’s very expensive to add these features One guy left

    and the project failed People in development team is always changing Technology and design of the project are too old I fixed a bug and new ones appeared No one has touched some modules for years I cannot add new features while fixing bugs all day We are doing same manual tests again and again “ ” Software Developer
  5. B2B ecommerce site for the mould industry IBM based product

    management system Product management system for Europe Document management system for military Marketing sites for European countries Common toolbar for European countries Backend services, components and APIs Common data services for Europe Common syndication services for Europe Core data services for US and Canada Vertical ecommerce module Each one is at least 6 months projects
  6. B2B ecommerce site for the mould industry IBM based product

    management system Product management system for Europe Document management system for military Marketing sites for European countries Common toolbar for European countries Backend services, components and APIs Common data services for Europe Common syndication services for Europe Core data services for US and Canada Vertical ecommerce module 6 of them cancelled before go-live closed after a while will be closed soon %55
  7. 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”
  8. 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.
  9. Agile development is not only about project planning Project planning

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

    Customer satisfaction Teamwork Motivation this is the topic we are interested in
  11. working on the correct design with newest and best technologies

    in a short time We aim to complete the projects by
  12. See your developers not as resources, but talents (No headcount

    calculation) Work with people who loves to share knowledge and experiences (Collaborative & Volunteer) Educate people about agile practices and the philosophy behind (Up-Front Education) Build your team with passionate and disciplined developers (Passionate Developer) “Don’t pick the right technology, pick the one that’s cheapest to change” by chris matts Before the start Developer Business Analyst Tester Product Owner
  13. Developer Make teams with cross functional people (Cross functional teams)

    Sit close to your team mates (Sitting CLOSE) Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization) Avoid doing big fat up-front design (Short Up-Front Design) Document enough, don’t go deep into details (Agile Documentation) Let’s start the project Business Analyst Tester
  14. Keep your code in a version control system (Version Control

    System) Program in pairs (Pair Programming) Review others’ code (Code/Peer Review) Develop each feature in a new branch (Code Branching) Follow clean code principles (Clean Code Principles) Do code katas to improve your technical capabilities (Code Kata) Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns) Develop from customers’ point of view by BDD (Behaviour Driven Development) Develop from developers’ point of view by TDD (Test Driven Development) Software development and social coding Version Control System Developer Business Analyst Tester
  15. Pull others’ commits and integrate with yours at least once

    a day (Continuous Integration) Let the existing tests run automatically and get feedback about the failed ones (Continuous Build) Detect untested areas in your code and improve the code coverage (Code Coverage) Don’t afraid of deleting code, improve your design with the help of written tests (Refactoring) Full feedback loop of continous integration should take at most 10 minutes (10 min build) Continuous Integration Messaging Services (emails, messages) Version Control System Continuous Deployment Developer Business Analyst Tester
  16. Prepare a working copy of your software available in your

    CVS (SNAPSHOTs / daily builds) Make the latest working copy of your software ready for deployment (Continuous delivery) Continuous Delivery Package Repository Messaging Services (emails, messages) Version Control System Continuous Deployment Developer Business Analyst Tester
  17. DEV TEST & QA STAGING PROD Prepare an environment where

    developers can do experiments and test their code (DEV) Have an environment where performance and load tests can be done (TEST/QUALITY ASSURANCE) User acceptance tests should be done on an environment similar to production (STAGING/UAT/SIT) Development Environments
  18. Package Repository Messaging Services (emails, messages) Version Control System Make

    releases frequently (SHORT RELEASES) Deploy your applications with one click (Continuous DEPLOYMENT) Shorten release and boot times of your software (Fast bootup) Raise DevOps that knows software development and IT operations at the same time (DEVOPS) Release Management & Deployments DEV TEST & QA STAGING PROD Continuous Deployment Developer Business Analyst Tester
  19. Clouds force you to follow the practices to some extent.

    Software development on clouds DevOps DevOps DevOps DevOps Version Control System Developer Business Analyst Tester
  20. You cannot talk about agility without eXtreme Programming practices. And

    XP can only be achieved by pashioned programmers. “ ” İsa Göksu Agile Practice Lead
  21. Photos used in the slidES http://www.flickr.com/photos/emmanuelecontini/2558211856 http://www.flickr.com/photos/thecampbells/5103649471 http://www.flickr.com/photos/robbiemacphotos/7875854334 http://www.flickr.com/photos/w4nd3rl0st/7174403872 http://s590.photobucket.com/user/asmithj/media/CPC/girl_2_computer_arms_raised2.jpg.html

    http://www.flickr.com/photos/usnavy/5488581781 http://www.flickr.com/photos/purplemattfish/3489639831 http://www.flickr.com/photos/thomashawk/7215052318 http://www.flickr.com/photos/nuwandalice/4764805046 http://www.flickr.com/photos/lauter-als-der-rest/6898114788 http://www.flickr.com/photos/31288116@N02/4008216690 http://www.flickr.com/photos/a2gemma/1448178195 http://www.flickr.com/photos/nuudls/3281779141
  22. 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 The slides were presented on 13th of June, 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey The content of this presentation is originally in Turkish. The author translated into English by purpose.