The document discusses test driven development (TDD) and the TDD rhythm of adding a test, running the test, making the test pass through coding, and refactoring code. It provides diagrams showing the TDD rhythm and process. It also discusses acceptance criteria and tests, different types of tests, test automation, and the benefits of TDD such as more testable and loosely coupled code, increased confidence, and easier maintenance through refactoring.
In this session, Marc Hornbeek of Spirent Communications will explain the "change-driven" method and give an overview of associated tools and actual experiences for automated, intelligent software build verification. Learn how this method enables higher test coverage during continuously varying build schedules and priorities, creating a closed-loop continuous build/test environment that is vastly more efficient than the traditional regression approaches that often lead to bottlenecks in continuous change and Agile environments.
Invited Talk, ISSTA 2nd International Workshop on End-to-end Test Script Engineering
July 16, 2012, Minneapolis.
Limitations of x-unit testing framework, MTS testing framework that combined test objects with procedural aspects of TTCN.
In this session, Marc Hornbeek of Spirent Communications will explain the "change-driven" method and give an overview of associated tools and actual experiences for automated, intelligent software build verification. Learn how this method enables higher test coverage during continuously varying build schedules and priorities, creating a closed-loop continuous build/test environment that is vastly more efficient than the traditional regression approaches that often lead to bottlenecks in continuous change and Agile environments.
Invited Talk, ISSTA 2nd International Workshop on End-to-end Test Script Engineering
July 16, 2012, Minneapolis.
Limitations of x-unit testing framework, MTS testing framework that combined test objects with procedural aspects of TTCN.
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.
"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
ATDD - Acceptance Test Driven DevelopmentNaresh Jain
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.
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
"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.
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.
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.
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
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.
"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
ATDD - Acceptance Test Driven DevelopmentNaresh Jain
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.
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
"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.
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.
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.
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.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
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.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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.
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.
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
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
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.
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
TDD Overview
1. Test Driven Development
Embrace Uncertainty
Naresh Jain
Twitter: @nashjain
http://blogs.agilefaqs.com
Licensed Under Creative Commons by Naresh Jain
Friday, October 2, 2009 1
34. 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?
Friday, October 2, 2009 18
35. 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)
Friday, October 2, 2009 18
36. 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.)
Friday, October 2, 2009 18
37. 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]
Friday, October 2, 2009 18
38. 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]
Friday, October 2, 2009 18
39. Acceptance Criteria
and Tests
A critical piece of Agile
Friday, October 2, 2009 19
40. 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 one of the results of the conversation
Acceptance Criteria are NOT tests
Friday, October 2, 2009 20
41. Given [Precondition]
When [Actor + Action]
Then [Observable Result]
Friday, October 2, 2009 21
44. Demo
Roman Numerals to Decimal Conversion Example
Friday, October 2, 2009 23
45. 1 May 1 Jul 1 Sep 1 Nov
Analysis
Design
Implementation
ERD
DFD
DD
ST
Friday, October 2, 2009 24
46. Business Facing
Are we building the right product?
Are we building the product right?
Technology/Implementation Facing
Friday, October 2, 2009 25
47. Brian Marick’s
Test Categorization
Business Facing
Supports Programming
Critique product
Technology/Implementation Facing
Friday, October 2, 2009 26
48. It Helps to think...
Business Facing
Drives Development
Critique product
Technology/Implementation Facing
Friday, October 2, 2009 27
49. It Helps to think...
Business Facing
Drives Development
Critique product
Unit Testing
Technology/Implementation Facing
Friday, October 2, 2009 27
50. It Helps to think...
Business Facing
Acceptance Testing
Drives Development
Low-fi prototypes
Critique product
Unit Testing
Technology/Implementation Facing
Friday, October 2, 2009 27
51. It Helps to think...
Business Facing
Acceptance Testing Exploratory Testing
Drives Development
Low-fi prototypes UI and Usability Testing
Critique product
Unit Testing
Technology/Implementation Facing
Friday, October 2, 2009 27
52. It Helps to think...
Business Facing
Acceptance Testing Exploratory Testing
Drives Development
Low-fi prototypes UI and Usability Testing
Critique product
Performance Testing
Unit Testing
System Tests
Technology/Implementation Facing
Friday, October 2, 2009 27
57. Acceptance Test Driven
Iteration
Automated
Acceptance
Acceptance Tests
Criteria
Story
Friday, October 2, 2009 28
58. Acceptance Test Driven
Iteration
Automated
Acceptance
Acceptance Tests
Criteria
Automated
Story Unit Test
Friday, October 2, 2009 28
59. Acceptance Test Driven
Iteration
Automated
Acceptance
Acceptance Tests
Criteria
Automated
Story Unit Test
Automated
Acceptance
Tests
Friday, October 2, 2009 28
60. Acceptance Test Driven
Iteration
Automated
Acceptance
Acceptance Tests
Criteria
Automated
Story Unit Test
Automated
Acceptance
Tests
Exploratory
Testing
Friday, October 2, 2009 28
61. Acceptance Test Driven
Iteration
Automated
Acceptance
Acceptance Tests
Criteria
Automated
Story Unit Test
Automated
Acceptance
Tests
Acceptance
Exploratory Criteria
Testing
Friday, October 2, 2009 28
62. Acceptance Test Driven
Iteration
Automated
Acceptance
Acceptance Tests
Criteria
Automated
Story Unit Test
Automated
UI Tests
Automated
Acceptance
Tests
Acceptance
Exploratory Criteria
Testing
Friday, October 2, 2009 28
63. Acceptance Test Driven
Iteration
Automated
Acceptance P
Acceptance Tests E
Criteria R
F
O
Automated R
Story Unit Test M T
Automated E E
UI Tests N S
C T
E S
Automated
Acceptance
Tests
Acceptance
Exploratory Criteria
Testing
Friday, October 2, 2009 28
66. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
Friday, October 2, 2009 29
67. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
Acceptance
Tests
Friday, October 2, 2009 29
68. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
Acceptance At least one per story
Tools: Fit, FitNesse, RSpec, Cucumber
Tests
Friday, October 2, 2009 29
69. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
Acceptance At least one per story
Tools: Fit, FitNesse, RSpec, Cucumber
Tests
Unit Tests
Friday, October 2, 2009 29
70. Mike Cohn’s Testing Pyramid
Small in Number
GUI Tools: Selenium, Sahi, Watir, Abbot, Frankenstein
Tests
Acceptance At least one per story
Tools: Fit, FitNesse, RSpec, Cucumber
Tests
At least one per class or module
Tools: xUnit, TestNG
Unit Tests
Friday, October 2, 2009 29
71. Acceptance Tests View
UI
Model and Presenter
Business Tier
Data Store
Friday, October 2, 2009 30
101. Avatars of TDD
Rule of Diversity
Distrust all claims for “One True Way”
Friday, October 2, 2009 56
102. Business Facing
Drives Development
Critique product
Inside Out
Outside In
Technology/Implementation Facing
Brian Marick’s Test Categorization
Friday, October 2, 2009 57
103. Veterinarian
Information System
Friday, October 2, 2009 58
104. Outside In: ATDD
Fitnesse Document:
Assertions: 17 right, 0 wrong, 0 ignored, 0 exceptions
com.vis.billing.fixtures.PaidCashBill
procedure details on the bill
account details
name cost
account number patient name owner name
Routine Office Visit 250
1001 Fluffy Dave Atkins
Rabies Vaccination 50
procedure details
pay Cash
name cost
patient name? owner name? account number? bill no? payment method? amount paid?
Routine Office Visit 250
Fluffy Dave Atkins 1001 1 Cash 300
Rabies Vaccination 50
bill check paid true
account number? owner name? patient name? total? paid?
1001 Dave Atkins Fluffy 300 false check total 0
Friday, October 2, 2009 59
108. Inside Out: Unit TDD
public class ClinicTest {
private Clinic clinic = new Clinic();
@Test public class BillableTest {
public void amountOnTheReceiptShouldMatchBillableAmount() throws Exception {
Billable billable = new Billable() { private static final Account daveSAccount = new Account(101, "Dave");
public int totalAmount() { return 0; } private static final List<Service> services = new ArrayList<Service>();
};
Account dave = new Account(101, "Dave"); @Test
public void totalBillableAmountShouldBeZeroIfNoServicesAreProvided() {
Receipt rcpt = clinic.payCash(dave, billable); Billable bill = new Bill(daveSAccount, services);
assertEquals("Amount on receipt does match procedure cost", billable.totalAmount(), assertEquals("Total amount is not Zero", 0, bill.totalAmount());
rcpt.getAmount()); }
}
@Test
@Test public void totalBillableAmountShouldBeTotalOfEachServiceProvided() {
public void customerPayesBillableAmountForCashTransaction() throws Exception { services.add(new Procedure("Rabies Vaccination", 250));
final int billableAmount = 56; services.add(new Procedure("Regular office Visit", 50));
class AmountCharged { int charged; };
final AmountCharged charged = new AmountCharged(); Billable bill = new Bill(daveSAccount, services);
Billable billable = new Billable() { assertEquals("Total Amount is not 300", 300, bill.totalAmount());
public int totalAmount() { }
return billableAmount;
} @After
}; public void cleanUp() {
services.clear();
Account dave = new Account(101, "Dave") { }
public void charge(int amount) { }
charged.charged = amount;
}
};
clinic.payCash(dave, billable);
assertEquals("Account is not charged billable amount", billableAmount,charged.charged);
}
}
Friday, October 2, 2009 63