How can you improve, harmonize and automate your development process using tools like Maven, Hudson, and Nexus? This presentation is a high-level overview of Java software development process improvement.
How can you improve, harmonize and automate your development process using tools like Maven, Hudson, and Nexus? This presentation is a high-level overview of Java software development process improvement.
DevOps for Drupal: Why We Cook With ChefPromet Source
DevOps for Drupal presentation given at DrupalCon 2013 in Portland. Promet Source shares secrets for automation and how to make your infrastructure hum.
Front End page speed performance improvements for DrupalAndy Kucharski
If you are a developer or business manager with responsibilities over your website, then check out this deck..
What will you learn?
The webinar, created by our Founder and CEO, Andy Kucharski, is a highly accessible, information-rich review on the ways Drupal site performance can be radically improved. Some of the main topics we will cover include:
What is slow site speed?
What tools to use to diagnose it.
Plus six key improvements to make Drupal “run fast!”
And if that’s not already enough, we will also share some best practices monitoring tips for making sure you know how the Drupal server is performing 24/7.
Devops : Automate Your Infrastructure with PuppetEdureka!
"DevOps" denotes a close collaboration and cross-pollination between previous cases i.e, purely the development roles, operations roles and QA roles. As it is necessary for the software to release at an ever-increasing rate, we can see that the old "waterfall" develop-test-release cycle is broken. Devops provides us with consistent software delivery, Faster resolution of complex problems and neatier and crisp feature delivery.
Web Performance & You - HighEdWeb Arkansas VersionDave Olsen
Today, a web page can be delivered to a desktop computer, a television, or a handheld device like a tablet or a phone. While a technique like responsive design helps ensure that our web sites look good across that spectrum of screen sizes we may forget our web sites should also be able to perform equally well across that same spectrum. While more and more of our users are shifting their Internet usage to these more varied platforms and connection speeds our development practices might not be keeping up.In this session we’ll review why optimizing web performance should be an important step in the development of responsive websites. We’ll look at the tools that can help you understand and measure the performance of those sites as well as discuss front-end and server-side techniques that can be used to help you improve their performance. Finally, since the best way to test your site is to have real devices in hand, we’ll share “lessons learned” so you can set-up your own device lab similar to what we have at West Virginia University.This presentation builds upon Dave’s “Optimization for Mobile” chapter in Smashing Magazine’s “The Mobile Book.”
DevOps for Drupal: Why We Cook With ChefPromet Source
DevOps for Drupal presentation given at DrupalCon 2013 in Portland. Promet Source shares secrets for automation and how to make your infrastructure hum.
Front End page speed performance improvements for DrupalAndy Kucharski
If you are a developer or business manager with responsibilities over your website, then check out this deck..
What will you learn?
The webinar, created by our Founder and CEO, Andy Kucharski, is a highly accessible, information-rich review on the ways Drupal site performance can be radically improved. Some of the main topics we will cover include:
What is slow site speed?
What tools to use to diagnose it.
Plus six key improvements to make Drupal “run fast!”
And if that’s not already enough, we will also share some best practices monitoring tips for making sure you know how the Drupal server is performing 24/7.
Devops : Automate Your Infrastructure with PuppetEdureka!
"DevOps" denotes a close collaboration and cross-pollination between previous cases i.e, purely the development roles, operations roles and QA roles. As it is necessary for the software to release at an ever-increasing rate, we can see that the old "waterfall" develop-test-release cycle is broken. Devops provides us with consistent software delivery, Faster resolution of complex problems and neatier and crisp feature delivery.
Web Performance & You - HighEdWeb Arkansas VersionDave Olsen
Today, a web page can be delivered to a desktop computer, a television, or a handheld device like a tablet or a phone. While a technique like responsive design helps ensure that our web sites look good across that spectrum of screen sizes we may forget our web sites should also be able to perform equally well across that same spectrum. While more and more of our users are shifting their Internet usage to these more varied platforms and connection speeds our development practices might not be keeping up.In this session we’ll review why optimizing web performance should be an important step in the development of responsive websites. We’ll look at the tools that can help you understand and measure the performance of those sites as well as discuss front-end and server-side techniques that can be used to help you improve their performance. Finally, since the best way to test your site is to have real devices in hand, we’ll share “lessons learned” so you can set-up your own device lab similar to what we have at West Virginia University.This presentation builds upon Dave’s “Optimization for Mobile” chapter in Smashing Magazine’s “The Mobile Book.”
Learn All Aspects Of Maven step by step, Enhance your skills & Launch Your Career, On-Demand Course affordable price & classes on virtually every topic.Try Before You Buy
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...Simplilearn
This presentation on "How to become a DevOps Engineer" will help you learn what is DevOps, who is a DevOps engineer, career roadmap of a DevOps engineer, certifications for DevOps engineer, and salary of a DevOps engineer. A DevOps Engineer is an IT professional who understands the software development lifecycle and uses various automation tools for developing CI/ CD pipelines. In simple words, they collaborate with developer and operation teams to deliver high-quality products within a minimum amount of time. Now, let's get started and understand a few important ways to become a DevOps engineer.
Below are explained in this presentation:
1. Who is a DevOps engineer?
2. DevOps career roadmap
3. DevOps certification
4. DevOps engineer salary
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this DevOps training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Boyd Hemphill
The pillars of DevOps are Culture, Automation, Measurement and Sharing. Docker is a rare tool at enables DevOps through all 4 pillars. These slides take a look at how Docker can affect each pillar in your organization through a Lean lens.
Vskills certification for Maven Build Professional assesses the candidate as per the company’s need for using the Maven build tool for building and managing Java based projects. The certification tests the candidates on various areas in installation, project object model, build lifecycle, profile development, running maven, configuring, assemblies, resource filtering, site generation, Archetypes, Flexmojos and android application development.
The pillars of DevOps are Culture, Automation, Measurement and Sharing. Docker is a rare tool at enables DevOps through all 4 pillars. These slides take a look at how Docker can affect each pillar in your organization through a Lean lens.
What is Maven? Maven is an automation and management tool developed by Apache Software Foundation. It was initially released on 13 July 2004. In the Yiddish language, the meaning of Maven is “accumulator of knowledge”. Maven is a project management and comprehension tool that provides developers a complete build life-cycle framework.
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Edureka!
****** DevOps Training : https://www.edureka.co/devops ******
This Introduction To DevOps Tools tutorial explains the popular DevOps tools which are actively used in industry and why you should learn them. The following topics have been covered in this tutorial:-
1. Software Development Challenges *Agile
2. DevOps: Need, Rise & Tools involved
3. Git (SCM): Need, Working & Use-case
4. Selenium, TestNG & Maven (CT): Need & Working
5. Jenkins (CI): Need, Working & Use-case
6. Docker (CD & Containers): Need & Working
7. Ansible (CD & CM): Need & Working
8. Structured DevOps Training at Edureka
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
If you are someone who like to become a professional Java developer then Smeclabs can help you. Smeclabs is the best JAVA course provider in Kochi Kerala. JAVA is one of the most secure programming languages. You will be able to code in JAVA and also be able to develop software, web, and mobile apps. A career in JAVA will provide you with several opportunities. We provide a wide range of updated JAVA courses that will be useful to become a professional.
Most organizations are choosing JAVA because of its applications and versatility. After completing this course, you will be able to acquire several skills such as software designing, data analysis, Java programming, Javascript, etc. You will be trained by industrial experts on an updated syllabus. You can develop effective web applications after completing this course from SMEClabs. You will be part of several projects which will help you to get placed. If you are planning to become a software engineer then SMEClabs is the right choice for you. Freshers and professionals can learn this course.
DevOps is mainstream - at least the tools, the automation and the metrics. But what happened to DevOps Culture? Does it still matter? If yes - how do we achieve it?
This presentation about DevOps will help you understand what is DevOps, how is DevOps different from traditional IT, benefits of DevOps, the lifecycle of DevOps and tools used in DevOps processes. DevOps is one of the most trending IT jobs. It is a collaboration between development and operation teams which enables continuous delivery of applications and services to our end users. However, if you want to become a DevOps engineer, you must have knowledge of various DevOps tools (like Git, Maven, Selenium, Jenkins, Docker, Ansible, Nagios etc.) to achieve automation at each stage which helps in gaining Continuous Development, Continuous Integration, Continuous Testing and Continuous Monitoring in order to deliver a quality product to the client at a very fast pace. Now, let us get started and understand DevOps and does the various DevOps tools work.
Below are the topics explained in this DevOps presentation:
1. What is DevOps?
2. Benefits of DevOps
3. Lifecycle of DevOps
4. Tools in DevOps
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery, and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet, and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
DevOps is a software engineering culture and practice that aims to unify software development and operations by automating infrastructure, improving collaboration and communication between development and operations teams, and continuously delivering high-quality software. The main principles of DevOps are automation, continuous integration and deployment, and monitoring.
Written specs are easy to read but hard to write. Even with an understanding of the principles and tips for writing good Gherkin, it can be very hard to keep scenarios clean, informative and readable.
These slides are from a workshop given by John Ferguson Smart and Tom Roden, where they take a practical look at some real-world Gherkin scenarios, investigate what makes them smell and practise how to improve them. Discover some powerful refactoring patterns to help make your own specs a joy to read.
It was the time of Da Vinci and Michelangelo. It was also the time of Machiavelli and the Medici. Artists working on timeless masterpieces crossed paths with mercenary captains, contracted to do a very specific job.
In this keynote talk, John Smart will address important questions with deep implications for any IT team, or any organisation trying to make a difference, or simply to get the most value out of their IT projects.
Who is your real customer? Is there a cost to quality? Are you building an artwork that will last, or simply fulfilling a contract?
An inspiring and entertaining talk that will take attendees on journey from the Italian Renaissance to Silicon Valley and the City of London, and see what lessons can be learned about cultures, attitudes and work ethics today.
More Related Content
Similar to How can you improve, harmonize and automate your development process using tools like Maven, Hudson, and Nexus? This presentation is a high-level overview of Java software development process improvement.
Learn All Aspects Of Maven step by step, Enhance your skills & Launch Your Career, On-Demand Course affordable price & classes on virtually every topic.Try Before You Buy
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...Simplilearn
This presentation on "How to become a DevOps Engineer" will help you learn what is DevOps, who is a DevOps engineer, career roadmap of a DevOps engineer, certifications for DevOps engineer, and salary of a DevOps engineer. A DevOps Engineer is an IT professional who understands the software development lifecycle and uses various automation tools for developing CI/ CD pipelines. In simple words, they collaborate with developer and operation teams to deliver high-quality products within a minimum amount of time. Now, let's get started and understand a few important ways to become a DevOps engineer.
Below are explained in this presentation:
1. Who is a DevOps engineer?
2. DevOps career roadmap
3. DevOps certification
4. DevOps engineer salary
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this DevOps training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Boyd Hemphill
The pillars of DevOps are Culture, Automation, Measurement and Sharing. Docker is a rare tool at enables DevOps through all 4 pillars. These slides take a look at how Docker can affect each pillar in your organization through a Lean lens.
Vskills certification for Maven Build Professional assesses the candidate as per the company’s need for using the Maven build tool for building and managing Java based projects. The certification tests the candidates on various areas in installation, project object model, build lifecycle, profile development, running maven, configuring, assemblies, resource filtering, site generation, Archetypes, Flexmojos and android application development.
The pillars of DevOps are Culture, Automation, Measurement and Sharing. Docker is a rare tool at enables DevOps through all 4 pillars. These slides take a look at how Docker can affect each pillar in your organization through a Lean lens.
What is Maven? Maven is an automation and management tool developed by Apache Software Foundation. It was initially released on 13 July 2004. In the Yiddish language, the meaning of Maven is “accumulator of knowledge”. Maven is a project management and comprehension tool that provides developers a complete build life-cycle framework.
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Edureka!
****** DevOps Training : https://www.edureka.co/devops ******
This Introduction To DevOps Tools tutorial explains the popular DevOps tools which are actively used in industry and why you should learn them. The following topics have been covered in this tutorial:-
1. Software Development Challenges *Agile
2. DevOps: Need, Rise & Tools involved
3. Git (SCM): Need, Working & Use-case
4. Selenium, TestNG & Maven (CT): Need & Working
5. Jenkins (CI): Need, Working & Use-case
6. Docker (CD & Containers): Need & Working
7. Ansible (CD & CM): Need & Working
8. Structured DevOps Training at Edureka
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
If you are someone who like to become a professional Java developer then Smeclabs can help you. Smeclabs is the best JAVA course provider in Kochi Kerala. JAVA is one of the most secure programming languages. You will be able to code in JAVA and also be able to develop software, web, and mobile apps. A career in JAVA will provide you with several opportunities. We provide a wide range of updated JAVA courses that will be useful to become a professional.
Most organizations are choosing JAVA because of its applications and versatility. After completing this course, you will be able to acquire several skills such as software designing, data analysis, Java programming, Javascript, etc. You will be trained by industrial experts on an updated syllabus. You can develop effective web applications after completing this course from SMEClabs. You will be part of several projects which will help you to get placed. If you are planning to become a software engineer then SMEClabs is the right choice for you. Freshers and professionals can learn this course.
DevOps is mainstream - at least the tools, the automation and the metrics. But what happened to DevOps Culture? Does it still matter? If yes - how do we achieve it?
This presentation about DevOps will help you understand what is DevOps, how is DevOps different from traditional IT, benefits of DevOps, the lifecycle of DevOps and tools used in DevOps processes. DevOps is one of the most trending IT jobs. It is a collaboration between development and operation teams which enables continuous delivery of applications and services to our end users. However, if you want to become a DevOps engineer, you must have knowledge of various DevOps tools (like Git, Maven, Selenium, Jenkins, Docker, Ansible, Nagios etc.) to achieve automation at each stage which helps in gaining Continuous Development, Continuous Integration, Continuous Testing and Continuous Monitoring in order to deliver a quality product to the client at a very fast pace. Now, let us get started and understand DevOps and does the various DevOps tools work.
Below are the topics explained in this DevOps presentation:
1. What is DevOps?
2. Benefits of DevOps
3. Lifecycle of DevOps
4. Tools in DevOps
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery, and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet, and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
DevOps is a software engineering culture and practice that aims to unify software development and operations by automating infrastructure, improving collaboration and communication between development and operations teams, and continuously delivering high-quality software. The main principles of DevOps are automation, continuous integration and deployment, and monitoring.
Similar to How can you improve, harmonize and automate your development process using tools like Maven, Hudson, and Nexus? This presentation is a high-level overview of Java software development process improvement. (20)
Written specs are easy to read but hard to write. Even with an understanding of the principles and tips for writing good Gherkin, it can be very hard to keep scenarios clean, informative and readable.
These slides are from a workshop given by John Ferguson Smart and Tom Roden, where they take a practical look at some real-world Gherkin scenarios, investigate what makes them smell and practise how to improve them. Discover some powerful refactoring patterns to help make your own specs a joy to read.
It was the time of Da Vinci and Michelangelo. It was also the time of Machiavelli and the Medici. Artists working on timeless masterpieces crossed paths with mercenary captains, contracted to do a very specific job.
In this keynote talk, John Smart will address important questions with deep implications for any IT team, or any organisation trying to make a difference, or simply to get the most value out of their IT projects.
Who is your real customer? Is there a cost to quality? Are you building an artwork that will last, or simply fulfilling a contract?
An inspiring and entertaining talk that will take attendees on journey from the Italian Renaissance to Silicon Valley and the City of London, and see what lessons can be learned about cultures, attitudes and work ethics today.
Discover how you can multiply your team’s productivity and innovation by engaging the creativity of your whole team from the outset. Drawing from his long experience helping teams deliver better software faster and more effectively, John will discuss the latest practical techniques leveraged from Behaviour Driven Development, Lean Enterprise, DevOps, and Test Automation, combined with research in Psychology and Team Performance, to show you how to get the best out of your teams.
Learn about the new roles of business analysts, developers and testers in the future of software development, where testers can play a vital role in not only detecting defects but preventing them. Discover how you can make test automation happen during, not after, the sprint, and how to engage the creativity of the whole team right from the word "go".
his talk will present the core concepts of Exponential Business Agility, or XBA. XBA is a set of patterns for organising value streams around self-organising, autonomous teams, and is part of the XSCALE approach to scaling agile. XBA combines the Spotify model with practice patterns drawn from the Iroquois Confederacy, the most successful and longest-lived holarchy in history.
Learn how Throughput Accounting optimises the contribution of each business function to top line throughput rather than blindly attempting to minimise operating expense.
And discover how Self-Propagating Transformation avoids pushing change into pre-existing teams, programs or silos, but generates agile capability by grafting the kernel of a new culture onto the trunk of the old.
Be a pod of dolphins, not a dancing elephant. Don’t try to scale agile. De-scale your organisation instead.
As projects get faster and teams get leaner, the need to write high quality automated acceptance criteria quickly and efficiently has never been greater. Engineers in Test simply cannot afford to spend time maintaining brittle tests. And yet, without solid test automation strategies, this is what many teams find themselves doing. In this workshop, you will learn a better way. You will learn how to write clean, clear and maintainable tests using the Screenplay Pattern, an innovative new approach to writing BDD-style automated acceptance tests that are easier to understand, easier to extend and easier to maintain. The workshop will be a practical demonstration of the principles of good automated test design. There will be live coding of real-world BDD automated acceptance tests in abundance, using Java, Serenity BDD and Cucumber. We will go from requirements and BDD-style Acceptance Criteria in Cucumber right through to automated acceptance tests and living documentation.
Writing good acceptance criteria is one of the keys to effective software delivery. But it’s hard. In this workshop, you will learn about Feature Mapping, a new technique and easy that can help teams write higher quality acceptance criteria more easily. Feature Mapping is an excellent way to build a deep shared understanding of a story's requirements and clear a path to a smooth implementation of automated acceptance tests.
International speaker and author of “BDD in Action” John Ferguson Smart shows how you can multiply your team’s productivity and innovation by engaging the creativity of your whole team from the outset. Drawing from his long experience helping teams deliver better software faster and more effectively, John will discuss the latest practical techniques leveraged from Behaviour Driven Development, Lean Enterprise, DevOps, and Test Automation, combined with research in Psychology and Team Performance, to show you how to get the best out of your teams. Learn about the new roles of business analysts, developers and testers in a DevOps world, and how testers can play a vital role in not only detecting defects but preventing them. Discover how you can make test automation happen during, not after, the sprint, and how to engage the creativity of the whole team right from the word "go".
IT teams today are under constant pressure to deliver more value sooner, and Behaviour Driven Development (BDD) is one of the more effective ways to help teams deliver the high quality software that their business needs. When they adopt BDD, many teams look to tools like Cucumber to help them. But BDD isn’t simply about picking up a new tool.
In fact, there is a lot more to BDD than Given/When/Then and tools like Cucumber, and both can be misused. In this talk, we will take a step back and look at the bigger picture, and learn why using Gherkin at the wrong time, or for the wrong purpose, may be holding you back.
IT teams today are under constant pressure to deliver more value sooner, and Behaviour Driven Development (BDD) is one of the more effective ways to help teams deliver the high quality software that their business needs. When they adopt BDD, many teams look to tools like Cucumber to help them. But BDD isn’t simply about picking up a new tool.
In fact, there is a lot more to BDD than Given/When/Then and tools like Cucumber, and both can be misused. In this talk, we will take a step back and look at the bigger picture, and learn why using Gherkin at the wrong time, or for the wrong purpose, may be holding you back.
The changing role of testing and test automation in the increasingly fast-paced world of continuous delivery and automated acceptance testing. Learn how, in a DevOps environment, testing activities start with requirements discovery and definition, playing a vital role in not only detecting defects, but preventing them, and ensuring not only that the features are built right, but the right features are built. And learn how test automation needs to happen during, not after, the sprint, and how you can achieve this.
Despite rumors to the contrary, the role of the tester is not diminished with the arrival of automated DevOps, with its ultra-rapid deployment cycles and its emphasis on automation. On the contrary, testers play a vital role in ensuring that the code that gets deployed ten times a day is worth deploying.
Learn how to write robust and articulate tests using the Screenplay Pattern, an innovative approach to writing BDD-style automated acceptance tests that are easier to understand, easier to extend and easier to maintain.
The essentials of Cucumber-JVM and Spock - a handbook written for the BDD/TDD Masterclass (https://johnfergusonsmart.com/programs-courses/bdd-tdd-clean-coding/)
Every test tells a story, but some tell a better story than others. Every test illustrates a specific path through the system to achieve a specific goal, but some paths are clearer than others. Valuable tests are the ones that both tell a compelling story, and can stand the test of time, providing value not only as acceptance tests but also as living documentation and easily maintainable regression tests.
In this session, John will invite you to come on a journey of discovery to learn how to write clean, clear and maintainable tests using the Journey Pattern, an innovative new approach to writing automated acceptance tests that are easier to understand, easier to extend and easier to maintain. You will also witness a demonstration of these principles in action, with live coding of Serenity BDD automated tests.
Learn how to plan, prioritise and deliver higher value features by thinking of deliverable features not in terms of what they cost, but of what they can deliver.
XScale is a set of practices based on BDD that enables a product team to efficiently define, budget and prioritise a roadmap or backlog.
It’s also a way to answer some questions Agile has traditionally avoided:
- How much will a set of features cost?
- How do we trade off different feature sets?
- How do we know a feature is ready to ship?
In this workshop, we outline several key practices and practice using a few of them. The main practices we cover include:
- Feature Points, a way to reconcile budgets with story points
- Backlog Bingo determines the dollar investment and relative return for a set of products and services
- Royal Cod applies Backlog Bingo to prioritize a Breadth-First Roadmap
- Release Refactoring enables product owners to make rational trade-offs between feature-sets.
Behaviour Driven Development is a powerful collaboration technique that can empower teams to deliver higher value features to the business faster and more effectively. But although Behaviour Driven Development is based on a number of simple principles, it can go dramatically wrong in a myriad of different ways.
In this talk we discuss twelve BDD anti-patterns we frequently encounter in real-world BDD projects, anti-patterns that can dramatically reduce the effectiveness of BDD as a practice, and that can even cause BDD adoption to fail entirely. Looking at everything from insufficient collaboration practices to poor use of test automation tooling, from teams that test too much to teams that forget the most important scenarios, we will look at the many different ways that BDD can go wrong, and how it should be done.
We will use real-world examples to illustrate each of these anti-patterns. You will learn how to spot these issues in your own projects, and more importantly how to avoid them in the first place.
Every test tells a story, but some tell a better story than others. Every test illustrates a specific path through the system to achieve a specific goal, but some paths are clearer than others. Valuable tests are the ones that tell a compelling story.
Come on a journey of discovery to learn how to write such tests, and witness a demonstration of these principles in action, with live coding of Serenity BDD automated tests.
Behaviour-Driven Development (BDD) is a game changer for the whole team! Behaviour Driven Development is a powerful collaboration technique that can empower teams to deliver higher value features to the business faster and more effectively. More than just a testing technique, BDD is both a collaboration and a verification tool, and a vital step on the road to Continuous Delivery.
Think BDD is just for web sites? Think again! In this talk, we rethink traditional software testing strategies in the context of micro-services and Behaviour-Driven Development. We will see how traditional testing approaches are both inadequate and poorly targeted for micro-services development. We will learn how to use BDD techniques to discover, describe and document micro-service requirements, and tools like Cucumber and Serenity to turn these requirements into automated acceptance tests and living documentation. We will see how Consumer-Driven Contract tools help ensure that micro-services play well together, and how you can implement the details with the help of unit-testing tools like Spock and REST-Assured.
Behaviour Driven Development is a powerful collaboration technique that can empower teams to deliver higher value features to the business faster and more effectively. But although Behaviour Driven Development is based on a number of simple principles, it can go dramatically wrong in a myriad of different ways.
In this talk we discuss twelve BDD anti-patterns we frequently encounter in real-world BDD projects, anti-patterns that can dramatically reduce the effectiveness of BDD as a practice, and that can even cause BDD adoption to fail entirely. Looking at everything from insufficient collaboration practices to poor use of test automation tooling, from teams that test too much to teams that forget the most important scenarios, we will look at the many different ways that BDD can go wrong, and how it should be done.
We will use real-world examples to illustrate each of these anti-patterns. You will learn how to spot these issues in your own projects, and more importantly how to avoid them in the first place.
Behaviour Driven Development is an increasingly popular Agile practice that turns testing on its head, and involves a major shift in the role testers play in a project. Although popularly associated with automated acceptance testing and tools like Cucumber, BDD actually has much broader applications. In this talk, we will look at how Behaviour Driven Development radically changes the traditional tester role in Agile projects, and empowers them to tangibly contribute much more to the successful outcomes of the project. We will see how collaboratively discussing and defining acceptance criteria help reduce assumptions and errors in the early phases of the project, and help ensure that the features being built are well understood, testable, and valuable to the business. We will look at ways to write more effective, easier to maintain automated acceptance criteria, that free testers to do more productive testing tasks such as exploratory testing. And we will see how automated and manual acceptance test reporting can be combined to provide valuable progress, product documentation and release preparation reporting.
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.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
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
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.
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
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.
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.
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.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
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.
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
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
How can you improve, harmonize and automate your development process using tools like Maven, Hudson, and Nexus? This presentation is a high-level overview of Java software development process improvement.
1. Upping the game
Improving your software development process
John Ferguson Smart
Principle Consultant
Wakaleo Consulting
Email: john.smart@wakaleo.com
Web: http://www.wakaleo.com
Twitter: wakaleo
2. Presentation Goals
Learn how to improve, harmonize and automate your
development process using tools like Maven, Hudson, and
many others.
3. Speaker’s qualifications
John Ferguson Smart
Consultant, Trainer, Mentor, Author,...
Works with Enterprise Java, Web Development, and
Open Source technologies
Author of ‘Java Power Tools’ (O’Reilly)
Writes articles for sites like JavaWorld, DevX and
Java.net, and blogs on Java.net
Speaks at conferences, Java User Groups etc.
Likes to write about himself in the third person
6. Agenda
What we will cover today:
Industrializing your build process
Automate your builds
7. Agenda
What we will cover today:
Industrializing your build process
Automate your builds
Better testing practices
8. Agenda
What we will cover today:
Industrializing your build process
Automate your builds
Better testing practices
Reducing technical debt
9. Why improve?
HERE is Edward Bear, coming downstairs now, bump,
bump, bump, on the back of his head, behind
Christopher Robin. It is, as far as he knows, the only
way of coming downstairs, but sometimes he feels
that there really is another way, if only he could stop
bumping for a moment and think of it.
-- A. A. Milne
10. Why should we improve?
Why should we improve our development process?
11. Why should we improve?
Why should we improve our development process?
Lower development costs
12. Why should we improve?
Why should we improve our development process?
Lower development costs
Lower maintenance costs
13. Why should we improve?
Why should we improve our development process?
Lower development costs
Lower maintenance costs
Less bugs
14. Why should we improve?
Why should we improve our development process?
Lower development costs
Lower maintenance costs
Less bugs
Higher code quality
15. Why should we improve?
Why should we improve our development process?
Lower development costs
Lower maintenance costs
Less bugs
Higher code quality
Be flexible - adapt to change more easily
16. Why should we improve?
Why should we improve our development process?
Lower development costs
Lower maintenance costs
Less bugs
Higher code quality
Be flexible - adapt to change more easily
Happier more productive users
17. How can we improve?
How can we improve our development process?
18. How can we improve?
How can we improve our development process?
Standardized build practices
19. How can we improve?
How can we improve our development process?
Standardized build practices
Better testing practices
20. How can we improve?
How can we improve our development process?
Standardized build practices
Better testing practices
Better visibility
21. How can we improve?
How can we improve our development process?
Standardized build practices
Better testing practices
Better visibility
Faster feedback
22. How can we improve?
How can we improve our development process?
Standardized build practices
Better testing practices
Better visibility
Faster feedback
Quality metrics
23. How can we improve?
How can we improve our development process?
Standardized build practices
Better testing practices
Better visibility
Faster feedback
Quality metrics
Automate!
24. Tools for the job
There are plenty of tools available - and most are free!
25. Tools for the job
There are plenty of tools available - and most are free!
maven
Build scripting
26. Tools for the job
There are plenty of tools available - and most are free!
maven
Build scripting
JUnit
Automated testing
27. Tools for the job
There are plenty of tools available - and most are free!
maven
Build scripting
Automated code quality
JUnit
Automated testing
28. Towards a better build process
Standardize your build process with Maven
29. Towards a better build process
Standardize your build process with Maven
What is Maven, anyway?
30. Towards a better build process
Standardize your build process with Maven
What is Maven, anyway?
A high-level open source build scripting framework
31. Towards a better build process
Standardize your build process with Maven
What is Maven, anyway?
A high-level open source build scripting framework
Extensively used in the Java world
34. Towards a better build process
How does Maven help?
Standards
Conventions
35. Towards a better build process
How does Maven help?
Standards
Conventions
Lower Maintenance Costs
36. Towards a better build process
How does Maven help?
Standards
Conventions
Lower Maintenance Costs
Knowledge sharing
37. Towards a better build process
How does Maven help?
Standards
Conventions
Lower Maintenance Costs
Knowledge sharing
Dependency Management
38. Towards a better build process
How does Maven help?
Standards
Conventions
Lower Maintenance Costs
Knowledge sharing
Dependency Management
Promoting good architecture
39. So how can Maven help me?
Standards and Conventions
40. So how can Maven help me?
Standards and Conventions
A standard directory structure
41. So how can Maven help me?
Standards and Conventions
A standard directory structure
A standard, but extensible build lifecycle
42. So how can Maven help me?
Standards and Conventions
A standard directory structure
A standard, but extensible build lifecycle
So new developers understand the
project structure and build process
straight away!
43. So how can Maven help me?
Standards and Conventions
A standard directory structure
A standard, but extensible build lifecycle
So new developers understand the
project structure and build process
straight away!
...and the build scripts are much
easier to understand and maintain
44. So how can Maven help me?
Technical documentation
45. So how can Maven help me?
Technical documentation
Generate technical project documentation
46. So how can Maven help me?
Technical documentation
Generate technical project documentation
Easy to integrate code quality metrics
47. So how can Maven help me?
Technical documentation
Generate technical project documentation
Easy to integrate code quality metrics
I can even generate UML
diagrams in my Javadocs
48. So how can Maven help me?
Technical documentation
Generate technical project documentation
Easy to integrate code quality metrics
I can even generate UML
diagrams in my Javadocs
49. So how can Maven help me?
Technical documentation
Generate technical project documentation
Easy to integrate code quality metrics
I can even generate UML
diagrams in my Javadocs
And setting up code quality
metrics is a breeze!
50. So how can Maven help me?
Project architecture
51. So how can Maven help me?
Project architecture
Encourages developers to use modular design
52. So how can Maven help me?
Project architecture
Encourages developers to use modular design
More flexible architecture
53. So how can Maven help me?
Project architecture
Encourages developers to use modular design
More flexible architecture
Reduced complexity and maintenance costs
54. So how can Maven help me?
Project architecture
Encourages developers to use modular design
More flexible architecture
Reduced complexity and maintenance costs
...and the smaller modules are
easier to test and maintain
55. So how can Maven help me?
Project architecture
Encourages developers to use modular design
More flexible architecture
Reduced complexity and maintenance costs
Breaking our application down
into clean modules is much
easier
...and the smaller modules are
easier to test and maintain
56. So how can Maven help me?
Dependency Management
57. So how can Maven help me?
Dependency Management
Understand precisely what libraries your application needs
58. So how can Maven help me?
Dependency Management
Understand precisely what libraries your application needs
Safer and more reproducible builds
59. So how can Maven help me?
Dependency Management
Understand precisely what libraries your application needs
Safer and more reproducible builds
A standard way to share internal libraries
60. So how can Maven help me?
Dependency Management
Understand precisely what libraries your application needs
Safer and more reproducible builds
A standard way to share internal libraries
All our libraries are shared and
safely stored on a central server
61. So how can Maven help me?
Dependency Management
Understand precisely what libraries your application needs
Safer and more reproducible builds
A standard way to share internal libraries
All our libraries are shared and
safely stored on a central server
...we just have to name the ones
we need in our build script
62. So how can Maven help me?
Dependency Management before Maven
lib
63. So how can Maven help me?
Dependency Management before Maven
Each project has its own set of JAR files
lib
64. So how can Maven help me?
Dependency Management before Maven
Each project has its own set of JAR files
Unnecessary duplication
lib
65. So how can Maven help me?
Dependency Management before Maven
Each project has its own set of JAR files
Unnecessary duplication
Hard to keep track of versions lib
66. So how can Maven help me?
Dependency Management before Maven
Each project has its own set of JAR files
Unnecessary duplication
Hard to keep track of versions lib
Errors due to incompatible JAR files
67. So how can Maven help me?
Dependency Management before Maven
Each project has its own set of JAR files
Unnecessary duplication
Hard to keep track of versions lib
Errors due to incompatible JAR files
Overloads the source code repository
68. So how can Maven help me?
Dependency Management before Maven
Each project has its own set of JAR files
Unnecessary duplication
Hard to keep track of versions lib
Errors due to incompatible JAR files
Overloads the source code repository
...and you never know what
versions you are using
69. So how can Maven help me?
Dependency Management using Maven
Projects declare the versions Libraries are stored
of libraries they need on a central server
Libraries are
downloaded as
required
70. So how can Maven help me?
Dependency Management using Maven
Library versions are stored on a central server
Projects declare the versions Libraries are stored
of libraries they need on a central server
Libraries are
downloaded as
required
71. So how can Maven help me?
Dependency Management using Maven
Library versions are stored on a central server
Each project “declares” what libraries and versions it needs
Projects declare the versions Libraries are stored
of libraries they need on a central server
Libraries are
downloaded as
required
72. So how can Maven help me?
Dependency Management using Maven
Library versions are stored on a central server
Each project “declares” what libraries and versions it needs
All the required dependencies are automatically downloaded
Projects declare the versions Libraries are stored
of libraries they need on a central server
Libraries are
downloaded as
required
73. So how can Maven help me?
Dependency Management using Maven
Library versions are stored on a central server
Each project “declares” what libraries and versions it needs
All the required dependencies are automatically downloaded
The server is called a ‘Maven Enterprise Repository Manager’
Projects declare the versions Libraries are stored
of libraries they need on a central server
Libraries are
downloaded as
required
74. So how can Maven help me?
Dependency Management using Maven
Library versions are stored on a central server
Each project “declares” what libraries and versions it needs
All the required dependencies are automatically downloaded
The server is called a ‘Maven Enterprise Repository Manager’
Projects declare the versions Libraries are stored
of libraries they need on a central server
Libraries are
downloaded as
required
This way I know exactly what
libraries my application uses
76. So how can Maven help me?
Release Management
A standard way to track and release versions
77. So how can Maven help me?
Release Management
A standard way to track and release versions
Official versions stored on a central server
78. So how can Maven help me?
Release Management
A standard way to track and release versions
Official versions stored on a central server
Can be used to automate the deployment process
79. So how can Maven help me?
Release Management
A standard way to track and release versions
Official versions stored on a central server
Can be used to automate the deployment process
The official versions are on that server
89. Towards better testing practices
Coding the traditional way
Requirements
Design
Implementation
90. Towards better testing practices
Coding the traditional way
Requirements
Design
Implementation
Test
91. Towards better testing practices
Coding the traditional way
Requirements
Design
Implementation
You write your code
Test
92. Towards better testing practices
Coding the traditional way
Requirements
Design
Implementation
You write your code
Test
A tester tests the finished application
93. Towards better testing practices
Coding the traditional way
Requirements
Design
Implementation
You write your code Maybe do some unit testing
Test
A tester tests the finished application
94. Towards better testing practices
Coding the traditional way
Coding
Some unit testing?
Manual debugging?
Manual functional
testing?
95. Towards better testing practices
Coding the traditional way
Fragile untested code
Coding
Some unit testing?
Manual debugging?
Manual functional
testing?
96. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Coding
Some unit testing?
Manual debugging?
Manual functional
testing?
97. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Coding Low code coverage
Some unit testing?
Manual debugging?
Manual functional
testing?
98. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Changes introduce new
Coding Low code coverage bugs
Some unit testing?
Manual debugging?
Manual functional
testing?
99. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Changes introduce new
Coding Low code coverage bugs
Some unit testing? No regression tests
Manual debugging?
Manual functional
testing?
100. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Changes introduce new
Coding Low code coverage bugs
Some unit testing? No regression tests Changes are costly
Manual debugging?
Manual functional
testing?
101. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Changes introduce new
Coding Low code coverage bugs
Some unit testing? No regression tests Changes are costly
Manual debugging? Bug detected late
Manual functional
testing?
102. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Changes introduce new
Coding Low code coverage bugs
Some unit testing? No regression tests Changes are costly
Bugs hard to fix
Manual debugging? Bug detected late
Bugs expensive to fix
Manual functional
testing?
103. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Changes introduce new
Coding Low code coverage bugs
Some unit testing? No regression tests Changes are costly
Bugs hard to fix
Manual debugging? Bug detected late
Bugs expensive to fix
Manual functional Hard to trace code
testing? back to requirements
104. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Changes introduce new
Coding Low code coverage bugs
Some unit testing? No regression tests Changes are costly
Bugs hard to fix
Manual debugging? Bug detected late
Bugs expensive to fix
Manual functional Hard to trace code
testing? back to requirements Code fails to meet
requirements
105. Towards better testing practices
Coding the traditional way
Lots of bugs
Fragile untested code
Changes introduce new
Coding Low code coverage bugs
Some unit testing? No regression tests Changes are costly
Bugs hard to fix
Manual debugging? Bug detected late
Bugs expensive to fix
Manual functional Hard to trace code
testing? back to requirements Code fails to meet
requirements
107. Towards better testing practices
So what’s wrong with the old way?
Lots of defects. Really, lots.
108. Towards better testing practices
So what’s wrong with the old way?
Lots of defects. Really, lots.
High maintenance costs
109. Towards better testing practices
So what’s wrong with the old way?
Lots of defects. Really, lots.
High maintenance costs
Hard to introduce new features
110. Towards better testing practices
So what’s wrong with the old way?
Lots of defects. Really, lots.
High maintenance costs
Hard to introduce new features
Doesn’t meet the actual requirements
111. Towards better testing practices
So what’s wrong with the old way?
Lots of defects. Really, lots.
High maintenance costs
Hard to introduce new features
Doesn’t meet the actual requirements
Delayed deliveries
112. Towards better testing practices
So what’s wrong with the old way?
Lots of defects. Really, lots.
High maintenance costs
Hard to introduce new features
Doesn’t meet the actual requirements
Delayed deliveries
Unhappy end-users
113. Towards better testing practices
How much does a bug cost to fix, anyway?
00
$$$
75
50
25
When was the
0 change requested?
Requirements
Unit Testing
System Testing
UAT
Production
Design
114. Towards better testing practices
How much does a bug cost to fix, anyway?
00
$$$
75
50 Changes harder and more costly
25
When was the
0 change requested?
Requirements
Unit Testing
System Testing
UAT
Production
Design
115. Towards better testing practices
How much does a bug cost to fix, anyway?
00
$$$
75
50 Changes harder and more costly
Changes easier and
cheaper to make
25
When was the
0 change requested?
Requirements
Unit Testing
System Testing
UAT
Production
Design
118. Towards better testing practices
How can good testing practices help?
Reduce bugs
Write better-designed code
119. Towards better testing practices
How can good testing practices help?
Reduce bugs
Write better-designed code
Have more confidence in our code
120. Towards better testing practices
How can good testing practices help?
Reduce bugs
Write better-designed code
Have more confidence in our code
Make changes more easily
121. Towards better testing practices
How can good testing practices help?
Reduce bugs
Write better-designed code
Have more confidence in our code
Make changes more easily
Meet user requirements more accurately
122. Towards better testing practices
How can good testing practices help?
Reduce bugs
Write better-designed code
Have more confidence in our code
Make changes more easily
Meet user requirements more accurately
Lower maintenance costs
124. Towards better testing practices
How can good testing practices help?
Well-designed code
125. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
126. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
127. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
128. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
Full automated
regression tests
129. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
Full automated
regression tests Lower maintenance costs
Make changes with confidence
130. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
Full automated
regression tests Lower maintenance costs
Make changes with confidence
Code to the
requirements
131. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
Full automated
regression tests Lower maintenance costs
Make changes with confidence
Code to the
requirements
Don’t code unnecessary features
132. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
Full automated
regression tests Lower maintenance costs
Make changes with confidence
Code to the
requirements
Don’t code unnecessary features
Focus and productivity
133. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
Full automated
regression tests Lower maintenance costs
Make changes with confidence
Code to the
requirements
Don’t code unnecessary features
Focus and productivity Develop more productively
134. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
Full automated
regression tests Lower maintenance costs
Make changes with confidence
Code to the
requirements
Don’t code unnecessary features
Focus and productivity Develop more productively
Technical
documentation
135. Towards better testing practices
How can good testing practices help?
Easier to make changes
Well-designed code
Better response to user feedback
Find bugs faster
Cheaper bug fixes
Full automated
regression tests Lower maintenance costs
Make changes with confidence
Code to the
requirements
Don’t code unnecessary features
Focus and productivity Develop more productively
Technical “Executable requirements”
documentation
Lower maintenance costs
138. Towards better testing practices
More flexibility
Testable code is easier to change
Full regression tests avoid introducing errors
139. Towards better testing practices
More flexibility
Testable code is easier to change
Full regression tests avoid introducing errors
I’m not afraid to change the code
- the tests are my safety net
142. Towards better testing practices
Better visibility
Tests are “executable requirements”
Automated acceptance tests measure progress
143. Towards better testing practices
Better visibility
Tests are “executable requirements”
Automated acceptance tests measure progress
A feature can’t be “90% finished”
- it either works or it doesn’t
145. Towards better testing practices
Documentation
Tests are “living documentation” of your code
146. Towards better testing practices
Documentation
Tests are “living documentation” of your code
Always accurate and up-to-date
147. Towards better testing practices
Documentation
Tests are “living documentation” of your code
Always accurate and up-to-date
I can understand how the code
works by reading the tests
150. Towards better testing practices
Lower maintenance costs
Less bugs, found faster
Changes are easier to make
151. Towards better testing practices
Lower maintenance costs
Less bugs, found faster
Changes are easier to make
Maintaining this sort of
application is a real pleasure!
152. Automating the build process
Continuous Integration - what’s the issue?
Traditional development cycles are bad for your health:
153. Automating the build process
Continuous Integration - what’s the issue?
Traditional development cycles are bad for your health:
Integration is long and difficult
154. Automating the build process
Continuous Integration - what’s the issue?
Traditional development cycles are bad for your health:
Integration is long and difficult
Poor visibility on development progress
155. Automating the build process
Continuous Integration - what’s the issue?
Traditional development cycles are bad for your health:
Integration is long and difficult
Poor visibility on development progress
Functional tests are done too late
156. Automating the build process
Continuous Integration - what’s the issue?
Traditional development cycles are bad for your health:
Integration is long and difficult
Poor visibility on development progress
Functional tests are done too late
Raised issues are harder to fix
157. Automating the build process
Continuous Integration - what’s the issue?
Traditional development cycles are bad for your health:
Integration is long and difficult
Poor visibility on development progress
Functional tests are done too late
Raised issues are harder to fix
The client gets a sub-optimal product
160. Automating the build process
Continuous Integration - why bother?
Smoother integration process
161. Automating the build process
Continuous Integration - why bother?
Smoother integration process
Automatic regression testing
162. Automating the build process
Continuous Integration - why bother?
Smoother integration process
Automatic regression testing
Regular working releases
163. Automating the build process
Continuous Integration - why bother?
Smoother integration process
Automatic regression testing
Regular working releases
Earlier functional testing
164. Automating the build process
Continuous Integration - why bother?
Smoother integration process
Automatic regression testing
Regular working releases
Earlier functional testing
Faster and easier bug fixes
165. Automating the build process
Continuous Integration - why bother?
Smoother integration process
Automatic regression testing
Regular working releases
Earlier functional testing
Faster and easier bug fixes
Better visibility
166. Automating the build process
Continuous Integration - why bother?
Smoother integration process
Automatic regression testing
Regular working releases
Earlier functional testing
Faster and easier bug fixes
Better visibility
No more “it works on my machine”
168. Automating the build process
Continuous Integration - what you need
Automated build process (e.g. Maven)
169. Automating the build process
Continuous Integration - what you need
Automated build process (e.g. Maven)
Automated tests (JUnit, Selenium, easyb...)
170. Automating the build process
Continuous Integration - what you need
Automated build process (e.g. Maven)
Automated tests (JUnit, Selenium, easyb...)
Source code repository
171. Automating the build process
Continuous Integration - what you need
Automated build process (e.g. Maven)
Automated tests (JUnit, Selenium, easyb...)
Source code repository
Continuous Build Server
173. Automating the build process
Continuous Integration - what can it do?
Raise integration issues - fast!
174. Automating the build process
Continuous Integration - what can it do?
Raise integration issues - fast!
Monitor your build process
175. Automating the build process
Continuous Integration - what can it do?
Raise integration issues - fast!
Monitor your build process
Monitor and report on code quality and code coverage
176. Automating the build process
Continuous Integration - what can it do?
Raise integration issues - fast!
Monitor your build process
Monitor and report on code quality and code coverage
Build promotion and release management
177. Automating the build process
Continuous Integration - what can it do?
Raise integration issues - fast!
Monitor your build process
Monitor and report on code quality and code coverage
Build promotion and release management
Automated deployments
178. Automating the build process
Looking for a good O/S Continuous Integration tool?
179. Automating the build process
Looking for a good O/S Continuous Integration tool?
Try Hudson!
180. Automating the build process
Looking for a good O/S Continuous Integration tool?
Try Hudson!
Easy to set up and configure
181. Automating the build process
Looking for a good O/S Continuous Integration tool?
Try Hudson!
Easy to set up and configure
Good build and code quality metrics
182. Automating the build process
Looking for a good O/S Continuous Integration tool?
Try Hudson!
Easy to set up and configure
Good build and code quality metrics
Lots of plugins
193. Automated Code Quality
What is technical debt?
The cost of poor quality code:
Harder to make changes
Too much time spent fixing bugs
194. Automated Code Quality
What is technical debt?
The cost of poor quality code:
Harder to make changes
Too much time spent fixing bugs
Takes too long to add competitive new features
195. Automated Code Quality
What is technical debt?
The cost of poor quality code:
Harder to make changes
Too much time spent fixing bugs
Takes too long to add competitive new features
This legacy code takes way
to long to change
196. Automated Code Quality
What is technical debt?
The cost of poor quality code:
Harder to make changes
Too much time spent fixing bugs
Takes too long to add competitive new features
This legacy code takes way
to long to change
We spend all our time fixing bugs, not
adding new features
199. Automated Code Quality
How do we pay off technical debt?
Enforce coding standards
Teach developers good coding practices
200. Automated Code Quality
How do we pay off technical debt?
Enforce coding standards
Teach developers good coding practices
Spend time keeping the code clean (refactoring)
201. Automated Code Quality
How do we pay off technical debt?
Enforce coding standards
Teach developers good coding practices
Spend time keeping the code clean (refactoring)
...it will be quicker and easier for
everyone to make changes later on
202. Automated Code Quality
How do we pay off technical debt?
Enforce coding standards
Teach developers good coding practices
Spend time keeping the code clean (refactoring)
If I spend a little time tidying up
my code today...
...it will be quicker and easier for
everyone to make changes later on
215. Automated Code Quality
Code Coverage
See what code is being executed by your unit tests.
Isolate untested code
216. Automated Code Quality
Code Coverage
See what code is being executed by your unit tests.
Isolate untested code
Can help to estimate if testing practices are being applied
223. Automated Code Quality
Code Quality Governance with Sonar
Centralized code quality management
Works on any Maven project
224. Automated Code Quality
Code Quality Governance with Sonar
Centralized code quality management
Works on any Maven project
Store code quality metrics in a database
225. Automated Code Quality
Code Quality Governance with Sonar
Centralized code quality management
Works on any Maven project
Store code quality metrics in a database
Code quality metrics can be consulted on a web site
229. Automated Code Quality
Code Quality Governance with Sonar
Sonar centralizes many code quality metrics
Source code metrics Code complexity metrics
Test results and code coverage
230. Automated Code Quality
Code Quality Governance with Sonar
Sonar centralizes many code quality metrics
Source code metrics Code complexity metrics
Test results and code coverage
Build history
231. Automated Code Quality
Code Quality Governance with Sonar
Sonar centralizes many code quality metrics
Source code metrics Code complexity metrics
Test results and code coverage
Build history
Modules
232. Automated Code Quality
Code Quality Governance with Sonar
Sonar centralizes many code quality metrics
Source code metrics Code complexity metrics
Test results and code coverage
Code quality metrics
Build history
Modules
233. Automated Code Quality
Code Quality Governance with Sonar
Sonar centralizes many code quality metrics
Source code metrics Code complexity metrics
Test results and code coverage
Code quality metrics
Build history
Modules
Click anywhere to drill down
234. Automated Code Quality
Code Quality Governance with Sonar
You can drill down to view the details for each type of issue
235. Automated Code Quality
Code Quality Governance with Sonar
You can drill down to view the details for each type of issue
Overview
236. Automated Code Quality
Code Quality Governance with Sonar
You can drill down to view the details for each type of issue
Overview
Different types of violations
237. Automated Code Quality
Code Quality Governance with Sonar
You can drill down to view the details for each type of issue
Overview
Different types of violations
Violations in this class
238. Automated Code Quality
Code Quality Governance with Sonar
You can drill down to view the details for each type of issue
Overview
Different types of violations
Violations in this class
Violation details
240. Summary
How can you improve the development process?
Standardize your build process
241. Summary
How can you improve the development process?
Standardize your build process
Improve testing practices
242. Summary
How can you improve the development process?
Standardize your build process
Improve testing practices
Use Continuous Integration
243. Summary
How can you improve the development process?
Standardize your build process
Improve testing practices
Use Continuous Integration
Reduce your technical debt
244. Summary
How can you improve the development process?
Standardize your build process
Improve testing practices
Use Continuous Integration
Reduce your technical debt
Automate, automate, automate!
245. John Ferguson Smart
Email: john.smart@wakaleo.com
Web: http://www.wakaleo.com
Twitter: wakaleo
Thanks for your attention!
246. John Ferguson Smart
Email: john.smart@wakaleo.com
Web: http://www.wakaleo.com
Twitter: wakaleo
Thanks for your attention!
247. John Ferguson Smart
Email: john.smart@wakaleo.com
Web: http://www.wakaleo.com
Twitter: wakaleo
Thanks for your attention!
http://www.wakaleo.com
248. John Ferguson Smart
Email: john.smart@wakaleo.com
Web: http://www.wakaleo.com
Twitter: wakaleo
Thanks for your attention!
http://weblogs.java.net/blog/
http://www.wakaleo.com