The document discusses hacking agile development tools to take them to the next level. It provides examples of open source and commercial tools for various agile practices like story management, collaboration, development environments, development tools, and testing tools. It also outlines a maturity model for implementing and advancing the use of these tools on agile projects.
Agile Tool Hacking - Taking Your Agile Development Tools To The Next LevelCraig Smith
Agile Tool Hacking - Taking Your Agile Development Tools To The Next Level, presented by Craig Smith & Paul King at the Agile 2009 conference in Chicago
Slides presented at the D4Science VRE Management Training Event which took place on 30/04/2009 in Rome, Italy.
More information: http://www.d4science.eu/node/213
Agile 2.0 - Rebooting a Raccoon in an Imperfect WorldCraig Smith
Presentation by Craig Smith and Greg Smith at Agile 2011 in Salt Lake City.
On this 10th anniversary of agile, our community is struggling to address the issue of how to take experienced agile practitioners to the next level, while still providing training and tools to support those who are beginning their journey. With the “agile” word getting so overloaded, the challenge is to continually innovate without assigning labels. In this talk we will discuss how to use the best of traditional, lean and agile methods to suit any team and showcase numerous patterns that demonstrate the best process to use is often a mixture of traditional practices and new innovations.
Agile Tool Hacking - Taking Your Agile Development Tools To The Next LevelCraig Smith
Agile Tool Hacking - Taking Your Agile Development Tools To The Next Level, presented by Craig Smith & Paul King at the Agile 2009 conference in Chicago
Slides presented at the D4Science VRE Management Training Event which took place on 30/04/2009 in Rome, Italy.
More information: http://www.d4science.eu/node/213
Agile 2.0 - Rebooting a Raccoon in an Imperfect WorldCraig Smith
Presentation by Craig Smith and Greg Smith at Agile 2011 in Salt Lake City.
On this 10th anniversary of agile, our community is struggling to address the issue of how to take experienced agile practitioners to the next level, while still providing training and tools to support those who are beginning their journey. With the “agile” word getting so overloaded, the challenge is to continually innovate without assigning labels. In this talk we will discuss how to use the best of traditional, lean and agile methods to suit any team and showcase numerous patterns that demonstrate the best process to use is often a mixture of traditional practices and new innovations.
When doing product definitions, we often attach too less importance on topics like administration, monitoring, integration, troubleshooting, migration, installation etc. If anything, the related requirements are seen through the eyes of a fronted user, although they mostly apply to the administrator role having different needs.
That often leads to the development of some GUI-based point and click tools that are not suited for using them in administration scenarios because implicit requirements are not met. Administration tools should be consistent across sub systems and products, they must be extensible, (de)composable, steps must be easy to repeat, to automate and to track.
It gets increasingly important to focus on management features. Cloud topologies, more complex systems, security and legal aspects, virtualization and mobile applications are changing system administration more than ever. To be able to respond the behavior of all involved roles must change.
The session is for developers, system administrators, requirements experts and people who are busy between these roles (DevOps). Evolving practices and concepts for the collaboration between development and operations will be presented and evaluated. Technical approaches that (also) help to build better manageable systems will be discussed.
In this presentation we show how DITA can be used to power embedded user assistance systems with insights on collaboration between content development, interaction design and software development teams. A sample slide for embedded user assistance using Microsoft Silverlight is included.
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...DevOps_Fest
Зараз, в 2020 році, певно немає таких людей, які не використовують чи не чули про мікросервіси. Складність таких системам полягає не лише в правильному проектуванні на етапі створення і розробки, але і самій експлуатації. У роботі в таких розподілених системах команді неодмінно доведеться зіткнутися з челенджами пошуку “bottlenecks” і відсутністю повної картини комунікації сервісів.
У розподілених системах метрики та логи не завжди дають достатньо інформації для пошуку проблем, оскільки вони продукують дані що відносяться до конкретних компонент системи та не покриває їх взаємодії в цілому. Ця доповідь буде присвячена вирішенню проблем з “observability” та “application performance monitoring” за допомогою підходу “distributed tracing” з Jaeger.
Working Software Over Comprehensive DocumentationAndrii Dzynia
Не один десяток раз каждый из нас видео этот пункт Agile манифеста. Кто на официальном сайте Agile Manifesto, кто в книгах или статьях, кто на тренингах или конференциях. Звучит правильно очевидно и просто, но на практике возникают некие сложности с его реализацией. Как определить какие документы писать нужно, а какие не стоит? Как поддерживать документы с наименьшими усилиями? От каких документов нужно отказаться или заменить на более простые решения? Что стоит документировать тестировщику, разработчику, бизнес-аналитику в Agile проектах, для того чтобы презентовать результаты своей работы. На все эти вопросы я постараюсь ответить в своем докладе, закрепляя примерами которые вы сможете попытаться применить на своих проектах.
Using Puppet - Real World Configuration ManagementJames Turnbull
Configuration management is the oft-misunderstood (and possibly black) art of managing your IT environment, infrastructure, and costs. Done well it can reduce operational errors and outages, simplify your environment, and help maintain the sanity of your IT staff.
Puppet is part of the bright future of configuration management for heterogeneous Unix systems. It combines automation, a powerful abstraction language, and uses a client-server model that can scale to suit enterprise-size environments. Puppet is written in Ruby and authored by recovering system administrator-turned-developer Luke Kanies.
This session explains why configuration management is important, the benefits configuration management will deliver, and how all of this can be achieved using Puppet. The session also explains emerging best practices in configuration management and addresses:
* What is configuration management? Or why am I here?
* Benefits, risks, and challenges: build fire resistant infrastructure rather than fight fires
* Best practice: how do we do this configuration management magic right?
* Where does Puppet fit in and why should management pay for its implementation?
* Why using Puppet will save you money and help staff retention (although is unlikely to stop world hunger)
* Real world configuration management using Puppet: code, examples, explanations, and using Puppet in anger
* Measuring the results and pocketing the returns
* Where to from here: some ideas about the future (may include wild-arse guesses)
Presentation delivered by Craig Smith at Fusion in Sydney, Australia in September 2012.
When XP and Scrum were devised over 10 years ago, they were created to improve the delivery of software development projects. As many enterprises have matured in the Agile adoption, many of the business users on IT projects are now attempting to use Agile approaches on their own non-IT projects.
In this session we will cover using Agile in a non-IT environment and demonstrate how the original XP practices map extremely well over to business processes. And how those in SD can help your business counterparts.
The Speed to Cool - Valuing Testing & Quality in Agile TeamsCraig Smith
Presentation delivered by Craig Smith at Agile Australia 2011. Ensuring that the approach to testing and quality is understood and appropriately valued in an Agile world can be a struggle for many organisations, especially when resources are limited and our customers are expecting business value in a timely manner. In this session Craig Smith will define what quality means, share a number of tools for measuring it as well as discussing approaches to improving the skills, empowerment and role of testing in the organisation and share why testing is the coolest role on the team and why it is everyone's responsibility.
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...Docker, Inc.
Fugro is a multinational enterprise that collects and provides highly specialized interpretation of geological data for a number of industries, at land and at sea. The company recently launched OARS (Office Assisted Remote Services), an innovation which uses advanced technology to reduce, and potentially eliminate, the need for surveyors onboard sea-going vessels, optimizing project crewing, safety and efficiency. By keeping skilled staff onshore and using an Internet of Things platform model, Fugro’s OARS project provides faster interpretation of data and decisions, better access to information across regions Hear how Fugro and consulting partner Flux7 created a solution with Docker and Amazon Web Services at its center that provides a high degree of uptime, ensures data is secure and enables portability so that environments that can be quickly replicated in new global regions on demand. Learn how Docker is being used as a key component in Fugro’s continuous delivery cycle and see how Docker is also used to create redundancy that ensures high uptime for Fugro’s 24X7 requirements.
When doing product definitions, we often attach too less importance on topics like administration, monitoring, integration, troubleshooting, migration, installation etc. If anything, the related requirements are seen through the eyes of a fronted user, although they mostly apply to the administrator role having different needs.
That often leads to the development of some GUI-based point and click tools that are not suited for using them in administration scenarios because implicit requirements are not met. Administration tools should be consistent across sub systems and products, they must be extensible, (de)composable, steps must be easy to repeat, to automate and to track.
It gets increasingly important to focus on management features. Cloud topologies, more complex systems, security and legal aspects, virtualization and mobile applications are changing system administration more than ever. To be able to respond the behavior of all involved roles must change.
The session is for developers, system administrators, requirements experts and people who are busy between these roles (DevOps). Evolving practices and concepts for the collaboration between development and operations will be presented and evaluated. Technical approaches that (also) help to build better manageable systems will be discussed.
In this presentation we show how DITA can be used to power embedded user assistance systems with insights on collaboration between content development, interaction design and software development teams. A sample slide for embedded user assistance using Microsoft Silverlight is included.
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...DevOps_Fest
Зараз, в 2020 році, певно немає таких людей, які не використовують чи не чули про мікросервіси. Складність таких системам полягає не лише в правильному проектуванні на етапі створення і розробки, але і самій експлуатації. У роботі в таких розподілених системах команді неодмінно доведеться зіткнутися з челенджами пошуку “bottlenecks” і відсутністю повної картини комунікації сервісів.
У розподілених системах метрики та логи не завжди дають достатньо інформації для пошуку проблем, оскільки вони продукують дані що відносяться до конкретних компонент системи та не покриває їх взаємодії в цілому. Ця доповідь буде присвячена вирішенню проблем з “observability” та “application performance monitoring” за допомогою підходу “distributed tracing” з Jaeger.
Working Software Over Comprehensive DocumentationAndrii Dzynia
Не один десяток раз каждый из нас видео этот пункт Agile манифеста. Кто на официальном сайте Agile Manifesto, кто в книгах или статьях, кто на тренингах или конференциях. Звучит правильно очевидно и просто, но на практике возникают некие сложности с его реализацией. Как определить какие документы писать нужно, а какие не стоит? Как поддерживать документы с наименьшими усилиями? От каких документов нужно отказаться или заменить на более простые решения? Что стоит документировать тестировщику, разработчику, бизнес-аналитику в Agile проектах, для того чтобы презентовать результаты своей работы. На все эти вопросы я постараюсь ответить в своем докладе, закрепляя примерами которые вы сможете попытаться применить на своих проектах.
Using Puppet - Real World Configuration ManagementJames Turnbull
Configuration management is the oft-misunderstood (and possibly black) art of managing your IT environment, infrastructure, and costs. Done well it can reduce operational errors and outages, simplify your environment, and help maintain the sanity of your IT staff.
Puppet is part of the bright future of configuration management for heterogeneous Unix systems. It combines automation, a powerful abstraction language, and uses a client-server model that can scale to suit enterprise-size environments. Puppet is written in Ruby and authored by recovering system administrator-turned-developer Luke Kanies.
This session explains why configuration management is important, the benefits configuration management will deliver, and how all of this can be achieved using Puppet. The session also explains emerging best practices in configuration management and addresses:
* What is configuration management? Or why am I here?
* Benefits, risks, and challenges: build fire resistant infrastructure rather than fight fires
* Best practice: how do we do this configuration management magic right?
* Where does Puppet fit in and why should management pay for its implementation?
* Why using Puppet will save you money and help staff retention (although is unlikely to stop world hunger)
* Real world configuration management using Puppet: code, examples, explanations, and using Puppet in anger
* Measuring the results and pocketing the returns
* Where to from here: some ideas about the future (may include wild-arse guesses)
Presentation delivered by Craig Smith at Fusion in Sydney, Australia in September 2012.
When XP and Scrum were devised over 10 years ago, they were created to improve the delivery of software development projects. As many enterprises have matured in the Agile adoption, many of the business users on IT projects are now attempting to use Agile approaches on their own non-IT projects.
In this session we will cover using Agile in a non-IT environment and demonstrate how the original XP practices map extremely well over to business processes. And how those in SD can help your business counterparts.
The Speed to Cool - Valuing Testing & Quality in Agile TeamsCraig Smith
Presentation delivered by Craig Smith at Agile Australia 2011. Ensuring that the approach to testing and quality is understood and appropriately valued in an Agile world can be a struggle for many organisations, especially when resources are limited and our customers are expecting business value in a timely manner. In this session Craig Smith will define what quality means, share a number of tools for measuring it as well as discussing approaches to improving the skills, empowerment and role of testing in the organisation and share why testing is the coolest role on the team and why it is everyone's responsibility.
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...Docker, Inc.
Fugro is a multinational enterprise that collects and provides highly specialized interpretation of geological data for a number of industries, at land and at sea. The company recently launched OARS (Office Assisted Remote Services), an innovation which uses advanced technology to reduce, and potentially eliminate, the need for surveyors onboard sea-going vessels, optimizing project crewing, safety and efficiency. By keeping skilled staff onshore and using an Internet of Things platform model, Fugro’s OARS project provides faster interpretation of data and decisions, better access to information across regions Hear how Fugro and consulting partner Flux7 created a solution with Docker and Amazon Web Services at its center that provides a high degree of uptime, ensures data is secure and enables portability so that environments that can be quickly replicated in new global regions on demand. Learn how Docker is being used as a key component in Fugro’s continuous delivery cycle and see how Docker is also used to create redundancy that ensures high uptime for Fugro’s 24X7 requirements.
Explores how to write a tic-tac-toe API that meets some interesting static typing constraints. Specifically, programs using the API may fail to compile, depending on the state of play in the game, such as trying to call move() with an already completed game board. The real theme of the presentation is not so much solving the tic-tac-toe problem but, rather, pushing static typing to its limits (and some might argue beyond its useful limits—you will have to judge for yourself).
The latest emerging tools and frameworks allow us to write applications (and test them!) much more productively than ever before. This talk explores that concept through a whirlwind tour of numerous advanced testing techniques. A significant emphasis will be on the use of testing DSLs and the use of advanced scripting aproaches using the Groovy programming language (though the principals apply equally well with numerous recent innovative languages).
Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages (Groovy, Ruby, and others) change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently and some new techniques also come into play. In this talk, we'll relearn practices needed for dynamic languages. Along the way we will look at typing, design patterns,
refactoring, functional style, SOLID principles revisited and more.
Leveraging the language, Use and abuse of Design Patterns, Web Services, Writing DSLs, Groovy Testing, Polyglot Groovy, Parallel Processing, Enterprise Groovy
Using the Groovy dynamic language for primarily functional / acceptance / customer / BDD testing with a forward looking perspective. Also considers polyglot options. The techniques and lessons learned can be applied to other kinds of testing and are also applicable to similar languages. Drivers and Runners discussed include: Native Groovy, HttpBuilder, HtmlUnit, WebTest, Watij, Selenium, WebDriver, Tellurium, JWebUnit, JUnit, TestNG, Spock, EasyB, JBehave, Cucumber, Robot Framework and FitNesse/Slim. Also looks at JMeter, ScalaCheck, Choco, AllPairs and ModelJUnit
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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.
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
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Craig Smith & Paul King Agile Tool Hacking Taking Your Agile Development Tools To The Next Level
1. Agile Tool Hacking:
Taking Your Agile Development
Tools To The Next Level
Craig Smith Dr Paul King
Suncorp ASERT
2. Overview
Welcome
Images: http://1.bp.blogspot.com/_FNT-_PKRcfs/R-uigRW64pI/AAAAAAAAA7M/iLGM-vOzlRM/s400/vegemite.jpg
http://www.sciencenews.net.au/images/kangaroo-and-baby-joey1.jpg http://www.vtxpress.com/tripleheader-fluke-rigs/knife.jpg I
http://www.sail-world.com/photos/Alt_AustraliaII.jpg http://geology.com/world/map/map-of-australia.gif
3. According to the
Compact Oxford
Dictionary:
Tool (noun)
1. a device or implement
used to carry out a
particular function.
2. a thing used to help
perform a job.
3. a person used by another.
Image: http://i.ehow.com/images/GlobalPhoto/Articles/2065416/dictionary_Full.jpg
13. Stories
&
Iterations
The Manual
Way
Images http://www.selfishprogramming.com/wp-content/uploads/2008/10/building-kanban-board.jpg
http://ssmirnov.files.wordpress.com/2009/02/still-life.jpg
34. Development
Environments
The Manual
Way
Image http://www.xtrasens.com/support/manual/install%20flow.png
http://img.dailymail.co.uk/i/pix/2007/07_01/hammerDM0607_468x584.jpg
36. Environment Tool Maturity
Beginner Intermediate Advanced
Instructions for Automated builds for Automated build for
application environments developer machines
building environments
manually / consistently
Automated environment Testers, team members
tests on demand using similar environment
Plan for pragmatic
programmer techniques
Required hardware / Consider cloud
software computing opportunities
Manual tests for
checking environments
Physical environment Zero cubicles, pairing
renovations stations, breakout /
Co-located team team area
42. Development Tools
Developers:
Craftsmanship / clean code
Quality non-negotiable
Tool Types:
Integrated Development
Environment (IDE)
Database SQL clients
Version control
Web Service / SOAP tools
File & operating system tools
Image http://www.cornetdesign.com/images/bowling_all2s.jpg
Metrics
http://cybernetnews.com/wp-content/uploads/2007/07/hacker.jpg
43. Development
Environments
The Manual
Way
Image http://www.domainlanguage.com/_library/images_people_working/designing_at_whiteboard.jpg
http://4.bp.blogspot.com/_9kQQgQD35rY/SaV5p8YBGhI/AAAAAAAAAkg/HOvlhIo7yGI/s1600-
h/06_Red_Green_Refactor.JPG
44. Example Development Tools
Open Source / Free:
IDE’s (multiple language support)
Eclipse: http://www.eclipse.org
NetBeans: http://www.netbeans.org
SharpDevelop: http://www.icsharpcode.net
RadRails: http://www.aptana.com/rails
Visual Studio Express:
http://www.microsoft.com/express/
Database Clients
DBVisualizer: http://www.dbvis.com/
SQuirreL: http://squirrel-sql.sourceforge.net
Web Service / SOAP Tools
soapUI: http://www.soapui.org
45. Example Development Tools
Open Source / Free:
Version Control Systems
Subversion: http://subversion.tigris.org
Git: http://git-scm.com
Bazaar: http://bazaar-vcs.org
Mercurial: http://mercurial.selenic.com
File & operating system tools
PowerShell: http://www.microsoft.com/
windowsserver2003/technologies/
management/powershell/default.mspx fish:
http://fishshell.org
Cygwin: http://www.cygwin.com
Miscellaneous OS tools
47. Example Development Tools
Commercial:
IDE’s (multiple language support)
IntelliJ IDEA / RubyMine / ReSharper:
http://www.jetbrains.com/
Visual Studio:
http://www.microsoft.com/visualstudio
Web Service / SOAP Tools
Oxygen: http://www.oxygenxml.com/
Metrics
Clover: http://www.atlassian.com/software/
clover
Simian: http://www.redhillconsulting.com.au
Profilers
YourKit: http://www.yourkit.com
48. Development Tool Maturity
Beginner Intermediate Advanced
Usage of IDE with team Mastery of IDE Mastery of advanced
agreed setup keystrokes / features / IDE features / plugin
plugins development
Awareness / use of Usage of advanced
basic tools / metrics Team commitment to
react to metrics output metrics tools & features
Use of version control Usage of distributed
Usage of advanced
version control features version control
Team understanding of
quality Advanced clean code /
Quality non-negotiable /
software craftsman
clean code
55. Testing Tools
Testers:
Automate
Continuous feedback
Bridge communication gaps
Tool types:
Test specification generation
Test execution / record / log
Test user interfaces
Performance test
Test / incident management
Image http://blogs.msdn.com/blogfiles/willy-
peter_schaub/WindowsLiveWriter/VSTSRangersProjectsWCFLoadTestToo.0Sh
ips_7D80/CLIPART_OF_13165_SM_2.jpg
http://2.bp.blogspot.com/_U08AbEz5lx4/Ra9UkCi4EeI/AAAAAAAAAAY/vLpsqL
Reporting
3uqE0/s320/swisstoolcsopen.jpg
56. Testing
The Manual
Way
Image http://tell.fll.purdue.edu/JapanProj/FLClipart/Verbs/understand.gif
http://thedailystandup.com/wp-content/uploads/2008/12/istock_000004776276xsmall.jpg
57. Example Testing Tools
Open Source / Free:
Test Specification – xUnit Tools
JUnit: http://www.junit.org
Nunit: http://www.nunit.org
Test Specification Tools – Expressive/BDD
Spock: http://code.google.com/p/spock/
FitNesse: http://fitnesse.org
Concordion: http://www.concordion.org
Cucumber: http://cukes.info
easyb: http://www.easyb.org
Test Specification Tools – Mocking
NMock: http://www.nmock.org
EasyMock: http://easymock.org
58. Example Testing Tools
Open Source / Free:
Test Execution / Record / Log / UI
Selenium: http://seleniumhq.org
Watir: http://wtr.rubyforge.org
Tellurium: http://kenai.com/projects/tellurium
WebTest: http://webtest.canoo.com
Performance Test
JMeter: http://jakarta.apache.org/jmeter/
Grinder: http://grinder.sourceforge.net/
Test Management
Radi: http://radi-testdir.sourceforge.net
RTH: http://sourceforge.net/projects/rth/
59. Example Testing Tools
Commercial:
Test Execution / Record / Log / UI
Twist: http://studios.thoughtworks.com/
twist-agile-test-automation
GreenPepper:
http://www.greenpeppersoftware.com/en/
Squish: http://www.froglogic.com
Integrated
HP Quality Center / QTP / LoadRunner:
https://h10078.www1.hp.com/cda/hpms/
display/main/hpms_home.jsp
?zn=bto&cp=1_4011_100__
SpiraTest: http://www.inflectra.com/SpiraTest/
60. Testing Tool Maturity
Beginner Intermediate Advanced
Automated developer Test driven 100% test coverage
unit tests development (unit / acceptance /
functional)
Some automated BDD / mock testing
acceptance / functional Developer / tester
tests Automated regression pair programming
tests – new / legacy
Developers / testers Automated performance
working together plus All tests run in CI build testing with functional
combined definition of (unit / acceptance / test reuse
done functional)
Risk based testing
Usage of GUI test Usage of expressive /
robots DSL testing
Based on Elements of Enterprise CI
http://www.anthillpro.com/html/resources/elements_of_ci_A4.pdf
67. Continuous Integration
Advantages:
Early warning
Consistent test / integrate
Centrepiece for quality
Practices:
Version control / automated
build / automated test
Commit early & often
Fast feedback
Visible / audible results
Artefacts
Image http://www.michaelfransen.com/wp-
content/uploads/2008/02/wheresthebuild-small.jpg
68. Continuous
Integration
The Manual
Way
Image http://farm4.static.flickr.com/3122/3121915858_06a783e594.jpg?v=0
http://www.michaelfransen.com/wp-content/uploads/2008/02/wheresthebuild-small.jpg
71. Continuous Integration Maturity
Beginner Intermediate Advanced
Implementation of Implementation of Usage of build clusters /
core build steps continuous integration slaves / VM snapshots
server to auto-run build
Frequent check-in to Dependency management
version control system Dedicated build & internal repository
machine
Adequate hardware
to run build Advanced / refactored / High frequency check-in
multiple builds to version control
Team commitment to system
fixing broken builds Broken build alerts &
team procedures Builds for environment /
project impediments
78. Deployment Tools
Advantages:
Repeatable from development
to Production
No “fight night” surprises
Practices:
Automated deployment script
Environment management
Environment tokens
Automated & manual steps
Smoke test / confirmation
Image http://www.serena.com/images/products/dimensions-deploy/deploy-
illustration2-286-23.jpg
http://ciadvantage.com/cs/photos/storage/ctd.gif
79. Deployment
The Manual
Way
Image http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineEvents.jpg
http://farm4.static.flickr.com/3645/3340381990_fa9f004e5b.jpg
80. Example Deployment Tools
Open Source / Free:
Roll your own (scripts / build / CI server)
Cargo: http://cargo.codehaus.org
Capistrano: http://www.capify.org
SmartFrog: http://www.smartfrog.org
Commercial:
Tableaux: http://www.incanica.com
IBM Rational Suite:
http://www-01.ibm.com/software/rational/
BMC BladeLogic: http://www.bmc.com/
products/offering/bmc-bladelogic-application-
release-manager.html
81. Deployment Tool Maturity
Beginner Intermediate Advanced
Documented manual Fully scripted Usage of deployment
deployment & rollback deployment & rollback tool (roll your own /
process / checklist where applicable open source /
commercial)
Documented manual Roll your own basic
smoke tests deployment to test Repeatable deployment
environments using to all environments
Automated helper CI server (tokenized)
scripts
Repeatable build for Automated production
“go-live” processes deployment (push
button or automatic)
Based on Elements of Enterprise CI
http://www.anthillpro.com/html/resources/elements_of_ci_A4.pdf
87. Cucumber Feature
Feature: Deployment
In order to use the latest version of testApp
A support officer should be able to
Check that testApp.war has been deployed to the remote machine
Scenario: User deploys
Given app testApp
When I deploy
Then the testApp.war file should be deployed to remote
Cucumber / Capistrano Step Definition
[...]
When /^I deploy$/ do
Dir.chdir(@app_dir) do
system "cap deploy:setup"
system "cap deploy"
end
end
Then /^ the testApp.war file should be deployed
to remote$/ do
[...]
Hacking Deployment Tests
89. Monitoring
The Manual
Way
Image http://upload.wikimedia.org/wikipedia/commons/5/52/Unix-process-list.png
http://www.petri.co.il/images/virtual_vmware_files_explained_03.jpg
http://trubke.net/_nw/1/17916.png
90. Example Monitoring Tools
Open Source / Free:
Roll your own (scripts / CI server)
Cacti: http://www.cacti.net
Zabbix: http://www.zabbix.com
Nagios: http://www.nagios.org
Monit: http://mmonit.com/monit/
Commercial:
Splunk: http://www.splunk.com
IBM Tivoli: http://www.ibm.com/software/tivoli
Hyperic: http://www.hyperic.com
NetIQ: http://www.netiq.com
91. Monitoring Tool Maturity
Beginner Intermediate Advanced
Base level / centralised Roll your own basic Usage of monitoring
monitoring on critical monitoring for tools at all levels
components processes / logs / including application
(eg. hardware, operating environments at level
system, web server, application level
database) Monitoring alert process
Refactored logs
Useful logs (logging (central location, Visual display of
levels, log rolling, known redundant details monitoring tool / status
support procedures) fixed / removed)
Monitoring of advanced
Ad-hoc usage of tools / Ad-hoc usage of tools / items (eg. configuration,
procedures for procedures for accounting)
reactive support proactive support
96. 2009-07-14 17:10:00,028 [ERROR,au.com.suncorp.ldocs.web.AbstractAction] Unhandled exception caught in action: null
java.lang.NullPointerException
at au.com.suncorp.ldocs.web.RetrieveSADSAction.retrieveRtf(RetrieveSADSAction.java:98)
at au.com.suncorp.ldocs.web.RetrieveSADSAction.executePost(RetrieveSADSAction.java:59)
at au.com.suncorp.ldocs.web.AbstractAction.performIt(AbstractAction.java:66)
at au.com.suncorp.ldocs.web.AbstractAction.performPost(AbstractAction.java:60)
at com.thoughtworks.web.AbstractAction.execute(AbstractAction.java:58)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at com.thoughtworks.web.struts.CustomRequestProcessor.process(CustomRequestProcessor.java:159)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6356)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
2009-07-14 17:10:00,028 [INFO ,com.thoughtworks.web.struts.CustomRequestProcessor] END REQUEST
2009-07-14 17:10:02,841 [INFO ,com.thoughtworks.web.struts.CustomRequestProcessor] Processing a 'GET' for path '/ChibaSADS'
2009-07-14 17:10:02,841 [INFO ,com.thoughtworks.web.struts.CustomRequestProcessor] BEGIN REQUEST
2009-07-14 17:10:02,841 [INFO ,com.thoughtworks.command.Command] BEGIN COMMAND au.com.suncorp.ldocs.command.DocumentGenerationServiceCommand
2009-07-14 17:10:02,856 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [START] FETCH EFFECTIVE TEMPLATE
2009-07-14 17:10:02,856 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [START] FETCH TEMPLATE VERSION
2009-07-14 17:10:03,544 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [END] FETCH TEMPLATE VERSION
2009-07-14 17:10:03,544 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [END] FETCH EFFECTIVE TEMPLATE
2009-07-14 17:10:03,544 [INFO ,com.thoughtworks.dgs.server.dbaccess.DatabaseQueryManager] [START] DEEPEN THE QUERY
Hacking Log Files
97. Wrap Up:
Plan your
tools &
approach
Image http://jenn98.com/bugs/images/bugs-elmer-daffy.jpg
98. Wrap Up:
Manual
first
Image http://jellyflux.files.wordpress.com/2008/11/woman-surrounded-by-robots.jpg
104. Wrap Up:
Act like an
A-Team
Image http://www.popartuk.com/g/l/lgpp31670+i-love-it-when-a-plan-comes-together-weenicons-a-team-poster.jpg
105. Want More Information?
Craig Smith
http://www.suncorp.com.au
http://www.agileacademy.com.au
craig.smith@suncorp.com.au
@smithcdau
Dr. Paul King
http://www.asert.com.au
paulk@asert.com.au
@paulk_asert
Download this presentation at:
http://www.agile2009.org/node/2840
http://www.agileacademy.com.au/knowledgehub/downloa
ds
106. Acknowledgments
Suncorp is one of Australia and New Zealand's largest diversified
financial services providers, supplying banking, insurance and wealth
management products to around 7 million customers through well-
established and recognised brands such as AAMI, Australian Pensioners
Insurance Agency, Shannons, Vero, Asteron and Tyndall, as well as
Suncorp and GIO. Today, Suncorp is Australia's fifth largest bank and
second largest domestic general insurance group, with over 16,000
staff. Suncorp has representation in 450 offices, branches and agencies
throughout Australia and New Zealand.
ASERT is one of Australia’s leading suppliers of development services,
mentoring and training in Agile, Web Services, Web Applications, Java,
Groovy and Grails.