Acceptance test driven development tutorial. This tutorial explains how to take user stories and convert them into working software. Details about Acceptance Criteria and Acceptance tests using FitNesse and FitLibrary are described in this presentation. Also Patterns and Anti-Patterns associated with this are described in this presentation.
When All Teammates Speak The Same Language
Two main problems in software development
It's all about brains
What is BDD?
BDD vs TDD vs ATDD
Three Amigos
Gherkin
Cucumber and Selenium WebDriver
How to use feature files and create steps definitions
Examples
DevOps Transformation: Learnings and Best PracticesQBurst
The presentation delves into the best practices and approach for DevOps adoption. Understand key aspects of DevOps and how it brings about speed and efficiency in the software development lifecycle
Learn how Acceptance Test Driven Development (ATDD) provides the process for capturing detailed requirements as acceptance criteria and turn them into as test cases before development begins using Behavior Driven Development (BDD). The BDD approach and Gherkin format is the language used to create easy to understand and actionable scenarios that map from the functional level to the components and units. We will discuss the different approaches to TDD including a realistic approach leveraging BDD to a purest standpoint where TDD use the tests to drive the design of the application. Finally understand how the tools in Visual Studio and Team foundation Server to support BDD such as SpecFlow (Cucumber in .NET), Refactoring tools, and Test Cases in MTM.
Learn more about the scaled Agile Framework + scaling Agile. After a short introduction to several frameworks that aim to support the scaling of Agile (DAD, LeSS, SAFe®), this power point presentation from our webinar dives deeper into the details of the Scaled Agile Framework (SAFe®). Find the truth behind the often cited sentence “As Scrum is to the Agile team, SAFe® is to the Agile enterprise.”
When All Teammates Speak The Same Language
Two main problems in software development
It's all about brains
What is BDD?
BDD vs TDD vs ATDD
Three Amigos
Gherkin
Cucumber and Selenium WebDriver
How to use feature files and create steps definitions
Examples
DevOps Transformation: Learnings and Best PracticesQBurst
The presentation delves into the best practices and approach for DevOps adoption. Understand key aspects of DevOps and how it brings about speed and efficiency in the software development lifecycle
Learn how Acceptance Test Driven Development (ATDD) provides the process for capturing detailed requirements as acceptance criteria and turn them into as test cases before development begins using Behavior Driven Development (BDD). The BDD approach and Gherkin format is the language used to create easy to understand and actionable scenarios that map from the functional level to the components and units. We will discuss the different approaches to TDD including a realistic approach leveraging BDD to a purest standpoint where TDD use the tests to drive the design of the application. Finally understand how the tools in Visual Studio and Team foundation Server to support BDD such as SpecFlow (Cucumber in .NET), Refactoring tools, and Test Cases in MTM.
Learn more about the scaled Agile Framework + scaling Agile. After a short introduction to several frameworks that aim to support the scaling of Agile (DAD, LeSS, SAFe®), this power point presentation from our webinar dives deeper into the details of the Scaled Agile Framework (SAFe®). Find the truth behind the often cited sentence “As Scrum is to the Agile team, SAFe® is to the Agile enterprise.”
YouTube Link: https://youtu.be/3s2S-SNFCo4
** Edureka Certification Training: https://www.edureka.co **
This Edureka PPT on "Scaled Agile Framework" will help you understand how the scaled agile framework is used to scale agile practices and principles for large, complex and mission-critical projects. The topics discussed in this course are listed below:
Challenges of scaling agile
What is the Scaled Agile Framework (SAFe)?
Levels of Scaled Agile Framework
Configurations of SAFe
Advantages and Disadvantages of SAFe
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Join BostonPHP and Michael Bourque as he presents the concept of Scrum and shows why so many people are now deploying scrum to their development projects. Michael will take us through the process and talk about how his company, Parametric Technology Inc. (PTC) , is successfully applying Scrum.
Introduction to JIRA & Agile Project ManagementDan Chuparkoff
Join me for a brief introduction to JIRA & Agile Project Management. I'll talk about basic Agile concepts. I'll show you basic JIRA planning and working with Scrum and Kanban. And I'll show you the most important reports to master so you can build great software just like Atlassian.
In The Seven Habits of Highly Effective People, Stephen R. Covey names "Begin with the End in Mind" as the second of the seven habits. This habit applies not just to individuals, but to software development teams as well. In Acceptance Test Driven Development (ATDD), the Product Owner begins requirements discussions with expectations and examples, and the whole team collaborates to distill these into acceptance tests that define the essence of “Done." Modern testing frameworks enable the team to express the tests in natural language while connecting them to the software so that the tests are automated while the software is being developed. The end result is that the acceptance tests become executable requirements.
These slides explain the ATDD cycle and how it fits with other Agile development and testing practices including TDD, Continuous Integration, and Exploratory Testing.
This slides-share describes best practices to implement Jira in software development organizations who practice Agile.
The focus is on simple implementation based on Jira core and portfolio to achieve high ROI
A New Introduction to Jira & Agile Product ManagementDan Chuparkoff
These are the corresponding slides from another one of my talks in the series for Great Product Teams: https://www.youtube.com/watch?v=TsG3OWTDAFY
FOR MORE:
If your team wants to learn more about building disruptive products, leveraging the power of data science, and exponential teamwork, check out my YouTube videos at: https://bit.ly/ChupSpeaks
IN THIS PRESENTATION:
In one video, I give you everything you need to understand the basics of Agile and get started in the new Jira interface! I'll show you basic Jira planning and working with Scrum and Kanban. We also talk about story points and about some of the most common customizations. With these basics, you'll get Jira to match the way your team works, so you and your team can focus on building great products.
XBOSoft runs through the Top 10 Agile Metrics revealing the most fundamental data points Agile methodology requires to work effectively, and will put you on the highly targeted path to successful implementation of your Agile processes.
XBOSoft and Go2Group run through the top data points you should be measuring in your Agile Workflow. We’ll show you what to track, when and how often, and most importantly – why. Many believe that metrics are useless, but unless you measure, how can you systematically improve or know how you are doing? And with velocity as an overarching objective in agile, you should be tracking other things so that you know what else you could be impacting by going faster. But, with all the metrics so readily available to us today, how do we filter through to the most meaningful?
YouTube Link: https://youtu.be/WjwEh15M5Rw
** Certified Scrum Master Training: https://www.edureka.co/certified-scrum-master-certification-training **
This Edureka PPT on ‘Agile Methodology’ will discuss What is Agile and the various Agile frameworks that implement the Agile methodology. This tutorial on Agile Methodologies covers the below topics:
1. Why do we need Agile?
2. What is Agile?
3. Key terms of Agile
4. Advantages of Agile
5. How to implement Agile?
6. Various Agile Frameworks
Check out our Playlist: https://bit.ly/2KlsEva
Blog Series: https://bit.ly/2KmfQVd
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Intent of this tutorial is to provide the participants with a hands-on-experience of real world refactoring by taking an open source project and refactoring it.
Benefits
After attending this session, the participants should be able to:
Build a common vocabulary in the refactoring space
Identify code smells
Eliminate code smells by applying the simple refactoring techniques explained in Martin Fowler‘s “Refactoring”
Write better unit/functional tests for legacy code
Understand some of the techniques and pitfalls in refactoring legacy code in the absence of unit and functional tests [”Working effectively with legacy code “]
Take existing code and refactor it to standard design patterns [Refactoring to patterns]
Learn about the internals of the open source project chosen to refactor
Know where to look to continue learning the techniques of refactoring
YouTube Link: https://youtu.be/3s2S-SNFCo4
** Edureka Certification Training: https://www.edureka.co **
This Edureka PPT on "Scaled Agile Framework" will help you understand how the scaled agile framework is used to scale agile practices and principles for large, complex and mission-critical projects. The topics discussed in this course are listed below:
Challenges of scaling agile
What is the Scaled Agile Framework (SAFe)?
Levels of Scaled Agile Framework
Configurations of SAFe
Advantages and Disadvantages of SAFe
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Join BostonPHP and Michael Bourque as he presents the concept of Scrum and shows why so many people are now deploying scrum to their development projects. Michael will take us through the process and talk about how his company, Parametric Technology Inc. (PTC) , is successfully applying Scrum.
Introduction to JIRA & Agile Project ManagementDan Chuparkoff
Join me for a brief introduction to JIRA & Agile Project Management. I'll talk about basic Agile concepts. I'll show you basic JIRA planning and working with Scrum and Kanban. And I'll show you the most important reports to master so you can build great software just like Atlassian.
In The Seven Habits of Highly Effective People, Stephen R. Covey names "Begin with the End in Mind" as the second of the seven habits. This habit applies not just to individuals, but to software development teams as well. In Acceptance Test Driven Development (ATDD), the Product Owner begins requirements discussions with expectations and examples, and the whole team collaborates to distill these into acceptance tests that define the essence of “Done." Modern testing frameworks enable the team to express the tests in natural language while connecting them to the software so that the tests are automated while the software is being developed. The end result is that the acceptance tests become executable requirements.
These slides explain the ATDD cycle and how it fits with other Agile development and testing practices including TDD, Continuous Integration, and Exploratory Testing.
This slides-share describes best practices to implement Jira in software development organizations who practice Agile.
The focus is on simple implementation based on Jira core and portfolio to achieve high ROI
A New Introduction to Jira & Agile Product ManagementDan Chuparkoff
These are the corresponding slides from another one of my talks in the series for Great Product Teams: https://www.youtube.com/watch?v=TsG3OWTDAFY
FOR MORE:
If your team wants to learn more about building disruptive products, leveraging the power of data science, and exponential teamwork, check out my YouTube videos at: https://bit.ly/ChupSpeaks
IN THIS PRESENTATION:
In one video, I give you everything you need to understand the basics of Agile and get started in the new Jira interface! I'll show you basic Jira planning and working with Scrum and Kanban. We also talk about story points and about some of the most common customizations. With these basics, you'll get Jira to match the way your team works, so you and your team can focus on building great products.
XBOSoft runs through the Top 10 Agile Metrics revealing the most fundamental data points Agile methodology requires to work effectively, and will put you on the highly targeted path to successful implementation of your Agile processes.
XBOSoft and Go2Group run through the top data points you should be measuring in your Agile Workflow. We’ll show you what to track, when and how often, and most importantly – why. Many believe that metrics are useless, but unless you measure, how can you systematically improve or know how you are doing? And with velocity as an overarching objective in agile, you should be tracking other things so that you know what else you could be impacting by going faster. But, with all the metrics so readily available to us today, how do we filter through to the most meaningful?
YouTube Link: https://youtu.be/WjwEh15M5Rw
** Certified Scrum Master Training: https://www.edureka.co/certified-scrum-master-certification-training **
This Edureka PPT on ‘Agile Methodology’ will discuss What is Agile and the various Agile frameworks that implement the Agile methodology. This tutorial on Agile Methodologies covers the below topics:
1. Why do we need Agile?
2. What is Agile?
3. Key terms of Agile
4. Advantages of Agile
5. How to implement Agile?
6. Various Agile Frameworks
Check out our Playlist: https://bit.ly/2KlsEva
Blog Series: https://bit.ly/2KmfQVd
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Intent of this tutorial is to provide the participants with a hands-on-experience of real world refactoring by taking an open source project and refactoring it.
Benefits
After attending this session, the participants should be able to:
Build a common vocabulary in the refactoring space
Identify code smells
Eliminate code smells by applying the simple refactoring techniques explained in Martin Fowler‘s “Refactoring”
Write better unit/functional tests for legacy code
Understand some of the techniques and pitfalls in refactoring legacy code in the absence of unit and functional tests [”Working effectively with legacy code “]
Take existing code and refactor it to standard design patterns [Refactoring to patterns]
Learn about the internals of the open source project chosen to refactor
Know where to look to continue learning the techniques of refactoring
You've heard about limiting WIP (Work-In-Progress) but how good are you at limiting red time? Red time is when you have compilation errors and/or failing tests. A growing group of practitioners have learned how to effectively reduce red time while test-driving and refactoring code. To understand how to limit red time, it helps to visualize it.
In this talk, Naresh Jain demonstrates various strategies to limit your time in Red. He analyzes live programming sessions using graphs that clearly visualize red time. You'll learn what programming processes help or hurt our ability to limit red time and you'll gain an appreciation for the visual cues that can help make you a better programmer and fellow member of the Limited Red Society.
The objectives of this workshop are the following:
Use two 45 min activities to simulate the software development cycle. One will make use of a Waterfall approach, while the other will make use of an Agile approach to help participants experience the different outcomes of each methodology.
Introduce Agile as an adaptive, intuitive learning experience while cautioning participants that it is not a silver bullet. (People OVER Process.)
Demonstrate and emphasize the importance of communication and feedback on software projects. (Collaboration OVER Throw-It-Over-The-Wall.)
Assign participants to different roles that exist within a development team to help them look at software development from different perspectives and gain better understanding of and respect for team work.
"Before you write any code, make sure you have a failing test." This was a revolutionary idea, when it was first pitched in the late 90’s. Many successful entrepreneurs have been practicing a similar approach – "Before you build a product/service, make sure you have paying customers." In this talk, Naresh Jain shares his approach of finding effective MVPs to validate his Educational Product. Recently Naresh's article title "Sell before you build" was published by InfoQ http://www.infoq.com/articles/sell-before-you-build
Naresh and Shyam's experience report how teams and their interactions evolved at various large enterprise thru their agile transition in the last 5-6 years.
"Release Early, Release Often" is a proven mantra, but what happens when you push this practice to it's limits? .i.e. deploying latest code changes to the production servers every time a developer checks-in code.
At Industrial Logic, developers are deploying code dozens of times a day, rapidly responding to their customers and reducing their "code inventory".
In this talk I explained the approach, deployment architecture, tools and culture needed for CD and how at Industrial Logic, we have gradually got there.
You can walk away with some good ideas of how your company can practice CD too.
This is supposed to be an introductory presentation on Agile.
In this presentation I give some examples of heavy weight methods and their implications on your project. Then I give a quick overview of Agile methods, the rationale behind it, its origin, its values and principles. I move on to describe that what I see happening today in the industry is really waterfall in the name of Agile. I give some reasons why this is happening and then I give some pointers to move away from this flawed thinking.
Bottom line, Agile is not a Silver Bullet and don't fall pray to marketing gimmicks. Question dogmatic claims. Adapt Agile to your needs and take baby steps.
Welcome to Innovation Territory - ProductCamp Vancouver 2013Cynthia DuVal
Cynthia DuVal along with colleagues Stewart Rogers and Elizabeth Yeung describe a design ethnography and innovation discovery project we did for a software company that resulted in a 5-year innovation roadmap.
Arlen Bankston
Arlen is an established leader in the application and evolution of process management methodologies such as Lean, Six Sigma and BPM, as well as Agile software development processes such as Extreme Programming (XP) and Scrum. He is a Lean Six Sigma Master Black Belt and Certified ScrumMaster Trainer. He also has twelve years of experience in product design, leveraging principles of information architecture, interaction design and usability to develop innovative products that meet customers’ expressed and unspoken needs. Arlen has led Agile and Lean deployment and managed process improvement projects at clients such as Capital One, T. Rowe Price, Freddie Mac, and the Armed Forces Benefits Association. Arlen’s recent work has centered on combining Lean Six Sigma process improvement methods with Agile execution to dramatically improve both the speed and quality of business results. He has also led the integration of interaction design and usability practices into Agile methodologies, presenting and training frequently at both industry conferences and to Fortune 100 clients.
Techniques for Effectively Slicing User Stories by Naresh JainNaresh Jain
In order to achieve my goals, as a buyer of your product, I want awesome feature. AT: make sure your users stories don't get in the way.
Users Stories, the tool teams use to break big ideas into small demonstrable deliverable, are easy to describe and challenging to write effectively. In this hands-on workshop you'll learn how to write great user stories and acceptance criteria, that everyone on the team understands. We'll learn various techniques to slice your stories using the tracer-bullet approach. We will discuss what elements should be included in the stories, what criteria you should keep in mind while slicing stories; why the size of your user story is important and how to make them smaller and efficient.
Agenda:
What do you do to Large Stories? Spike, Split, Stub & Timebox (SSST) technique.
Core Slicing Techniques:
1. System Slice
1.a. Static vs. Dynamic
1.b. Real-time vs. Batch Processing
1.c. Build vs. Buy
1.d. Automated vs. Manual Steps
1.e. Defer certain roles
2. Behavioural Slice
2.a. Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton
2.a.1. Acceptance Criteria
2.b. By-pass certain steps in the workflow
2.c. Focus on Happy Path First (edge cases later)
2.d. No options - 1 option - Many options
3. Incrementally improve ‘Ilities' (Usability, Scalability, Reliability, etc.)
3.a. Simpler UI (even consider using a standard UI)
3.b. Minmal Data
3.c. Improve Performance Iteratively
Bridging Silos Between SEO, UX, and Content for Big Marketing Wins | Digital ...Rebekah Baggs
Brilliant marketing results aren’t created in a vacuum. Rebekah will show you how to bridge the gap between SEO, content, and UX with an effective framework your team can use to deliver radically relevant digital experiences when and where it matters most.
During this session you’ll learn how to:
- Leverage keyword data to unite your UX, SEO, and content efforts
- Avoid classic marketing mistakes that stem from fractured strategies and disconnected teams
- Holistically optimize your digital presence across the web with practical, real-world approaches
Bridging Silos Between SEO, UX, and Content for Big Marketing Wins | #DSCHIRebekah Baggs
Brilliant marketing results aren’t created in a vacuum. Rebekah will share practical ways to unite SEO, content, and UX with an effective framework your team can use to deliver radically relevant digital experiences when and where it matters most.
After this session, you’ll be able to:
Leverage keyword data to unite your UX, SEO, and content efforts
Avoid classic marketing mistakes that stem from fractured strategies and disconnected teams
Holistically optimize your digital presence across the web with practical, real-world approachesBrilliant marketing results aren’t created in a vacuum. Rebekah will share practical ways to unite SEO, content, and UX with an effective framework your team can use to deliver radically relevant digital experiences when and where it matters most.
After this session, you’ll be able to:
Leverage keyword data to unite your UX, SEO, and content efforts
Avoid classic marketing mistakes that stem from fractured strategies and disconnected teams
Holistically optimize your digital presence across the web with practical, real-world approaches
Problem Solving Techniques For Evolutionary DesignNaresh Jain
In this workshop, Naresh Jain explains what are the core techniques one should master to effectively practice evolutionary design while solving real-world problems. To summarize:
1. Eliminate Noise - Distill down the crux of the problem
2. Divide and Conquer to prioritize and focus on the most important part
3. Add constraints to future simplify the problem
4. Come up with a simple design to incrementally build your solution
5. Refactor: Pause, look for a much simpler alternative
6. Be ready to throw away your solution & start again
Agile India 2019 Conference Welcome NoteNaresh Jain
We are super excited to announce the 15th edition of Agile India 2019, Asia's Largest and Premier International conference on Leading Edge Software Development Methods. Agile India is hosted by Agile Alliance and organized by Agile Software Community of India, a non-profit registered society founded in 2004 with a vision to evangelize new, better ways of building products & services that delight the users.
Over the last 15 years, we've organized 57 conferences across 13 cities in India. We've hosted 1,000+ speakers from 38 countries, who have delivered 1,200+ sessions to 10,000+ attendees. We continue to be a non-profit, volunteer-run community conference.
Agenda
* Agile Coach Camp - March 17th
* Pre-Conference Workshops – March 18th
* Conference Days
** Agile Mindset Day - March 19th
** Business Agility Day - March 20th
** Design Innovation Day - March 21st
** Continuous Delivery and DevOps Day - March 22nd
* Post-Conference Workshops – March 23rd and 24th
More details: https://2019.agileindia.org
A resilient organizational can not only adapt and respond to incremental change but more importantly, can respond to sudden disruptions and also, be the source of disruption in order to prosper and flourish.
The traditional risk management approach focuses too much on defensive (stopping bad things happen) thinking versus a more progressive (making good things happen) thinking. Being defensive requires consistency across the organization and this is where methodologies like Plan-Do-Check-Act (PDCA) come in. However, PDCA approach does not bake in the required progressive thinking and flexibility required for a fast company organization which operates in a volatile environment.
Professor David Denyer of Cranfield University has recently published a very interesting research report on Organizational Resilience. He has identified the following four quadrants across to help us think about organizational resilience:
* preventative control (defensive consistency)
* mindful action (defensive flexibility)
* performance optimization (progressive consistency)
* adaptive innovation (progressive flexibility)
In this talk, I'll share my personal experience of using this thinking to help an organization to scale their product to Millions of users. I've dive deep into how we structured our organization for Structural Agility and how we set-up a very lightweight governance model using OKRs to drive the necessary flexible and progressive thinking.
More details: https://confengine.com/agile-india-2019/proposal/8216/organisational-resilience-design-your-organisation-to-flourish-not-merely-survive
Conference Link: https://2019.agileindia.org
Looking to move to Continuous Delivery? Worried about the quality of your the code? Helping your developers understand clean-code practices and getting the right testing strategy in place can take a while. What should you do to control the quality of the incoming code till then? This talk shares our experience of using PRRiskAdvisor to gradually educate and influence developers to write better code and also help the code reviewer to be more effective at their reviews.
Every time a developer raises a pull-request, PRRiskAdvisor analyzes the files that were changed and publishes a report on the pull request itself with the overall risk associated with this pull request and also risk associated with each file. It also runs static code analysis using SonarQube and publishes the configured violations as comments on the pull request. This way the reviewer just has to look at the pull request to get a decent idea of what it means to review this pull request. If there are too many violations, then PRRiskAdvisor can also automatically reject the pull request.
By doing this, we saw our developers starting paying more attention to clean code practices and hence the overall quality of the incoming code improved, while we worked on putting the right engineering practices and testing strategy in place.
More details: https://confengine.com/last-conference-canberra-2018/proposal/7294/improving-the-quality-of-incoming-code
Conference Link: https://2019.agileindia.org
Here is a quick summary of Agile India 2018 Conference, Asia's Largest and Premier Conference on Business Agility, Design Innovation, Digital Transformation, Continuous Delivery, DevOps, Agile, Scrum, eXtreme Programming, Lean, Kanban, Enterprise Agile, Lean Startup, Research, and Patterns. Get to meet pioneers and expert practitioners from around the world on Agile Mindset, Scaling Agility, Lean Product Discovery, Continuous Delivery and DevOps. 4 - 11 March 2018 at Taj West End, Bangalore. More details: https://2018.agileindia.org
We are very excited to announce the 14th edition of Agile India Conference (https://2018.agileindia.org/) with brand new themes and a fabulous lineup of speakers. Agile India is Asia's Largest & Premier International conference on Leading Edge Software Development Methods.
Meet:
* Alan Cooper - The Father of Visual Basic, Creator of Goal-directed Design methodology and inventor of the Persona concept
* Steve Denning - Author of several books on Management, Leadership, Innovation and Organizational Storytelling
* Linda Rising - Author of four books, most recently the Fearless Change
* Gregor Hohpe - Author of Enterprise Integration Patterns. Technical Director at Google Cloud Computing
* James Stewart - Co-founder of the Government Digital Service and x-Deputy CTO of the UK Government
* Bjarte Bogsnes - Author of Implementing Beyond Budgeting, Chairman of Beyond Budgeting Roundtable and Senior Advisor Performance Framework at Statoil
* Dr. Denis Bauer - Team Leader and Research Scientist in Cloud Computing in Transformational Bioinformatics at CSIRO
* Jeff Patton - Author of User Story Mapping and the person responsible for bringing user-centered design thinking to Agile world
* Peter Jacobs - Chief Information Officer and board member of ING Bank Netherlands
* Nils Kappeyne - VP & CIO for Integrated Gas & New Energies at Shell
* And 70 more thought leaders from 16 countries - https://2018.agileindia.org/speakers/
The program spreads across 8 days (March 4-11th 2018, Bengaluru) with two pre-conference plus two post-conference workshop days and four days of conferences in between:
* March 4-5th: Pre-Conference Workshops from our international experts
* March 6th: Business Agility Day - Hosted by Agile Alliance
* March 7th: Design Innovation Day - Hosted by Cooper
* March 8th: Digital Transformation Day
* March 9th: DevOps and Continuous Delivery Day - Hosted by Red Hat
* March 10-11th: Post-Conference Workshops from our international experts
Schedule
========
Check out conference schedule for the lineup of workshops and speakers. https://confengine.com/agile-india-2018/schedule
Tickets
=======
Conference registration is now open and Smart Price offers are going away soon. Register now for best deals!! https://confengine.com/agile-india-2018/register
Check out the exciting offers for bulk registrations - https://2018.agileindia.org/agile-india-2018-bulk-booking-offers/.
Sponsors
========
We thank Agile Alliance, Cooper, RedHat, Scrum.org, Shell, AddTeq/Atlassian, Scaled Agile, ICAgile and Scrum Alliance for sponsoring the conference. If your organization wants to support this non-profit, volunteer-run conference, please check out sponsorship options https://confengine.com/agile-india-2018/sponsor#guide
Agile India 2018 Conference is Asia's Largest and Premier Conference on Business Agility, Design Innovation, Digital Transformation, Continuous Delivery, DevOps, Agile, Scrum, eXtreme Programming, Lean, Kanban, Enterprise Agile, Lean Startup, Research, and Patterns. Get to meet pioneers and expert practitioners from around the world on Agile Mindset, Scaling Agility, Lean Product Discovery, Continuous Delivery and DevOps. 4 - 11 March 2018 at Taj West End, Bangalore. More details: https://2018.agileindia.org
Agile India 2018 Conference is Asia's Largest and Premier Conference on Business Agility, Design Innovation, Digital Transformation, Continuous Delivery, DevOps, Agile, Scrum, eXtreme Programming, Lean, Kanban, Enterprise Agile, Lean Startup, Research, and Patterns. Get to meet pioneers and expert practitioners from around the world on Agile Mindset, Scaling Agility, Lean Product Discovery, Continuous Delivery and DevOps. 4 - 11 March 2018 at Taj West End, Bangalore. More details: https://2018.agileindia.org
Pilgrim's Progress to the Promised Land by Robert VirdingNaresh Jain
When migrating to Elixir/OTP from other languages and systems a number of issues will always crop up. The trick is to make sure that these issues don't become problems. This talk will look at some of the more common ones and what to do about them to make sure they don't become problems.
More details: https://confengine.com/functional-conf-2017/proposal/5138/pilgrims-progress-to-the-promised-land
Conference: https://functionalconf.com
Concurrent languages are Functional by Francesco CesariniNaresh Jain
The functional paradigm has been influencing mainstream languages for decades, making developers more efficient whilst helping reduce software maintenance costs. As we are faced with a programming model that needs to scale on multi-core architectures, concurrency becomes critical. In these concurrency models, the functional programming paradigm will become even more evident. To quote Simon Peyton Jones, future concurrent languages will be functional; they might not be called functional, but the features will be.
Using his 20 years of programming and teaching Erlang/OTP, Francesco will walk through the functional programming features that make implementations of the actor model viable in the Erlang ecosystem. These are features we might take for granted or do not think about, but have laid the foundation of multi-core and distributed programming, influencing programming languages, old and new.
More details: https://confengine.com/functional-conf-2017/proposal/4774/concurrent-languages-are-functional
Erlang from behing the trenches by Francesco CesariniNaresh Jain
Erlang is a programming language designed for the Internet Age, although it pre-dates the Web. It is a language designed for multi-core computers, although it pre-dates them too. It is a “beacon language”, to quote Haskell guru Simon Peyton-Jones, in that it more clearly than any other language demonstrates the benefits of concurrency-oriented programming. In this talk, I will introduce Erlang from behind the trenches. By introducing the major language constructs, describe their benefits and discuss the problems Erlang is ideal to solve. I will be doing so from a personal prospective, with anecdotes from my time as an intern at the Ericsson computer science lab at a time when the language was being heavily influenced and later when working on the OTP R1 release.
More details: https://confengine.com/functional-conf-2017/proposal/4787/an-introduction-to-erlang-from-behind-the-trenches
Anatomy of an eCommerce Search Engine by Mayur DatarNaresh Jain
In this talk, the chief Data scientist of Flipkart will uncover the various challenges in running an e-commerce search platform like scale, recency, update rates, business shaping etc. He will also explain the overall system architecture of the search platform and get into the details of some of the sub-systems, including the query understanding and rewriting sub-system.
Setting up Continuous Delivery Culture for a Large Scale Mobile AppNaresh Jain
Hike is a mobile-first, messaging platform that is used by 100 million users to exchange 40 billion messages/month. Hike app is available on Android, iOS and Windows phone. On the back-end, we’ve 100+ macro-services in Java, Python, Ruby, Go and Elixir. While setting up a Continuous Delivery pipeline, we ran into a series of technical challenges. However it was more important to address the organisational/behavioural challenges to ensure a sustainable culture shift in the company.
In this talk, I cover how we went about:
* Setup a trunk-based development model
* Decentralised our build & test environments using Docker and Jenkins
* Segregated and containerised our macro-services
* Refactored the mobile apps to be more container friendly
* Setup a mobile device farm using STF
* Improved the quality of code-reviews using PRBuilder & PRRiskAdvisor
* Created different kinds of automated tests to align with our CI Pipeline and get rapid feedback
* Finally how we used C3 to visualise the health of our code-base
Towards FutureOps: Stable, Repeatable environments from Dev to ProdNaresh Jain
Modern human history is a story of humans inventing new tools to do more with less. "Doing more" has allowed most of us to no longer worry about producing our own food, collecting water, planning long journeys, etc. Instead, we’re able to specialize, buy what we need for less, and to some extent explore ourselves a lot more.
We're far from done, and of course humanity is far from perfect. In this talk, Mitchell Hashimoto discusses the role that automations and computers play in building a brighter future.
More details: https://confengine.com/agile-india-2017/proposal/3618/towards-futureops-stable-repeatable-environments-from-dev-to-prod
Value Driven Development by Dave Thomas Naresh Jain
Agile, OOP... are like good hygiene in the kitchen, it results in meals with consistent quality and predictable prep and service times. It doesn't result in great meals nor substantially impact the ROI! Lean Thinking clearly shows that the only way to make a significant impact is to improve the value chain by improving flow. If everyone is following best practices no one has competitive advantage. Major improvements in the value chain depend on continued disruptive innovations. Innovations leverage people and their ideas. We use case studies to illustrate the different business and technical innovations and their impact. We conclude with a discussion of how to build and leverage an innovation culture versus a sprint death march when dealing with high value time to market projects.
More details: https://confengine.com/agile-india-2017/proposal/3608/value-driven-development-maximum-impact-maximum-speed
No Silver Bullets in Functional Programming by Brian McKennaNaresh Jain
We are constantly presented with trade-offs when writing software. What are the trade-offs when applying functional programming? What costs arise? When is it not worth doing? When should pragmatism kick in and when should we start using side-effects?
This talk will give you some tools to be able to answer the above questions for both functional programming and types. The tools have been refined over many professional years of both doing and not doing purely functional programming.
More details: https://confengine.com/functional-conf-2016/proposal/3137/no-silver-bullets-in-functional-programming
For over 35 years, functional programming has been a hot research topic. However in the last 5 years, driven by the need to build massively concurrent systems and to handle big-data, we have experienced a rapid adoption of functional programming concepts by diverse companies, ranging from tech start-ups to financial institutes.
These days, functional programming is at the heart of every, new generation programming technologies. Companies are employing functional programming to enable more effective, robust, and flexible software development. This has given birth to a very vibrant community of functional programmers, who are constantly exploring ways to bring functional programming concepts to the world of enterprise software development.
Functional Conf is designed to bring the growing community of functional programmers together under one roof. At Functional Conf:
participants can understand the fundamentals concepts behind functional programming,
they can learn how others are using functional programming to solve real world problems,
practitioners can meet peers and exchange their experience,
experts can share their expertise on practical usage and gotchas in functional programming concepts.
More details: http://functionalconf.com/ or https://confengine.com/functional-conf-2016
Agile India 2017 Conference is Asia's Largest and Premier Conference on Agile, Scrum, eXtreme Programming, Lean, Kanban, DevOps, Enterprise Agile, Lean Startup, Continuous Delivery, Research and Patterns. Get to meet pioneers and expert practitioners from around the world on Agile Mindset, Scaling Agility, Lean Product Discovery, Continuous Delivery and DevOps. 6 - 12 March 2017 at ITC Gardenia, Bangalore. More details: http://2017.agileindia.org
This talk will explain the secret of the success of the Eclipse Platform team. The Eclipse Way is an agile software development process that we started right at the beginning when we started to develop Eclipse back in 1999. It was and is used by the Eclipse Platform team and got continuously improved over time. During the session you will hear about all our practices, like milestones, early and iterative planning, continuous integration and the endgame. I will also reveal some of the history behind the Eclipse top-level project.
More details: https://confengine.com/eclipse-summit-2016/proposal/2386/the-eclipse-way
Unleashing the Power of Automated Refactoring with JDTNaresh Jain
Refactoring is a series of small steps, each of which changes the program’s internal structure without changing its external behaviour. Refactoring, as a tool, to automate behaviour-preserving transformations to source code are not only very popular in agile development environments, but have been widely established as a cornerstone of the daily software development process, regardless of the methodology being used. Most major development environments such as Eclipse offer a set of powerful refactoring to substantially increase development productivity.
In this live demo, I’ll show
* the real value of refactoring,
* how we practice it safely,
* when and why we refactor,
* the power of refactoring tools and
* when we avoid refactoring.
I’ll be using two real-world examples of refactoring and sharing what I’ve learned about this important practice of the last 15 years.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
ATDD - Acceptance Test Driven Development
1. Acceptance Test
Driven Development
Naresh Jain
naresh@agilefaqs.com
http://blogs.agilefaqs.com
Licensed Under Creative Commons by Naresh Jain
1
2. Warmup Scenarios
Licensed Under Creative Commons by Naresh Jain
2
3. Warmup Scenarios
Pick one scenario and in relation to your scenario,
what are the specific observable results that will
tell you that the activity has been successfully
completed?
Licensed Under Creative Commons by Naresh Jain
2
4. Warmup Scenarios
Pick one scenario and in relation to your scenario,
what are the specific observable results that will
tell you that the activity has been successfully
completed?
Going out for Movie (THX sound and Digital projection)
Licensed Under Creative Commons by Naresh Jain
2
5. Warmup Scenarios
Pick one scenario and in relation to your scenario,
what are the specific observable results that will
tell you that the activity has been successfully
completed?
Going out for Movie (THX sound and Digital projection)
Going out for meal (one veg.)
Licensed Under Creative Commons by Naresh Jain
2
6. Warmup Scenarios
Pick one scenario and in relation to your scenario,
what are the specific observable results that will
tell you that the activity has been successfully
completed?
Going out for Movie (THX sound and Digital projection)
Going out for meal (one veg.)
Going shopping ($50)
Licensed Under Creative Commons by Naresh Jain
2
7. Warmup Scenarios
Pick one scenario and in relation to your scenario,
what are the specific observable results that will
tell you that the activity has been successfully
completed?
Going out for Movie (THX sound and Digital projection)
Going out for meal (one veg.)
Going shopping ($50)
[10 Minutes]
Licensed Under Creative Commons by Naresh Jain
2
8. Warmup Scenarios
Pick one scenario and in relation to your scenario,
what are the specific observable results that will
tell you that the activity has been successfully
completed?
Going out for Movie (THX sound and Digital projection)
Going out for meal (one veg.)
Going shopping ($50)
[10 Minutes]
Present back to the group your findings. [3 minutes per group]
Licensed Under Creative Commons by Naresh Jain
2
9. What is a Story?
Story is a smallest piece of functionality that add business value
Story Title - Actor Action Context
As a .. <user who requires this feature>
I want .. <do something>
So that... <user goal/business justification>
Ron Jeffries’ 3 Cs - Card, Conversation and Confirmation
3
10. Story Example
Title: Keen Reader subscribes to a blog
As a keen reader of your blog
I want to subscribe to your blog
So that I can stay up-to-date with the new posts
4
11. Another Story Example
Title: Social Networking Enthusiast uploads profile picture
As a Social Networking Enthusiast
I want to upload my profile picture
So my friends can see how I look and recognize me
5
23. Stories are fundamental unit of activity
Business Goals Product Backlog
Inception
As a ____, I want to
be able to ____ so
that ____
Might have an initial estimate
(perhaps for both analysis
and development), and an
expression of technical and
business confidence that this
is real and achievable
7
24. Stories are fundamental unit of activity
Business Goals Product Backlog
Inception
Release planning
As a ____, I want to
be able to ____ so
that ____
Might have an initial estimate
(perhaps for both analysis
and development), and an
expression of technical and
business confidence that this
is real and achievable
7
25. Stories are fundamental unit of activity
Business Goals Product Backlog Release Backlog
Inception
Release planning
As a ____, I want to As a ____, I want to
be able to ____ so be able to ____ so
that ____ that ____
I will know this is done
when _______
Might have an initial estimate
(perhaps for both analysis
and development), and an
expression of technical and
business confidence that this
is real and achievable More detailed estimate, and a
specific acceptance test – low
confidence stories might be
“spiked” or prototyped
7
26. Stories are fundamental unit of activity
Business Goals Product Backlog Release Backlog
Inception
Release planning Sprint planning
As a ____, I want to As a ____, I want to
be able to ____ so be able to ____ so
that ____ that ____
I will know this is done
when _______
Might have an initial estimate
(perhaps for both analysis
and development), and an
expression of technical and
business confidence that this
is real and achievable More detailed estimate, and a
specific acceptance test – low
confidence stories might be
“spiked” or prototyped
7
27. Stories are fundamental unit of activity
Business Goals Product Backlog Release Backlog Sprint Backlog
Inception
Release planning Sprint planning
As a ____, I want to As a ____, I want to As a ____, I want to
be able to ____ so be able to ____ so be able to ____ so
that ____ that ____ that ____
Possible automation
of the acceptance
test
I will know this is done I will know this is done
when _______ when _______
Might have an initial estimate
(perhaps for both analysis
and development), and an Development team
expression of technical and breaks out the detail
To do this I must:
business confidence that this of work needed to
1) _____
is real and achievable More detailed estimate, and a pass test
2) _____
specific acceptance test – low
confidence stories might be
“spiked” or prototyped
7
28. Acceptance Criteria
Is a set of conditions that the Story must meet for it to be
accepted as complete
Is typically provided by the customer or product owner.
Is not a replacement for conversation.
Is the results of the conversation
Acceptance Criteria are NOT tests
8
29. Writing Acceptance Criteria
Acceptance Criteria should contain:
ACTOR
VERB – DESCRIBING A BEHAVIOR
OBSERVABLE RESULT
To accommodate pre-conditions Acceptance Criteria can be expressed as
Given [Precondition]
When [Actor + Action]
Then [Observable Result]
9
31. Example
Social Networking Enthusiast uploads profile picture
Given the user has a valid facebook account and a digital picture on her computer,
When she uploads a picture in facebook,
Then her the picture should be visible to all her friends in her network.
10
32. Example
Social Networking Enthusiast uploads profile picture
Given the user has a valid facebook account and a digital picture on her computer,
When she uploads a picture in facebook,
Then her the picture should be visible to all her friends in her network.
Given an user is trying to find a friend on facebook,
When the user searches for a person using their name,
Then their profile picture should be displayed along with other details.
10
33. Example
Social Networking Enthusiast uploads profile picture
Given the user has a valid facebook account and a digital picture on her computer,
When she uploads a picture in facebook,
Then her the picture should be visible to all her friends in her network.
Given an user is trying to find a friend on facebook,
When the user searches for a person using their name,
Then their profile picture should be displayed along with other details.
As owner of facebook,
I want users to upload authentic, personal profile picture,
So facebook's reputation remains intact and facebook stays out of legal hassles.
10
34. Acceptance Criteria & Tests: Definition
Acceptance Tests
Licensed Under Creative Commons by Naresh Jain
11
35. Acceptance Criteria & Tests: Definition
Acceptance Tests
Acceptance Criteria
Licensed Under Creative Commons by Naresh Jain
11
36. Acceptance Criteria & Tests: Definition
Acceptance Tests
Acceptance Criteria
+
Licensed Under Creative Commons by Naresh Jain
11
39. Tasks
Team members further break down each story into tasks that need
to be completed to meet the acceptance criteria for the story.
12
40. Tasks
Team members further break down each story into tasks that need
to be completed to meet the acceptance criteria for the story.
To accomplish this story:
we start off with a simple upload and image display
12
41. Tasks
Team members further break down each story into tasks that need
to be completed to meet the acceptance criteria for the story.
To accomplish this story:
we start off with a simple upload and image display
restrict user to only upload certain image types (gif, jpg and png)
12
42. Tasks
Team members further break down each story into tasks that need
to be completed to meet the acceptance criteria for the story.
To accomplish this story:
we start off with a simple upload and image display
restrict user to only upload certain image types (gif, jpg and png)
figure out where to store the image. (performant and fault-tolarent)
12
43. Tasks
Team members further break down each story into tasks that need
to be completed to meet the acceptance criteria for the story.
To accomplish this story:
we start off with a simple upload and image display
restrict user to only upload certain image types (gif, jpg and png)
figure out where to store the image. (performant and fault-tolarent)
scale down (size, resolution, etc.) of the image
12
44. Tasks
Team members further break down each story into tasks that need
to be completed to meet the acceptance criteria for the story.
To accomplish this story:
we start off with a simple upload and image display
restrict user to only upload certain image types (gif, jpg and png)
figure out where to store the image. (performant and fault-tolarent)
scale down (size, resolution, etc.) of the image
and so on...
12
45. Demo
Roman Numerals to Decimal Conversion Example
Licensed Under Creative Commons by Naresh Jain
13
46. Demo
Real World Domain Forwarding Server
Licensed Under Creative Commons by Naresh Jain
14
48. Thinking in Tables
Only Tables Execute
Ignored
Executed
Licensed Under Creative Commons by Naresh Jain
16
49. Thinking in Tables
Foundational Table Structure
Name of Fixture
Interaction with Application
Table structure depends on type of Fixture
Licensed Under Creative Commons by Naresh Jain
17
50. Thinking in Tables
3 Foundation Fixtures
Column Fixture
Row Fixture
Action Fixture
Licensed Under Creative Commons by Naresh Jain
18
51. Thinking in Tables
Column Fixture
Licensed Under Creative Commons by Naresh Jain
19
52. Thinking in Tables
Row Fixture
Analogous to comparing
against rows in a
database table
Licensed Under Creative Commons by Naresh Jain
20
53. Thinking in Tables
Action Fixture
Think GUI window Counter Window
Counter:
public class CountFixture extends Fixture {
private int counter = 0; Counter: 6
public void count() { Count
counter++;
}
public int counter() {
return counter;
}
}
Licensed Under Creative Commons by Naresh Jain
21
55. FitLibrary
FitLibrary Fixtures
ArrayFixture for ordered lists
SetFixture for unordered lists
SetUpFixture
Supports
Graphics
Tree structures
Nested Tables
Licensed Under Creative Commons by Naresh Jain
23
56. FitLibrary
DoFixture
• Broken tables
• Highly readable
• Flexibility
Licensed Under Creative Commons by Naresh Jain
24
57. Tools
FIT
Framework for Integrated Tests
Created by Ward Cunningham
Open Source
The most accepted solution for agile acceptance testing
Licensed Under Creative Commons by Naresh Jain
25
58. Tools
FitNesse
Environment build around FIT
Makes everything easier
Created by Object Mentor, Inc.
Open Source
Licensed Under Creative Commons by Naresh Jain
26
59. FIT FitNesse
- Stand alone web server
- Is a wiki
- Tests written in HTML
- Tests written in wiki text
- Tests are executed on the command line
- Tests are executed from within the wiki
- Tables are executed
- Translates tests into HTML
- Non-table markup is ignored
- Uses FIT to execute tests
- Tables map to Fixtures
- Supports test suites
- Fixtures are code that is aware of the
- Supports variables in tests
system
- Supports test refactoring
- Supplies foundational Fixtures
- Written in Java
- Implementations ported to many
- Supports FIT implementations in any
languages
language
Licensed Under Creative Commons by Naresh Jain
27
60. Acceptance Criteria
and Tests:
A Critical Piece of Agile
Licensed Under Creative Commons by Naresh Jain
28
61. Acceptance Criteria & Tests: A Critical Piece of Agile
Traditional Approach
1 May 1 Jul 1 Sep 1 Nov
Analysis
Design
Implementation
ERD
DFD
DD
ST
Licensed Under Creative Commons by Naresh Jain
29
62. Key Questions
Business Facing
Are we building the right product?
Are we building the product right?
Technology/Implementation Facing
Licensed Under Creative Commons by Naresh Jain
30
63. Brian Marick’s Test Categorization
Business Facing
Supports Programming
Critique product
Technology/Implementation Facing
Licensed Under Creative Commons by Naresh Jain
31
64. It Helps to Think of Tests this way...
Business Facing
Drives Development
Critique product
Technology/Implementation Facing
Licensed Under Creative Commons by Naresh Jain
32
65. It Helps to Think of Tests this way...
Business Facing
Drives Development
Critique product
Unit Testing
Technology/Implementation Facing
Licensed Under Creative Commons by Naresh Jain
32
66. It Helps to Think of Tests this way...
Business Facing
Acceptance Testing
Drives Development
Critique product
Low-fi prototypes
Unit Testing
Technology/Implementation Facing
Licensed Under Creative Commons by Naresh Jain
32
67. It Helps to Think of Tests this way...
Business Facing
Acceptance Testing Exploratory Testing
Drives Development
Critique product
Low-fi prototypes UI and Usability Testing
Unit Testing
Technology/Implementation Facing
Licensed Under Creative Commons by Naresh Jain
32
68. It Helps to Think of Tests this way...
Business Facing
Acceptance Testing Exploratory Testing
Drives Development
Critique product
Low-fi prototypes UI and Usability Testing
Performance Testing
Unit Testing
System Tests
Technology/Implementation Facing
Licensed Under Creative Commons by Naresh Jain
32
69. Avatars of TDD
Business Facing
Drives Development
Critique product
Inside Out
Outside In
Technology/Implementation Facing
Licensed Under Creative Commons by Naresh Jain
33
71. Test Driven Development
Add a Test
TDD Rhythm - Test, Code, Refactor
Licensed Under Creative Commons by Naresh Jain
34
72. Test Driven Development
Add a Test
Run the Test
TDD Rhythm - Test, Code, Refactor
Licensed Under Creative Commons by Naresh Jain
34
73. Test Driven Development
Add a Test
Pass
Run the Test
TDD Rhythm - Test, Code, Refactor
Licensed Under Creative Commons by Naresh Jain
34
74. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor
Licensed Under Creative Commons by Naresh Jain
34
75. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor Make a little
change
Licensed Under Creative Commons by Naresh Jain
34
76. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor Make a little
change
Run the Test
Licensed Under Creative Commons by Naresh Jain
34
77. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor Make a little
change
Fail
Run the Test
Licensed Under Creative Commons by Naresh Jain
34
78. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor Make a little
change
Fail
Run the Test
Pass
Licensed Under Creative Commons by Naresh Jain
34
79. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor Make a little
change
Fail
Run the Test
Pass
Refactor
Licensed Under Creative Commons by Naresh Jain
34
80. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor Make a little
change
Fail
Run the Test
Pass
Refactor
Licensed Under Creative Commons by Naresh Jain
34
81. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor Make a little
change
Fail
Run the Test
Pass
Refactor
Licensed Under Creative Commons by Naresh Jain
34
82. Test Driven Development
Add a Test
Pass
Run the Test
Fail
TDD Rhythm - Test, Code, Refactor Make a little
change
Fail
Run the Test
Pass
Refactor
Licensed Under Creative Commons by Naresh Jain
34
84. Acceptance Test Driven Development
Story
Licensed Under Creative Commons by Naresh Jain
35
85. Acceptance Test Driven Development
Acceptance
Criteria
Story
Licensed Under Creative Commons by Naresh Jain
35
86. Acceptance Test Driven Development
Iteration
Acceptance
Criteria
Story
Licensed Under Creative Commons by Naresh Jain
35
87. Acceptance Test Driven Development
Iteration
Automated
Acceptance Acceptance
Criteria Tests
Story
Licensed Under Creative Commons by Naresh Jain
35
88. Acceptance Test Driven Development
Iteration
Automated
Acceptance Acceptance
Criteria Tests
Story Automated
Unit Test
Licensed Under Creative Commons by Naresh Jain
35
89. Acceptance Test Driven Development
Iteration
Automated
Acceptance Acceptance
Criteria Tests
Story Automated
Unit Test
Automated
Acceptance
Tests
Licensed Under Creative Commons by Naresh Jain
35
90. Acceptance Test Driven Development
Iteration
Automated
Acceptance Acceptance
Criteria Tests
Story Automated
Unit Test
Automated
Acceptance
Tests
Exploratory
Testing
Licensed Under Creative Commons by Naresh Jain
35
91. Acceptance Test Driven Development
Iteration
Automated
Acceptance Acceptance
Criteria Tests
Story Automated
Unit Test
Automated
Acceptance
Tests
Acceptance
Exploratory
Criteria
Testing
Licensed Under Creative Commons by Naresh Jain
35
92. Acceptance Test Driven Development
Iteration
Automated
Acceptance Acceptance
Criteria Tests
Story Automated
Unit Test Automated
UI Tests
Automated
Acceptance
Tests
Acceptance
Exploratory
Criteria
Testing
Licensed Under Creative Commons by Naresh Jain
35
93. Acceptance Test Driven Development
Iteration
Automated P
Acceptance E
Acceptance R
Criteria Tests
F
O
Automated R
Story M T
Unit Test Automated E E
UI Tests N S
C T
E S
Automated
Acceptance
Tests
Acceptance
Exploratory
Criteria
Testing
Licensed Under Creative Commons by Naresh Jain
35
94. Mike Cohn’s Testing Pyramid
Licensed Under Creative Commons by Naresh Jain
36
95. Mike Cohn’s Testing Pyramid
GUI
Tests
Licensed Under Creative Commons by Naresh Jain
36
96. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
Licensed Under Creative Commons by Naresh Jain
36
97. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
Acceptance
Tests
Licensed Under Creative Commons by Naresh Jain
36
98. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
At least one per story
Acceptance Tools: Fit, FitNesse, RSpec, JBehave
Tests
Licensed Under Creative Commons by Naresh Jain
36
99. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
At least one per story
Acceptance Tools: Fit, FitNesse, RSpec, JBehave
Tests
Unit Tests
Licensed Under Creative Commons by Naresh Jain
36
100. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
At least one per story
Acceptance Tools: Fit, FitNesse, RSpec, JBehave
Tests
At least one per class or module
Unit Tests Tools: xUnit, TestNG
Licensed Under Creative Commons by Naresh Jain
36
101. Acceptance Tests: A Critical Piece of Agile
Criteria for DONE
Every story must have at least one Acceptance Test
A story is not DONE until it passes it’s Acceptance Tests
Licensed Under Creative Commons by Naresh Jain
37
102. Acceptance Tests: A Critical Piece of Agile
Manual Acceptance Tests
Licensed Under Creative Commons by Naresh Jain
38
103. Acceptance Tests: A Critical Piece of Agile
Manual Acceptance Tests
Manual
Acceptance Tests
Licensed Under Creative Commons by Naresh Jain
38
104. Acceptance Tests: A Critical Piece of Agile
Manual Acceptance Tests
Manual
Acceptance Tests
Licensed Under Creative Commons by Naresh Jain
38
105. Why Acceptance Tests?
Criteria for Completion
Great Collaboration tool
Source of Feedback
Real data to measure progress
Licensed Under Creative Commons by Naresh Jain
39
106. Data From Acceptance Tests
Total ATs Failing ATs Passing ATs
90
72
54
36
18
0
1 2 3 4 5 6 7 8 9 10
Licensed Under Creative Commons by Naresh Jain
40
107. Acceptance Tests Are
Automated
Licensed Under Creative Commons by Naresh Jain
41
108. Acceptance Tests: A Critical Piece of Agile
The Button
How often would you press
it?
When would you press it?
Who would press it?
Testers, Developers,
Managers, Customers,
Spectators, etc.
Licensed Under Creative Commons by Naresh Jain
42
112. Criteria for DONE
+ Automated
Licensed Under Creative Commons by Naresh Jain
43
113. Criteria for DONE
+ Automated
Executable Specification
Licensed Under Creative Commons by Naresh Jain
43
114. Acceptance Tests: A Critical Piece of Agile
Executable Specification
A new paradigm for testing
Puts quality first
Removes ambiguity from requirements
Licensed Under Creative Commons by Naresh Jain
44
116. Who Writes Acceptance Tests?
The Customer
The Customer Role
Stake holder
Business Analyst
Quality Assurance
Product Owner
Developer
Licensed Under Creative Commons by Naresh Jain
46
117. Who Writes Acceptance Tests?
Tests Get Technical
The “Customer” may need technical help to write tests
Developers and QAs are technical
Pair test authoring
Licensed Under Creative Commons by Naresh Jain
47
118. Who Writes Acceptance Tests?
Business Rules Get Fuzzy
Sometimes developers need help understanding tests
Customers know business rules
Pair test implementation
Licensed Under Creative Commons by Naresh Jain
48
120. Exercise #1
The Login Test
Write a test plan, in plain text, for the business
rules of logging in.
Web application
User credentials are stored in relational
database
Successful login redirects to “Welcome” page
Licensed Under Creative Commons by Naresh Jain
50
122. Writing Good Acceptance Tests
Login Test Possibilities
1. Direct browser to URL for login page
Licensed Under Creative Commons by Naresh Jain
52
123. Writing Good Acceptance Tests
Login Test Possibilities
1. Direct browser to URL for login page
Licensed Under Creative Commons by Naresh Jain
52
124. Writing Good Acceptance Tests
Login Test Possibilities
1. Direct browser to URL for login page
1. Enter the username ‘wallace’
Licensed Under Creative Commons by Naresh Jain
52
125. Writing Good Acceptance Tests
Login Test Possibilities
1. Direct browser to URL for login page
1. Enter the username ‘wallace’
Licensed Under Creative Commons by Naresh Jain
52
126. Writing Good Acceptance Tests
Login Test Possibilities
1. Direct browser to URL for login page
1. Enter the username ‘wallace’
Build a Testable Environment First
Licensed Under Creative Commons by Naresh Jain
52
127. Writing Good Acceptance Tests
Login Test Possibilities
1. Add some users to the system
Licensed Under Creative Commons by Naresh Jain
53
128. Writing Good Acceptance Tests
Login Test Possibilities
1. Add some users to the system
Licensed Under Creative Commons by Naresh Jain
53
129. Writing Good Acceptance Tests
Login Test Possibilities
1. Add some users to the system
3. Enter a value into the username field
Licensed Under Creative Commons by Naresh Jain
53
130. Writing Good Acceptance Tests
Login Test Possibilities
1. Add some users to the system
3. Enter a value into the username field
Licensed Under Creative Commons by Naresh Jain
53
131. Writing Good Acceptance Tests
Login Test Possibilities
1. Add some users to the system
3. Enter a value into the username field
Be Specific
Licensed Under Creative Commons by Naresh Jain
53
132. Writing Good Acceptance Tests
Tests are Examples
Use concrete examples
Specify concrete behavior
No ambiguity allowed
Licensed Under Creative Commons by Naresh Jain
54
133. Writing Good Acceptance Tests
Login Test Possibilities
1. Insert into User table values (’wallace’,
‘ilikecheeze’)
Licensed Under Creative Commons by Naresh Jain
55
134. Writing Good Acceptance Tests
Login Test Possibilities
1. Insert into User table values (’wallace’,
‘ilikecheeze’)
Licensed Under Creative Commons by Naresh Jain
55
135. Writing Good Acceptance Tests
Login Test Possibilities
1. Insert into User table values (’wallace’,
‘ilikecheeze’)
2. Open a browser to the URL http://
localhost/myapp
Licensed Under Creative Commons by Naresh Jain
55
136. Writing Good Acceptance Tests
Login Test Possibilities
1. Insert into User table values (’wallace’,
‘ilikecheeze’)
2. Open a browser to the URL http://
localhost/myapp
Licensed Under Creative Commons by Naresh Jain
55
137. Writing Good Acceptance Tests
Login Test Possibilities
1. Insert into User table values (’wallace’,
‘ilikecheeze’)
2. Open a browser to the URL http://
localhost/myapp
Avoid Implementation Details
Licensed Under Creative Commons by Naresh Jain
55
139. Good Acceptable Criteria and Tests
S
- SPECIFIC - Explicitly defined and definite
Licensed Under Creative Commons by Naresh Jain
56
140. Good Acceptable Criteria and Tests
S
- SPECIFIC - Explicitly defined and definite
M
- MEASURABLE - Possible to observe and quantify
Licensed Under Creative Commons by Naresh Jain
56
141. Good Acceptable Criteria and Tests
S
- SPECIFIC - Explicitly defined and definite
M
- MEASURABLE - Possible to observe and quantify
A
- ACHIEVABLE - Capable of existing or taking place
Licensed Under Creative Commons by Naresh Jain
56
142. Good Acceptable Criteria and Tests
S
- SPECIFIC - Explicitly defined and definite
M
- MEASURABLE - Possible to observe and quantify
A
- ACHIEVABLE - Capable of existing or taking place
R
- RELEVANT - Having a connection with the story
Licensed Under Creative Commons by Naresh Jain
56
143. Good Acceptable Criteria and Tests
S
- SPECIFIC - Explicitly defined and definite
M
- MEASURABLE - Possible to observe and quantify
A
- ACHIEVABLE - Capable of existing or taking place
R
- RELEVANT - Having a connection with the story
T
- TIME-BOUND – When will the outcome be observed
Licensed Under Creative Commons by Naresh Jain
56
144. Writing Good Acceptance Tests
Avoid Implementation Details
Acceptance Tests View
UI
Model and Presenter
Business Tier
Data Store
Licensed Under Creative Commons by Naresh Jain
57
145. Writing Good Acceptance Tests
Login Test: Possible Solution
Add user to system: (’wallace’, ‘ilikecheeze’)
Process login with username ‘wallace’ and password ‘blah’
Check login failed
Process login with username ‘wallace’ and password ‘ilikecheeze’
Check login succeeded
Licensed Under Creative Commons by Naresh Jain
58
147. Tools
Commercial Tools
WinRunner TestPartner EggPlant
Silk QTP TestComplete
RFT
Squish WindowTester
Are not suitable for Acceptance Testing in
an Agile environment
Licensed Under Creative Commons by Naresh Jain
60
148. Tools
Open Source Options
FIT Sahi Frankenstein
FitNesse Watir Cucumber
Selenium Abbot RSpec/JBehave
Among the few tools that support Test
Driven Development
Licensed Under Creative Commons by Naresh Jain
61
150. Wiki
What is it?
A collaborative web site
Editable by any
Created by Ward Cunningham
Every project should have one
http://c2.com/wiki
http://en.wikipedia.com
Licensed Under Creative Commons by Naresh Jain
63
151. Wiki
Creating Tests
Use Wiki syntax to create a page with test tables
Label the page as a Test Page
Use a page name of the form Test…
Turn on the Test property
Make sure your Fixtures are in the classpath
Use !path widget
Mechanics
!path values are concatenated
Java command to start FitServer is executed
Testable HTML is passed to FitServer
FitServer runs the tests
Results are passed back to FitNesse
Licensed Under Creative Commons by Naresh Jain
64
152. Wiki
Creating Suites
There are 2 ways to make Suites
Set the Suite property
Create a page with the Suite property
Created test pages inside this page
When the suite is executed, all child test pages will
be included in the suite execution
Use the !see widget
!see <name of test page>
All “included” tests pages will be included in the
suite execution
Run a Suite by clicking the Suite button
Licensed Under Creative Commons by Naresh Jain
65
153. Hands-on Session
Conference Proposal Submission Portal
Some sample Stories
Should be able to submit new proposal
Should be able to list all submitted proposal
Submitting proposal with same title should display appropriate error message
Should be able to delete submitted proposal based on the title
Should be able to delete submitted proposal based on the title
Should be able to search proposals by title
Should be able to search proposals by ID
Should be able to find all proposal by an author's name
Licensed Under Creative Commons by Naresh Jain
66
156. Patterns
Organizing Tests
Allowing customers to add new tests without breaking the build
Licensed Under Creative Commons by Naresh Jain
69
157. Patterns
Version Control
Keeping the acceptance test in version control with the code.
Licensed Under Creative Commons by Naresh Jain
70
158. Patterns
Cross-Functional Pairing
Using FitNesse based acceptance tests for collaboration between cross-
functional team members.
Licensed Under Creative Commons by Naresh Jain
71
159. Patterns
ATDD
Acceptance Test Driven Development
Licensed Under Creative Commons by Naresh Jain
72
160. Patterns
CSTT
Cleanup, Setup, Test, Teardown
Licensed Under Creative Commons by Naresh Jain
73
161. Patterns
Independent Tests
Tests shouldn’t depend on each other.
Tests leave the system in the same state it started in.
Licensed Under Creative Commons by Naresh Jain
74
162. Patterns
Dynamic Stubbing
Avoiding complications of external systems.
Licensed Under Creative Commons by Naresh Jain
75
163. Patterns
Non-Production Setup/Teardown
Using non-production light weigh code for setup and teardown.
Helps test only what you want to test.
Licensed Under Creative Commons by Naresh Jain
76
164. Patterns
Suite Levels
Creating different levels of suites depending on the depth/level of
feedback desired.
Smoke, Current Iteration/Sprint, Regression
Licensed Under Creative Commons by Naresh Jain
77
165. Patterns
DRY
Using !include to avoid repeating yourself.
Licensed Under Creative Commons by Naresh Jain
78
166. Patterns
Make it Real
Write ATs as close as possible to the real environment.
Licensed Under Creative Commons by Naresh Jain
79
167. Patterns
Fixture Evolution
Allow Fixture implementation to evolve over time.
Treat fixtures as first class citizens.
Licensed Under Creative Commons by Naresh Jain
80
168. Patterns
At Least One Test/Story
Every story should have at least one acceptance test
Avoid long/multipurpose tests.
Licensed Under Creative Commons by Naresh Jain
81
170. Anti-Patterns
Developer ATs
Developers writing acceptance tests by themselves, for themselves.
Licensed Under Creative Commons by Naresh Jain
83
171. Anti-Patterns
Unit Testing
Don’t write ATs at the unit testing level
Unit tests are implementation specific
ATs are NOT implementation specific
Licensed Under Creative Commons by Naresh Jain
84
172. Anti-Patterns
QA Testing Tool
Hard to write tests up front.
Perhaps only on large projects.
Licensed Under Creative Commons by Naresh Jain
85
173. Anti-Patterns
Silver Bullet
Trying to use FitNesse for all types of Acceptance Tests
UI testing
XML testing
Licensed Under Creative Commons by Naresh Jain
86
174. Anti-Patterns
Test After
Writing tests after the code is already written.
Licensed Under Creative Commons by Naresh Jain
87
175. Anti-Patterns
Hidden Test Data
Hiding test data in the fixtures.
Licensed Under Creative Commons by Naresh Jain
88
176. Anti-Patterns
Implementation Dependent ATs
Making test pages (tables) dependent on implementation details and
data structures.
Licensed Under Creative Commons by Naresh Jain
89
177. Anti-Patterns
Logging in Your Fixtures
Putting log statements or print statements in the fixture code.
Fixtures are probably too complicated.
Licensed Under Creative Commons by Naresh Jain
90
178. Reference
Portions of this presentation is adopted from Micah Martin’s
Introduction to Automated Acceptance Tests Presentation
Kent Beck, Test Driven Development By Example.
"Agile Testing Directions" - Brian Marick
http://www.opensourcetesting.org/
Licensed Under Creative Commons by Naresh Jain
91
179. The End
Questions?
naresh@agilefaqs.com
http://blogs.agilefaqs.com
Licensed Under Creative Commons by Naresh Jain
92