software development practicesGMO{ the art of developing software in a natural way }Lemİ Orhan ERGİNPrincipal Software Eng...
Lemİ Orhan ErgİnPrincipal Software Engineer in Sonyhas worked in Tüsside, BYM, GittiGidiyor/eBayand Sony as developer, tea...
projects?failedHave you ever had
We won’t make it, we need extra timeI know it’s impossible, but we’ve already promisedWe have to cancel the project before...
It’s very expensive to add these featuresOne guy left and the project failedPeople in development team is always changingT...
11I have worked inenterprise levelprojects in my career
B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument m...
B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument m...
are failingSoftware projects“50% of IT projects go into trash in Turkey”Agile Turkeymercer consulting“When the real costs ...
why?
of reasonsto faila lotwe have
companypoliticssome of themare due towe are unable to do anything here
developingsoftware inunnatural waybut the reason ofall the others is
agendaThe Nature of SoftwareNaturalness of Software: AgilityAgile Software Development Practices
The natureof softwareand 9 main rules
The ultimate goal iscustomer satisfaction1Customers have rights to getsoftware developed with thefeatures they need in a f...
In general the customersdo not knowwhat they really want2
UNCERTAINITYexists in every step ofdevelopment process3
requirementsalways change4Start PointTarget Point213
Software developmentis not just5Programming
Software shouldalways bemaintainedafter go live6
Software development is asocial activity7
BIG-Up-front detailedestimation & Design areUNNECESSARY8
ıncreases total real cost9 compromising quality
agilityconcept emerges for helping developersto let them develop in natural way
agendaThe Nature of SoftwareNaturalness of Software: AgilityAgile Software Development Practices
agile?what is
Agile meansAdapting to changerapidlyand sending a feature or a fix to market rapidly
agile meansevolving design anddevelopment
Agile development is not onlyabout project planningProject planning is just a part of agile software development
Agile software developmentAgile planning and managementSoftware development practicesCustomer satisfactionTeamworkMotivati...
agendaThe Nature of SoftwareNaturalness of Software: AgilityAgile Software Development Practices
working on the correct designwith newest and best technologiesin a short timeWe aim to complete the projects by
However we always face with issues related withhumans
Getting feedback rapidlyAgile ve lean prenciples focus on the following:Speeding up feecback loops
Let’s develop a projectby usingagile developmentpractices
See your developers not as resources, but talents (No headcount calculation)Work with people who loves to share knowledge ...
DeveloperMake teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define...
Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review others’ code ...
Pull others’ commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run autom...
Prepare a working copy of your software available in your CVS (SNAPSHOTs / daily builds)Make the latest working copy of yo...
DEV TEST & QA STAGING PRODPrepare an environment where developers can do experiments and test their code (DEV)Have an envi...
Package RepositoryMessaging Services (emails, messages)VersionControlSystemMake releases frequently (SHORT RELEASES)Deploy...
Clouds force you to follow the practices to some extent.Software development on cloudsDevOpsDevOps DevOps DevOpsVersionCon...
You cannot talk about agility without eXtreme Programming practices.And XP can only be achieved by pashioned programmers.“...
Photos used in the slidEShttp://www.flickr.com/photos/emmanuelecontini/2558211856http://www.flickr.com/photos/thecampbells/5...
Lemİ orhan ergİnlemiorhan@agilistanbul.com@lemiorhan@lemiorhanagilistanbul.com@lemiorhanLINKEDINTWITTERSLIDESHAREBLOGPrinc...
Upcoming SlideShare
Loading in...5
×

GMO'less Software Development Practices

16,596

Published on

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.

Published in: Technology, Business

