The document summarizes an "Extreme Programming" talk given by Johannes Brodwall. The talk introduces concepts like test-driven development (TDD), pair programming, and refactoring. A demonstration of pair programming on a coding kata is shown. The key points emphasized are that practicing TDD in small iterative steps, pairing with others, and continuously refactoring code can help programmers improve quality and think in a more deliberate, mindful way about their work. The overall message is that becoming a better programmer requires freeing one's mind and practicing programming as an art.
The slides of the Global Day of Coderetreat Munich 2017 I facilitated and we organized in the context of our Softwerkskammer Software Craft Meetup Munich on 18.11.2017.
В докладе рассказано о том, как автоматизация может упростить жизнь мануальному тестировщику. Автор делиться личным опытом и практическими советами о том, как начать изучать автоматизацию без вреда текущему проекту и процессу тестирования в целом. Расскажу вам какие языки программирования лучше применить в конкретных практических ситуациях. Доклад будет интересен прежде всего для тех тестировщиков, которые хотят научиться автоматизировать, но не знают как и с чего начать.
A good anti-pattern has 2 elements:
1. A repeated pattern of action that appears beneficial, but ultimately produces more bad consequences than beneficial results.
2. A refactored solution exists that has been proven in actual practice and is repeatable.
So, what are common pitfalls that new (or even experienced) agile practitioners fall into? Learning about and watching out for these anti-patterns is a great way to inspect and adapt your agile practice.
Javascript Tests with Jasmine for Front-end DevsChris Powers
Jasmine isn't just for Rubyists - it's for anyone that wants to revolutionize their Javascript code and development workflow. I give a tutorial in getting up and running with an agile, Test Driven Development workflow using nothing but HTML and Javascript.
Interviewing for software engineering positions can sometimes be intimidating - the candidate has no idea what he is checked for, and the company is usually surprised that candidates don't care about things that they might consider important. In this talk, we’ll discuss which skills are essential for us at Wix, which we value the most, and which we think good engineers can pick up quickly. I will show how to interpret job ads and explain what is our standard hiring procedure at Wix. Hopefully, this will help people to better prepare for interviews such as those done at Wix backend engineering.
An amazing opportunity for all the coders to improve their TDD skills in a safe and thrilling environment. Our lab is a 3 hours intensive practice event, focusing on the practice of TDD, essential for software development and design, away from the pressures of ‘getting things done’.
Play to Learn: Agile Games with Cards and DiceMike Clement
Play is a powerful method to learn! Come and play some simple agile games that use playing cards, index cards and dice to explore the different values that are at the foundation of Agile and Lean development practices. In addition to your own insights, you may be able to take these game back to work to share with your co-workers.
This is a hands-on session so come prepared to have some fun!
There is no "right" answer to what you're "supposed to" learn from a game, so come ready to discover your own insights into software development processes and teamwork.
Software Craftsmanship and Agile Code GamesMike Clement
Join us to talk about what it means to be a software craftsman, how the Software Craftsmanship Manifesto (http://manifesto.softwarecraftsmanship.org/) provides a framework for us to improve.
A large part of being a software craftsman is practice. Using different "code games" we can have a full toolbelt of activities that will help us (and those around us) become better at our craft.
Agile software development promises the ability to deliver value quickly. But this isn’t just a matter of process. Uncle Bob says "the only way to go fast is to go well." But how do we go well? As software developers, we can only deliver features as fast as the code base and our skills allow us. Unfortunately the quality of our code base is directly related to our skill in the past.
Musicians and athletes spend most of their time practicing, not performing. As software developers (aspiring craftsmen) we must have practice sessions that allow us to improve our skills and develop better “code sense”. We’ll look at some different “agile code games” that will help us improve our craft.
Good software engineering practices are key to building quality and in this talk we’ll have a whistle stop tour of a range of techniques that often sit under the ‘XP’ umbrella such as TDD (Test Driven Development), Pair Programming, BDD (Behaviour Driven Development) and more generally Continuous Delivery.
The slides of the Global Day of Coderetreat Munich 2017 I facilitated and we organized in the context of our Softwerkskammer Software Craft Meetup Munich on 18.11.2017.
В докладе рассказано о том, как автоматизация может упростить жизнь мануальному тестировщику. Автор делиться личным опытом и практическими советами о том, как начать изучать автоматизацию без вреда текущему проекту и процессу тестирования в целом. Расскажу вам какие языки программирования лучше применить в конкретных практических ситуациях. Доклад будет интересен прежде всего для тех тестировщиков, которые хотят научиться автоматизировать, но не знают как и с чего начать.
A good anti-pattern has 2 elements:
1. A repeated pattern of action that appears beneficial, but ultimately produces more bad consequences than beneficial results.
2. A refactored solution exists that has been proven in actual practice and is repeatable.
So, what are common pitfalls that new (or even experienced) agile practitioners fall into? Learning about and watching out for these anti-patterns is a great way to inspect and adapt your agile practice.
Javascript Tests with Jasmine for Front-end DevsChris Powers
Jasmine isn't just for Rubyists - it's for anyone that wants to revolutionize their Javascript code and development workflow. I give a tutorial in getting up and running with an agile, Test Driven Development workflow using nothing but HTML and Javascript.
Interviewing for software engineering positions can sometimes be intimidating - the candidate has no idea what he is checked for, and the company is usually surprised that candidates don't care about things that they might consider important. In this talk, we’ll discuss which skills are essential for us at Wix, which we value the most, and which we think good engineers can pick up quickly. I will show how to interpret job ads and explain what is our standard hiring procedure at Wix. Hopefully, this will help people to better prepare for interviews such as those done at Wix backend engineering.
An amazing opportunity for all the coders to improve their TDD skills in a safe and thrilling environment. Our lab is a 3 hours intensive practice event, focusing on the practice of TDD, essential for software development and design, away from the pressures of ‘getting things done’.
Play to Learn: Agile Games with Cards and DiceMike Clement
Play is a powerful method to learn! Come and play some simple agile games that use playing cards, index cards and dice to explore the different values that are at the foundation of Agile and Lean development practices. In addition to your own insights, you may be able to take these game back to work to share with your co-workers.
This is a hands-on session so come prepared to have some fun!
There is no "right" answer to what you're "supposed to" learn from a game, so come ready to discover your own insights into software development processes and teamwork.
Software Craftsmanship and Agile Code GamesMike Clement
Join us to talk about what it means to be a software craftsman, how the Software Craftsmanship Manifesto (http://manifesto.softwarecraftsmanship.org/) provides a framework for us to improve.
A large part of being a software craftsman is practice. Using different "code games" we can have a full toolbelt of activities that will help us (and those around us) become better at our craft.
Agile software development promises the ability to deliver value quickly. But this isn’t just a matter of process. Uncle Bob says "the only way to go fast is to go well." But how do we go well? As software developers, we can only deliver features as fast as the code base and our skills allow us. Unfortunately the quality of our code base is directly related to our skill in the past.
Musicians and athletes spend most of their time practicing, not performing. As software developers (aspiring craftsmen) we must have practice sessions that allow us to improve our skills and develop better “code sense”. We’ll look at some different “agile code games” that will help us improve our craft.
Good software engineering practices are key to building quality and in this talk we’ll have a whistle stop tour of a range of techniques that often sit under the ‘XP’ umbrella such as TDD (Test Driven Development), Pair Programming, BDD (Behaviour Driven Development) and more generally Continuous Delivery.
Extreme programming (xp) | David TzemachDavid Tzemach
It’s simply the best presentation that explains the agile methodology of Extreme Programming!
Overview
1. What is Extreme programming?
2. Extreme programming as an agile methodology.
3. The values of Extreme programming
4. The Activities of Extreme programming
5. The 12 core practices of Extreme programming
6. The roles of Extreme programming
Enjoy :)
This slide created for shared internal and for everyone interesting clean code. Why we needed? Why you should use it?
Ps. Sorry if my grammar is very bad :D
What is practice, Examples, Best practices that developers should follow. Useful tools that every developer should carry and useful GitHub repositories.
How to succeed in software development. Following agile methodology principles helps to achieve much better results. Know more about eXtreme Programming, one of the famous agile software development methodology.
Are you tired of TDD workshops that make you do boring things like calculate
bowling scores and prime factors or demonstrate how to win at the game of
life? If so, this is the session for you! In this TDD workshop we will be
building the domain model for EverCraft -- a new MMORPG from Blizzards of the
Coast. We have lots of story cards prepared covering features from combat to
magic, classes to spells, and races to items. Plus, we'll be defining some of
these cards during the session in case you want that +9 knife of ogre slaying
or enjoy casting magic missile at the darkness.
This workshop is language agnotisic and for all levels of developers. The
focus is on TDD and emergent design but pair programming will be covered as
well. The only requirement is that you bring a laptop and that you be able to
test-drive you code with your language of choice. When you are done you will
emerge a better programmer for the experience but there is small chance you
will have a craving for Cheetos and Mountain Dew.
Scrivere codice pulito che funzioni.Pur sembrando un'apparente contraddizione che si cela nelle difficoltà della programmazione,lo sviluppo guidato dai test risponde a questa sfida con un paradosso:scrivere test prima dell'implementazione. Lo sviluppo software guidato dai test è una pratica della metodologia Agile che elimina le paure nella scrittura di codice e porta gli sviluppatori ad incrementare drasticamente la qualità delle loro applicazioni. Durante il talk verrà mostrato come l'approccio alla pratica cambi il proprio modo di programmare,rendendolo più divertente,affidabile e proficuo.
What is "Agile"?
Why would someone like to be agile?
What are the 3 pillars for agile software development?
How can you achieve technical excellence in your software teams?
Are developer skills more important than languages, methods or frameworks?
Second version of my talk on XP, code review and pair programming with examples from my early work history. Delivered at Sunderland University 2020 to CS undergraduates.
Five favorite features of native apps that you might not realize you can do on a web application.
Supporting slides for my presentation at JavaBin June 11, 2015.
Can you go faster with less weight? In 45 minutes, I build a web server with an address book with tests firsts and no frameworks. What can you do if you really understand what's going on?
Good programming is not something that can be explained, it has to be experienced. In this talk, you will see pair programming and test-driven development in action. The talk will involve the audience and draw on your insight to show how programming can be more fun! If you want to understand how serious test-driven development looks, this talk is for you.
The talk is based around a demonstration and interactive audience discussion, so the slides will not capture much of the content.
In this talk, we will go through a practical approach for remote pair programming adopted for high-latency situations. We will demonstrate remote pair programming with a live example and we will discuss the advantages and usages of the approach.
These are my slides from the Bare-Bones Software Architecture course at XP Days Ukraine 2012. The workshop outlines a quick workshop-oriented process for initiating software projects
Påstand: Årsaken til at dagens kontraktregime trekker i retning fossefallsprosjekter uten rom for læring er at kontraktene forutsetter at prisen for prosjektet er låst ved oppstart. For å angi pris, må det beskrives hva prisen gjelder.
Forslag til løsning: Kontrakten kan regulerer prisen per feature på produktkøen. Kunden har da muligheten til å endre produktkøen etter behov uten at dette blir en kontraktsmessig endring.
Jeg kaller dette Stykkpriskontrakt.
For å fastsette initiell stykkpris og for å understøtte konkurranse mellom leverandører foreslår jeg videre at et utvalg av leverandører inviteres til å levere funksjonalitet i en konkurransefase. Den beste får kontrakten og erfaringsdata fra konkurransefasen brukes som input til å bestemme initiell stykkpris.
Jeg kaller dette prestasjonsbasert konkurranse.
Dette er løse ideer og har aldri vært prøvd.
33. What did you see?
• How often did we switch ”driver”?
• Effects of pairing?
• What did the ”non-driver” do?
•How do you expect it to be different?
34. What do you think?
•Pairing two seniors?
•Pairing two juniors?
• Pairing senior and talent?
• Pairing senior and junior?
35. What did you see?
• How many tests?
•Was the step size right?
• What was the first test?
• How did we decide next test?
• What was the final test?
36. What did you see?
•Did we refactor the right amount?
• How long was the code red?
• Strengths in final design
•Weaknesses in final design
•Enough comments?
61. What have you learned
• TDD makes you productive
• TDD consists of small steps
• TDD requires practice
• Pair programming is fun
• Pair programming helps you keep flow
65. Thank you
jbr@exilesoft.com
http://johannesbrodwall.com
http://exilesoft.com
http://twitter.com/jhannes
Editor's Notes
Note to translator: I willexplainthe game of minesweeper whileshowingthis slide.The game initiallypresents a fieldwheretherearehidden minesWhentheplayerclickson a cell, eitherhe «steps» on a mine or he reveals thecellIf he «stepson a mine», the game is over, player losesIf he reveals thecell, thecelltellshowmany mines arenext to it
Note to translator: Here, Iwill ask the English speakingmembersoftheaudience to give feedback onwhattheysaw. I will hand outchocolates to those to answer.