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.
Decarbonising Buildings: Making a net-zero built environment a reality
GMO'less Software Development Practices
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
4. 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
5. 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
7. 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
8. 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
9. 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”
16. 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.
17. In general the customers
do not know
what they really want
2
30. Agile development is not only
about project planning
Project planning is just a part of agile software development
31. Agile software development
Agile planning and management
Software development practices
Customer satisfaction
Teamwork
Motivation
this is the topic we are interested in
32. agenda
The Nature of Software
Naturalness of Software: Agility
Agile Software Development Practices
33. working on the correct design
with newest and best technologies
in a short time
We aim to complete the projects by
36. Let’s develop a project
by using
agile development
practices
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 matts
Before the start
Developer
Business Analyst
Tester
Product Owner
38. 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
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 coding
Version
Control
System
Developer
Business Analyst
Tester
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 Integration
Messaging Services (emails, messages)
Version
Control
System
Continuous
Deployment
Developer
Business Analyst
Tester
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 Delivery
Package Repository
Messaging Services (emails, messages)
Version
Control
System
Continuous
Deployment
Developer
Business Analyst
Tester
42. 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
43. 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
44. Clouds force you to follow the practices to some extent.
Software development on clouds
DevOpsDevOps DevOps DevOps
Version
Control
System
Developer
Business Analyst
Tester
45. You cannot talk about agility without eXtreme Programming practices.
And XP can only be achieved by pashioned programmers.“
”İsa Göksu
Agile Practice Lead
46. 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