GMO'less Software Development Practices
Upcoming SlideShare
Loading in...5
×
 

GMO'less Software Development Practices

on

  • 17,588 views

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 ...

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.

Statistics

Views

Total Views
17,588
Slideshare-icon Views on SlideShare
17,065
Embed Views
523

Actions

Likes
15
Downloads
57
Comments
0

16 Embeds 523

http://campus.khipu.net 407
http://thirsty2know.blogspot.com 34
http://localhost 33
http://bostinno.streetwise.in 17
http://www.thirsty2know.blogspot.com 8
https://twitter.com 7
http://www.google.com 4
http://translate.googleusercontent.com 4
http://stage.crowdfunder.com 2
http://thirsty2know.blogspot.no 1
http://thirsty2know.blogspot.in 1
http://thirsty2know.blogspot.ca 1
http://thirsty2know.blogspot.ru 1
http://thirsty2know.blogspot.fr 1
http://thirsty2know.blogspot.com.ar 1
http://feeds.feedburner.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    GMO'less Software Development Practices GMO'less Software Development Practices Presentation Transcript

    • software development practicesGMO{ the art of developing software in a natural way }Lemİ Orhan ERGİNPrincipal Software Engineer @ Sony@lemiorhan‘LESS
    • 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
    • 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 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
    • 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
    • 11I have worked inenterprise levelprojects in my career
    • 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
    • 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
    • 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”
    • 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 fast wayof course, you might not satisfy yourcustomer at this level. that’s fine.
    • 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 satisfactionTeamworkMotivationthis is the topic we are interested in
    • 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 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Clouds force you to follow the practices to some extent.Software development on cloudsDevOpsDevOps DevOps DevOpsVersionControlSystemDeveloperBusiness AnalystTester
    • You cannot talk about agility without eXtreme Programming practices.And XP can only be achieved by pashioned programmers.“”İsa GöksuAgile Practice Lead
    • 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
    • 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.