Transcript of "GMO'less Software Development Practices"

  1. 1. software development practicesGMO{ the art of developing software in a natural way }Lemİ Orhan ERGİNPrincipal Software Engineer @ Sony@lemiorhan‘LESS
  2. 2. Lemİ Orhan ErgİnPrincipal Software Engineer in Sonyhas worked in Tüsside, BYM, GittiGidiyor/eBayand Sony as developer, team leader, technicalcoordinator and scrum mastergot CSM certificate from Jim Coplienyear as Scrum Mastersprints and 4 years as team member andscrum masterexperienced in agile transformation andbuilding agile culture in teams & organizations200120132009156agile@lemiorhan
  3. 3. projects?failedHave you ever had
  4. 4. We won’t make it, we need extra timeI know it’s impossible, but we’ve already promisedWe have to cancel the project before going liveWe are facing critical bugs in productionWe have to re-write the project from scratchNo one knows when the project will be finishedIt was obvious that the project was going to failEverything was going fine, but what the ...“”Project management / Team
  5. 5. It’s very expensive to add these featuresOne guy left and the project failedPeople in development team is always changingTechnology and design of the project are too oldI fixed a bug and new ones appearedNo one has touched some modules for yearsI cannot add new features while fixing bugs all dayWe are doing same manual tests again and again“”Software Developer
  6. 6. 11I have worked inenterprise levelprojects in my career
  7. 7. B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services, components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce moduleEach one isat least6 monthsprojects
  8. 8. B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services, components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module6 of themcancelled before go-liveclosed after a whilewill be closed soon%55
  9. 9. are failingSoftware projects“50% of IT projects go into trash in Turkey”Agile Turkeymercer consulting“When the real costs are added up, 80% of thetechnology projects costs more than they return”
  10. 10. why?
  11. 11. of reasonsto faila lotwe have
  12. 12. companypoliticssome of themare due towe are unable to do anything here
  13. 13. developingsoftware inunnatural waybut the reason ofall the others is
  14. 14. agendaThe Nature of SoftwareNaturalness of Software: AgilityAgile Software Development Practices
  15. 15. The natureof softwareand 9 main rules
  16. 16. The ultimate goal iscustomer satisfaction1Customers have rights to getsoftware developed with thefeatures they need in a fast wayof course, you might not satisfy yourcustomer at this level. that’s fine.
  17. 17. In general the customersdo not knowwhat they really want2
  18. 18. UNCERTAINITYexists in every step ofdevelopment process3
  19. 19. requirementsalways change4Start PointTarget Point213
  20. 20. Software developmentis not just5Programming
  21. 21. Software shouldalways bemaintainedafter go live6
  22. 22. Software development is asocial activity7
  23. 23. BIG-Up-front detailedestimation & Design areUNNECESSARY8
  24. 24. ıncreases total real cost9 compromising quality
  25. 25. agilityconcept emerges for helping developersto let them develop in natural way
  26. 26. agendaThe Nature of SoftwareNaturalness of Software: AgilityAgile Software Development Practices
  27. 27. agile?what is
  28. 28. Agile meansAdapting to changerapidlyand sending a feature or a fix to market rapidly
  29. 29. agile meansevolving design anddevelopment
  30. 30. Agile development is not onlyabout project planningProject planning is just a part of agile software development
  31. 31. Agile software developmentAgile planning and managementSoftware development practicesCustomer satisfactionTeamworkMotivationthis is the topic we are interested in
  32. 32. agendaThe Nature of SoftwareNaturalness of Software: AgilityAgile Software Development Practices
  33. 33. working on the correct designwith newest and best technologiesin a short timeWe aim to complete the projects by
  34. 34. However we always face with issues related withhumans
  35. 35. Getting feedback rapidlyAgile ve lean prenciples focus on the following:Speeding up feecback loops
  36. 36. Let’s develop a projectby usingagile developmentpractices
  37. 37. 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 mattsBefore the startDeveloperBusiness AnalystTesterProduct Owner
  38. 38. DeveloperMake 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 projectBusiness AnalystTester
  39. 39. 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 codingVersionControlSystemDeveloperBusiness AnalystTester
  40. 40. 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 IntegrationMessaging Services (emails, messages)VersionControlSystemContinuousDeploymentDeveloperBusiness AnalystTester
  41. 41. 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 DeliveryPackage RepositoryMessaging Services (emails, messages)VersionControlSystemContinuousDeploymentDeveloperBusiness AnalystTester
  42. 42. DEV TEST & QA STAGING PRODPrepare 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
  43. 43. Package RepositoryMessaging Services (emails, messages)VersionControlSystemMake 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 & DeploymentsDEVTEST & QASTAGINGPRODContinuousDeploymentDeveloperBusiness AnalystTester
  44. 44. Clouds force you to follow the practices to some extent.Software development on cloudsDevOpsDevOps DevOps DevOpsVersionControlSystemDeveloperBusiness AnalystTester
  45. 45. You cannot talk about agility without eXtreme Programming practices.And XP can only be achieved by pashioned programmers.“”İsa GöksuAgile Practice Lead
  46. 46. Photos used in the slidEShttp://www.flickr.com/photos/emmanuelecontini/2558211856http://www.flickr.com/photos/thecampbells/5103649471http://www.flickr.com/photos/robbiemacphotos/7875854334http://www.flickr.com/photos/w4nd3rl0st/7174403872http://s590.photobucket.com/user/asmithj/media/CPC/girl_2_computer_arms_raised2.jpg.htmlhttp://www.flickr.com/photos/usnavy/5488581781http://www.flickr.com/photos/purplemattfish/3489639831http://www.flickr.com/photos/thomashawk/7215052318http://www.flickr.com/photos/nuwandalice/4764805046http://www.flickr.com/photos/lauter-als-der-rest/6898114788http://www.flickr.com/photos/31288116@N02/4008216690http://www.flickr.com/photos/a2gemma/1448178195http://www.flickr.com/photos/nuudls/3281779141
  47. 47. Lemİ orhan ergİnlemiorhan@agilistanbul.com@lemiorhan@lemiorhanagilistanbul.com@lemiorhanLINKEDINTWITTERSLIDESHAREBLOGPrincipal Software Engineer @ SonyFounder & Author @ agilistanbul.comflyingtomoon.comThe slides were presented on 13th of June, 2013 atAgile Talks which is a set of seminars organizedby Agile Turkey few times in a year in TurkeyThe content of this presentation is originally in Turkish.The author translated into English by purpose.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×