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.
Exploring the Future Potential of AI-Enabled Smartphone Processors
How Do You Build Software? Software Engineering Practices of an Agile Developer
1. Software engineering practices
of an agile developer
how do you build
Lemİ Orhan ERGİN
Principal Software Engineer @ Sony
@lemiorhanagilistanbul.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
4. missing deadlines
extra costs
never used features
unknown risks
unmotivated employees
bugs, failures, errors
legacy systems
incompetent developers
micro managing managers
huge technical debts
5. 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”
12. 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.
13. In general the customers
do not know
what they really want
2
24. Agile development is not only
about project planning
Project planning is just a part of agile software development
25. Agile software development
Agile planning and management
Software engineering practices
Customer satisfaction
Teamwork
Motivation
this is the topic we are
interested in
26. Let’s develop a project
by using
agile development
practices
28. Define your valuesand let everyone know
Educate
everyone
up-front
Define your
team’s norms
and values
the manifesto
29. Build your teamone team per product, not per project
Cross
functional
teams
swat team
sit together
Cultivate
collaboration
culture
30. Start the projectand follow these basic practices
Minimum
viable
product
Emergent
simple
design
short
up-front
design
Agile
Documenting
31. Developmentthat 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
32. testing strategyyou can never succeed without it
TDD
ATDD
BDD
Testing
legacy
systems
A/B
Testing
chaos
monkey
MULTI LAYER
TESTING
design?
34. reproduce the bugs with tests before fixing it
or the fixed bugs may rise again!
35. get feedbackas soon as possible, as much as possible
code
coverage
continuous
ıntegration
continuous
build
code
analysis
10 min build
evergreen
build status
37. release & deployit should be smooth and error-prune
short
frequent
releases
continuous
deployment
fast
bootup
devops
enterprise
environments
cloud
compatible
38. 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
39. No methodology is as effective as
being passionate and disciplined“
”AltuĞ AlTINTAŞ
Lean-Kanban Consultant