eXtreme Programming (XP) is an agile software development methodology that aims to improve quality and responsiveness to changing requirements. It consists of values like communication, simplicity, feedback and courage, as well as practices like planning, small releases, testing, pair programming and refactoring. XP attempts to address common software project problems like schedule slips, defects, and inability to adapt to changing business needs. It advocates short iterations, frequent integration and customer feedback to deliver working, tested software rapidly and allow requirements to evolve over time at low cost.
Automated testing san francisco oct 2013Solano Labs
Opening presentation from Solano Labs Co-Founder Jay Moorthi for Automated Testing San Francisco. This is an overview of Continuous Integration and Deployment best practices. Please let us know what you think!
Building the rights Right. Use the concept of continuous validation (hypothesis driven development) to prevent that your automated software development pipeline becomes a vehicle to deliver crap fast and helps you focus on the goals that software should help you achieve
Darshan Desai - Virtual Test Labs,The Next Frontier - EuroSTAR 2010TEST Huddle
EuroSTAR Software Testing Conference 2010 presentation on Virtual Test Labs,The Next Frontier by Darshan Desai.
See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
Automated testing san francisco oct 2013Solano Labs
Opening presentation from Solano Labs Co-Founder Jay Moorthi for Automated Testing San Francisco. This is an overview of Continuous Integration and Deployment best practices. Please let us know what you think!
Building the rights Right. Use the concept of continuous validation (hypothesis driven development) to prevent that your automated software development pipeline becomes a vehicle to deliver crap fast and helps you focus on the goals that software should help you achieve
Darshan Desai - Virtual Test Labs,The Next Frontier - EuroSTAR 2010TEST Huddle
EuroSTAR Software Testing Conference 2010 presentation on Virtual Test Labs,The Next Frontier by Darshan Desai.
See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
I recently gave a talk at Architecting Innovation about going extreme with Extreme Programming. In these slides, I give a brief history of Extreme Programming, what are some of the guiding principles of Extreme Programming and why an organization might want to choose Extreme Programming over other software development methodologies.
You want to integrate skilled testing and development work. But how do you accomplish this without developers accidentally subverting the testing process or testers becoming an obstruction? Efficient, deep testing requires “critical distance” from the development process, commitment and planning to build a testable product, dedication to uncovering the truth, responsiveness among team members, and often a skill set that developers alone—or testers alone—do not ordinarily possess. James Bach presents a model—a redesign of the famous Agile Testing Quadrants that distinguished between business vs. technical facing tests and supporting vs. critiquing―that frames these dynamics and helps teams think through the nature of development and testing roles and how they might blend, conflict, or support each other on an Agile project. James includes a brief discussion of the original Agile Testing Quadrants model, which the presenters believe has created much confusion about the role of testing in Agile.
Why Automated Testing Matters To DevOpsdpaulmerrill
“Automated testing is a pain in my ear! Why can’t QA get it right? Why do the tests keep breaking? And for Pete’s sake, stop blaming the infrastructure!”
…Ok, maybe you chose a different word than “ear”.
How often do you have thoughts like this? Daily?
Let’s talk about these frustrations, why they exist and how we can use them to improve our systems!
In this talk, Paul Merrill, founder and Principal Automation Engineer at Beaufort Fairmont explores why automated testing matters to DevOps. Join us to learn how automated testing can be a useful tool in the creation and release of your systems!
Software Characterization & Performance Testing - Beat Your Software with a S...Tze Chin Tang
Traditional software testing is centered around "if it works." Given the move to the cloud and large scaled systems, the cost of failure has gotten high enough, they knowing "if it works" is no longer enough, but we need to know "how it fails."
This talk is an introduction to software characterization testing.
I shared this at the Agile Software Testing Summit Malaysia 2016.
Hope Is Not A Strategy: Automating Efficient Resource Utilization for SREsStormForge .io
On-Demand Video Available Here: https://www.stormforge.io/event/hope-not-strategy-automating-sres/
As a Site Reliability Engineer, you understand the power of software and automation for solving complex problems. So why are your cloud-native applications still running at suboptimal efficiency, despite all your efforts?
The fact is, ensuring peak efficiency of apps running on Kubernetes is a really challenging problem to solve. The complexity of Kubernetes and containers makes it impossible for a human to effectively configure apps for deployment in a way that provides the best trade-off between cost, performance, and reliability. So, you’re left with a time-consuming, and ultimately ineffective, trial-and-error approach.
In this webinar, we’ll show how to apply SRE principles to the optimization of cloud-native apps running on Kubernetes to ensure peak efficiency.
This Webinar is Best for:
• SREs who want to automate the efficiency of their cloud-native applications.
• Anyone looking to apply SRE principles and practices to ensure performance, reliability, and cost-efficiency of their apps running on Kubernetes.
What You'll Learn:
• How machine learning can help to automate yourself out of the painful process of manual, trial-and-error application tuning.
• How to empower your dev team to proactively ensure application performance, reliability, and cost-efficiency.
• How to build continuous optimization into your automated release process to save time and ensure every release performs at peak efficiency.
like Google, Improve your Test perception & practices and learn how Test might be a key lever to improve your business.
- Understand the different types of Test
- Best & Worst practices of Test
This is a free module from my course ISTQB CTFL Agile Tester revised to 2014 syllabus. If you need full training feel free to contact me by email (amraldo@hotmail.com) or by mobile (+201223600207).
I recently gave a talk at Architecting Innovation about going extreme with Extreme Programming. In these slides, I give a brief history of Extreme Programming, what are some of the guiding principles of Extreme Programming and why an organization might want to choose Extreme Programming over other software development methodologies.
You want to integrate skilled testing and development work. But how do you accomplish this without developers accidentally subverting the testing process or testers becoming an obstruction? Efficient, deep testing requires “critical distance” from the development process, commitment and planning to build a testable product, dedication to uncovering the truth, responsiveness among team members, and often a skill set that developers alone—or testers alone—do not ordinarily possess. James Bach presents a model—a redesign of the famous Agile Testing Quadrants that distinguished between business vs. technical facing tests and supporting vs. critiquing―that frames these dynamics and helps teams think through the nature of development and testing roles and how they might blend, conflict, or support each other on an Agile project. James includes a brief discussion of the original Agile Testing Quadrants model, which the presenters believe has created much confusion about the role of testing in Agile.
Why Automated Testing Matters To DevOpsdpaulmerrill
“Automated testing is a pain in my ear! Why can’t QA get it right? Why do the tests keep breaking? And for Pete’s sake, stop blaming the infrastructure!”
…Ok, maybe you chose a different word than “ear”.
How often do you have thoughts like this? Daily?
Let’s talk about these frustrations, why they exist and how we can use them to improve our systems!
In this talk, Paul Merrill, founder and Principal Automation Engineer at Beaufort Fairmont explores why automated testing matters to DevOps. Join us to learn how automated testing can be a useful tool in the creation and release of your systems!
Software Characterization & Performance Testing - Beat Your Software with a S...Tze Chin Tang
Traditional software testing is centered around "if it works." Given the move to the cloud and large scaled systems, the cost of failure has gotten high enough, they knowing "if it works" is no longer enough, but we need to know "how it fails."
This talk is an introduction to software characterization testing.
I shared this at the Agile Software Testing Summit Malaysia 2016.
Hope Is Not A Strategy: Automating Efficient Resource Utilization for SREsStormForge .io
On-Demand Video Available Here: https://www.stormforge.io/event/hope-not-strategy-automating-sres/
As a Site Reliability Engineer, you understand the power of software and automation for solving complex problems. So why are your cloud-native applications still running at suboptimal efficiency, despite all your efforts?
The fact is, ensuring peak efficiency of apps running on Kubernetes is a really challenging problem to solve. The complexity of Kubernetes and containers makes it impossible for a human to effectively configure apps for deployment in a way that provides the best trade-off between cost, performance, and reliability. So, you’re left with a time-consuming, and ultimately ineffective, trial-and-error approach.
In this webinar, we’ll show how to apply SRE principles to the optimization of cloud-native apps running on Kubernetes to ensure peak efficiency.
This Webinar is Best for:
• SREs who want to automate the efficiency of their cloud-native applications.
• Anyone looking to apply SRE principles and practices to ensure performance, reliability, and cost-efficiency of their apps running on Kubernetes.
What You'll Learn:
• How machine learning can help to automate yourself out of the painful process of manual, trial-and-error application tuning.
• How to empower your dev team to proactively ensure application performance, reliability, and cost-efficiency.
• How to build continuous optimization into your automated release process to save time and ensure every release performs at peak efficiency.
like Google, Improve your Test perception & practices and learn how Test might be a key lever to improve your business.
- Understand the different types of Test
- Best & Worst practices of Test
This is a free module from my course ISTQB CTFL Agile Tester revised to 2014 syllabus. If you need full training feel free to contact me by email (amraldo@hotmail.com) or by mobile (+201223600207).
Sof tbgffjjdxb. HwvnThe history of software engineering is relatively new, with the first computers being women who computed manually.
The term "software engineering" was first used in the 1960s, and Margaret Hamilton is considered the inventor of the phrase.
Periodic Table of Agile Principles and PracticesJérôme Kehrli
Recently I fell by chance on the Periodic Table of the Elements... Long time no see... Remembering my physics lessons in University, I always loved that table. I remembered spending hours understanding the layout and admiring the beauty of its natural simplicity.
So I had the idea of trying the same layout, not the same approach since both are not comparable, really only the same layout for Agile Principles and Practices.
The result is in this presentation: The Periodic Table of Agile Principles and Practices:
software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.software design and architecture and its brief description about software patterns as well.
2. Contents
The problem
◦ Problems in software development
eXtreme Programming (XP)
◦ Values
◦ Practices
◦ Why XP works
◦ Benefits of XP
Conclusions
Resources
3. Problems in
software development
Risks:
Schedule slips
Business misunderstood
Defect rate
Project cancelled
System goes sour
Business changes
4. Schedule slips
Many projects are not delivered on time
◦ Examples: Word 1.0, Netscape 6
Some deadlines cannot be moved
◦ Example: Y2K
What if:
most business value is delivered on time
5. Business misunderstood
Without direct communication,
developers have to guess what the
customer wants.
◦ Example: The Orthodontics Project
What if:
an on-site customer steers development
6. Defect rate
The software is put in production, but the
defect rate is so high that it isn’t used.
What if: you have automated testing
7. Project cancelled
Size of project Early On-Time Delayed Cancelled Sum
1 function point 14.68% 83.16% 1.92% 0.25% 100.00%
10 function points 11.08% 81.25% 5.67% 2.00% 100.00%
100 function points 6.06% 74.77% 11.83% 7.33% 100.00%
1,000 function points 1.24% 60.76% 17.67% 20.33% 100.00%
10,000 function points 0.14% 28.00% 23.83% 48.00% 100.00%
100,000 function points 0.00% 13.67% 21.33% 65.00% 100.00%
Average 5.53% 56.94% 13.71% 23.82% 100.00%
Table 1: Percentage of projects early, on-time, late, canceled
(from Patterns of Software Systems Failure and Success, by Capers Jones)
8. Project cancelled
What if:
short releases deliver at least some useful
working software, reflecting investment to
date
9. System goes sour
Software is put into production successfully, but
after a couple of years the cost of making
changes or the defect rate rises so much that
the system must be replaced.
What if:
the design is simple and the code quality is high
10. Business changes
New laws, market changes: business
priorities change
What if:
the customer can change their mind,
substitute functionality, and change priorities
13. eXtreme Programming
A system of practices that a community
of software developers is evolving to
address the problems of quickly delivering
quality software, and then evolving it to
meet changing business needs.
14. eXtreme…
Taking proven practices to the extreme
If testing is good, let everybody test all the time
If code reviews are good, review all the time
If design is good, refactor all the time
If integration testing is good, integrate all the time
If simplicity is good, do the simplest thing that could
possibly work
If short iterations are good, make them really, really
short
16. XP practices
The Planning Game* Collective Ownership
Small Releases Continuous Integration
Metaphor 40-Hour Week
Simple Design* On-Site Customer
Testing* Coding Standards
Refactoring* Open workspace
Pair Programming* Daily Schema migration
17. The Planning Game
Business writes a story describing desired
functionality
Stories are written on index cards
Development estimates stories
Velocity determines number of stories per
iteration
Business splits and prioritizes stories and
determines the composition of releases
Velocity is measured and adjusted every iteration
Customer steers development
18. Testing
Unit Tests and Functional Tests
Test a little, code a little…
◦ “Test-first programming”
Tests become the specification
Tests give confidence in the system
Tests give courage to change the system
20. Pair Programming
Two people looking at
one machine, with one
keyboard and one
mouse
Two roles:
implementation and
strategy
All production code is
written in pairs
21. Pair Programming Benefits
15% less output than 2 solo programmers
Continuous code review: better design, fewer
defects
Confidence to add to or change the system
Discipline to always test and refactor
Teach each other how the system works (reduced
staffing risks)
Learn from partner’s knowledge and experience
(enhances technical skills)
22. Simple design
Do the simplest thing that could possibly
work
Passes all the tests
No duplicate code
States every intention
Fewest possible classes and methods
23. Refactoring
Design becomes everybody’s daily business
Continuously improve quality of the code
Unit Tests and Pair Programming give courage
Result:
Fast development speed
Code becomes easy to change
24. Why XP works
Light-weight: discipline without bureaucracy
Under stress, people do what is easiest
◦ All XP practices have short-term benefits as well
as long-term benefits
Development as a Conversation
The code is the documentation
XP is fun
25. Who benefits from XP?
Programmers: Customers:
get clear requirements get most business
& priorities value first
can do a good job get accurate feedback
can make technical can make informed
decisions business decisions
don’t work overtime can change their mind
26. Conclusions
Use XP on projects
◦ with vague or changing requirements
◦ with small teams
XP works, and is very fast
XP is fun to execute
At Azzurri, we use XP as much as possible
with clients, and exclusively for internal
projects
27. XP books and papers
Extreme Programming Explained – Kent Beck
Refactoring – Martin Fowler
Planning Extreme Programming – Kent Beck et al
Extreme Programming Installed – Ron Jeffries et al
Extreme Programming Examined – Giancarlo Succi et al
Extreme Programming in Practice – Robert C. Martin et al
Extreme Programming Explored – William C. Wake
Extreme Programming Applied – Ken Auer et al
The Costs and Benefits of Pair Programming – Alistair
Cockburn et al
28. Web resources
www.junit.org
www.xprogramming.com
www.extremeprogramming.org
www.refactoring.com
www.pairprogramming.com