Presented at deliverAgile2018, these slides demonstrate the change process of: Identify, Prepare, Improve, Clean. Many aspects of agile technical practices are discussed and demonstrated on how to apply these practices at home. Heroku is introduced as a tool to help with a lot of infrastructure issues.
13. @BillyGarnetIceberg Ideas
Agile Manifesto
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
16. @BillyGarnetIceberg Ideas
Lean Software Development
1. Eliminate Waste
2. Amplify Learning
3. Decide as late as possible
4. Deliver as fast as possible
5. Empower the team
6. Build integrity in
7. See the whole
20. @BillyGarnetIceberg Ideas
Microservices
Microservices is a software development technique—a
variant of the service-oriented architecture (SOA)
architectural style that structures an application as a
collection of loosely coupled services. In a
microservices architecture, services are fine-grained and
the protocols are lightweight.
21. @BillyGarnetIceberg Ideas
API
An Application Programming Interface (API) is a set of
functions, procedures, methods or classes used by
computer programs to request services from the operating
system, software libraries or any other service providers
running on the computer.
28. @BillyGarnetIceberg Ideas
Step 1 - Identify
• Recognize a change that
can be made
• Find a pattern
• Come up with a hypothesis
• Notice a problem
29. @BillyGarnetIceberg Ideas
Step 2 - Prepare
• Make the change easy, then make the
easy change
• Adjust to match a pattern
• Create an experiment
• Take one step backwards
• Disrupt current system
• Unlocking potential
30. @BillyGarnetIceberg Ideas
Step 3 - Improve
• Make the change
• Extract duplication
• Run the experiment
• Take two steps forward
31. @BillyGarnetIceberg Ideas
Step 4 - Clean
• Remove any
extraneous items
• Delete duplicate code
• Clean up experiment
• Leave things cleaner
then you found them
• Ready environment for
new observations
32. @BillyGarnetIceberg Ideas
Example
• Identify - I’m hungry
• Prepare - Get food out, slice tomato, toast
bread, etc… and create a sandwich
• Improve - Take care of that hunger by eating the
sandwich
• Clean - Put the food away, clean your dishes.
33. @BillyGarnetIceberg Ideas
Example
• Identify - These walls need to be painted
• Prepare - Clear items out of room, tape edges,
put down drop cloth
• Improve - Paint the walls
• Clean - Remove tape, wash brushes, put extra
paint away
34. @BillyGarnetIceberg Ideas
Code Example
• Identify - Notice two pieces of code are similar
• Prepare - Make the pieces of code identical
(extract variable, etc.)
• Improve - Use extract method
• Clean - Delete any unneeded code and spaces
(GUIs are getting better at helping here)
36. @BillyGarnetIceberg Ideas
What to do?
• What do I want to build?
• What language?
• Web, Mobile?
• Uh-oh graphics? Sketches?
• Goals? Plans?
• Why am I doing this again?
37. @BillyGarnetIceberg Ideas
Step 1 - Identify
• Make a web based game
• Use python
• Use micro-services
• Learn more about APIs
• Use DevOps
• Use Agile Technical Practices
38. @BillyGarnetIceberg Ideas
Step 2 - Prepare
• Read up on things
• Find technology to help with
hosting, storage
• Install necessary software
• Update software on my system
• Ability to grow in the future
(hopefully!!!)
50. @BillyGarnetIceberg Ideas
Agile Principles
Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
Deliver working software frequently…
Working software is the primary measure of progress.
Continuous attention to technical excellence and good design enhances
agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
54. @BillyGarnetIceberg Ideas
Manage your workflow
• Question your process
• Work in small pieces
• Get more feedback
• Simplify
• Embrace new techniques
56. @BillyGarnetIceberg Ideas
Make testing more important
• Test Driven Development (TDD)
• Behaviour Driven Development (BDD)
• Organize tests by speed not type
• Once tests take longer run them
less frequent or break them up
58. @BillyGarnetIceberg Ideas
Conclusion
• Deploy code as soon and often
as you can
• Do the simplest thing that can
possible work
• Work in small pieces
• #nobranch
• Use your app a lot