This presentation explains why and what for we should use:
1) Trunk Based Development
2) Pre-commit Code Review
3) Gerrit
4) How they can be used together
This presentation was shared in one of Java User Groups in Astana, Kazakhstan
TDD and more than 9000 tries to sell it to a customerAnuar Nurmakanov
1. TDD is a long-term investment that may not show results for months, so customers need to understand it requires patience.
2. Teams may not be experienced enough with TDD and would benefit from drills or training before adopting it.
3. TDD principles are more difficult to apply to legacy code that lacks tests, but training can help use TDD effectively anyway.
4. TDD is primarily an internal design tool, not just for catching bugs, so its design benefits need emphasis over external quality assurances.
TDD 규칙은 간단하지만, TDD 를 배우는 것은 어렵고, 실천하기는 더 어렵다.
왜 그럴까? TDD 는 설계 방법이기 때문이다. TDD 의 규칙 리듬을 알고 따르려고 해도, 설계 용어들을 모르면 TDD 를 제대로 할 수 없다.
TDD 를 잘 하려면, 설계용어의 의미를 이해하고, 언제 적용하는지도 알아야 한다.
This document provides an overview of Agile and Scrum methodologies. It discusses why Agile approaches became popular, describing challenges with traditional waterfall methods. Key aspects of Scrum are outlined, including roles like Product Owner and Scrum Master, ceremonies like sprint planning and daily standups, and artifacts like product and sprint backlogs. Benefits of Scrum like adaptability, visibility and increased productivity are highlighted. The document aims to introduce readers to Scrum processes and terminology at a high level.
Developing great products is hard. Using dual-track Agile dramatically improves the likelihood of success. But getting products off the ground requires some up-front thinking. Rackspace uses a number of tools to design and build the right product, not just build the product right. This presentation offers four of those tools.
Software testing involves validating that the product being built is the right one and verifying that it is being built correctly. Testing helps find bugs, missing features, and ensures quality by providing feedback. There are different types of manual and automated testing techniques as well as common challenges like tests being difficult to write and maintain. The future of testing is trending toward more mature testing roles, cloud and social testing, smarter results analysis, and standards like ISO 29119.
This document discusses an agile development process. It outlines steps including planning and marketing, front-end and back-end coding, testing on devices and with other groups, documenting processes, and iterating. Key points are that the steps presented are guidelines, there are no hard rules, and teams can do things in parallel. Status updates will occur every Wednesday at 4 PM where each person presents for 5 minutes on the current phase, learnings, and work completed so far.
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...agil8 Ltd
David Putman of agil8’s training and consulting team discussed the anti-patterns observed in organisations introducing technical practices into their Agile software development teams, and how to avoid them.
This presentation was made at agil8’s Community Event for past students, clients, colleagues and agil8 associates on 30 October 2014.
The document provides guidance on how to plan and execute a project. It recommends first picking a title and defining the project scope. It then discusses performing requirements analysis, designing the development environment and overall system architecture, coding and testing the project, and managing the project schedule and resources. Finally, it provides some example project ideas and tools to support the development process.
TDD and more than 9000 tries to sell it to a customerAnuar Nurmakanov
1. TDD is a long-term investment that may not show results for months, so customers need to understand it requires patience.
2. Teams may not be experienced enough with TDD and would benefit from drills or training before adopting it.
3. TDD principles are more difficult to apply to legacy code that lacks tests, but training can help use TDD effectively anyway.
4. TDD is primarily an internal design tool, not just for catching bugs, so its design benefits need emphasis over external quality assurances.
TDD 규칙은 간단하지만, TDD 를 배우는 것은 어렵고, 실천하기는 더 어렵다.
왜 그럴까? TDD 는 설계 방법이기 때문이다. TDD 의 규칙 리듬을 알고 따르려고 해도, 설계 용어들을 모르면 TDD 를 제대로 할 수 없다.
TDD 를 잘 하려면, 설계용어의 의미를 이해하고, 언제 적용하는지도 알아야 한다.
This document provides an overview of Agile and Scrum methodologies. It discusses why Agile approaches became popular, describing challenges with traditional waterfall methods. Key aspects of Scrum are outlined, including roles like Product Owner and Scrum Master, ceremonies like sprint planning and daily standups, and artifacts like product and sprint backlogs. Benefits of Scrum like adaptability, visibility and increased productivity are highlighted. The document aims to introduce readers to Scrum processes and terminology at a high level.
Developing great products is hard. Using dual-track Agile dramatically improves the likelihood of success. But getting products off the ground requires some up-front thinking. Rackspace uses a number of tools to design and build the right product, not just build the product right. This presentation offers four of those tools.
Software testing involves validating that the product being built is the right one and verifying that it is being built correctly. Testing helps find bugs, missing features, and ensures quality by providing feedback. There are different types of manual and automated testing techniques as well as common challenges like tests being difficult to write and maintain. The future of testing is trending toward more mature testing roles, cloud and social testing, smarter results analysis, and standards like ISO 29119.
This document discusses an agile development process. It outlines steps including planning and marketing, front-end and back-end coding, testing on devices and with other groups, documenting processes, and iterating. Key points are that the steps presented are guidelines, there are no hard rules, and teams can do things in parallel. Status updates will occur every Wednesday at 4 PM where each person presents for 5 minutes on the current phase, learnings, and work completed so far.
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...agil8 Ltd
David Putman of agil8’s training and consulting team discussed the anti-patterns observed in organisations introducing technical practices into their Agile software development teams, and how to avoid them.
This presentation was made at agil8’s Community Event for past students, clients, colleagues and agil8 associates on 30 October 2014.
The document provides guidance on how to plan and execute a project. It recommends first picking a title and defining the project scope. It then discusses performing requirements analysis, designing the development environment and overall system architecture, coding and testing the project, and managing the project schedule and resources. Finally, it provides some example project ideas and tools to support the development process.
Survival techniques for Testers-BEYOND THE T-SHAPED TESTER Derk-Jan de Grood
he T-shaped tester (Rob Lambert, Lisa Crispin and Janet Gregory) combines need for general knowledge with advanced test skills to be successful. But testing is a versatile profession and demands are growing. Time to go beyond the T-shape and introduce the π-shaped tester. Extend your global knowledge (development, project management, agile etc) and test skills with yet another specialism to stay in demand, e.g. security, test automation, requirements. In this webinar, Derk-Jan and Jan Jaap report the results of their search for future needs. They explain how we can survive as a tester and what skills and knowledge we need to develop. In their story they include the responses they got from the 100 participants that joined the workshops they gave on this topic.
Key Takeaways:
Become aware of the need to continuously develop yourself
What specialism’s should I adapt to become a better tester
Insights in how to brand your knowledge and let the world know about your specialism
Derk Jan de Grood WebinarDerk-Jan de Grood works for Valori as senior test manager and Agile Transition Coach. His drive is to improve the visibility of testing in both agile and traditional organizations, by sharing his knowledge and experience by means of training, presentations, workshops and publications. He is a regular speaker at conferences like EuroSTAR, wrote several successful books on software testing and publishes articles for the major testing magazines. In 2014 he won the EuroSTAR Testing Excellence Award.
Jan Jaap Cannegieter webinarJan Jaap Cannegieter is a well-known consultant, author, (keynote) speaker and requirements and test specialist form the Netherlands. He has 20 years of experience in ICT and did assignment s in testing, quality assurance, TMMi, CMMI, SPI, Agile and requirements. In testing he was a tester, test manager, test consultant and workshop leader. At this moment Jan Jaap is test/QA-manager and delivery manager at DinamiQs and vice president of SYSQA B.V., a company of 180 employees specialized in requirements, software testing, quality assurance and IT-governance. Within SYSQA Jan Jaap coaches other testers and test managers, is the thought leader and responsible for product development. He is the driving force behind Situational Testing and he wrote several articles and books in the Netherlands.
This presentation is simply for motivating developers towards test automation and test-driven development. It discusses lightly unit testing, mocking and integration testing, too.
The document discusses test-driven development (TDD), an agile software development technique where unit tests are written before code to verify functionality. TDD follows a cycle of writing a test, seeing it fail, then writing code to pass the test and refactoring code. Benefits of TDD include cleaner code design, easier refactoring and maintenance, and self-documenting tests. However, TDD requires imperfect knowledge at the start and is not a replacement for all testing.
In a world where subreddits like recruitinghell exist and memes poking fun at tense relationships between tech recruiters and professionals abound, eTeki’s excited to introduce a TwitterChat which gives the staffing & recruiting industry unfettered access to ask tech pros burning questions related to hiring (finding, contacting, communicating, screening, interviewing, navigating offers, onboarding etc.).
https://resources.eteki.com/techietalks/
This document discusses various techniques for maintaining code quality, including pair programming, test-driven development, code reviews, and self-documenting code. It notes that pair programming involves two developers sharing one monitor, keyboard, and mouse to collaboratively write code. Benefits include higher quality code, knowledge sharing, and a teaching tool. Code reviews search for bugs, design flaws, nonconformance with requirements or style guides. Comments should explain why code is written a certain way rather than describing how.
Agile Testing involves testing in the context of Agile development. It is done continuously and collaboratively by all members of the team throughout the development process, rather than just by QA/testers at the end. This helps ensure high quality, useful software is delivered iteratively.
This document discusses the role and responsibilities of a technical team lead. It begins by defining a technical team lead as a leader responsible for a development team who spends at least 30% of their time writing code. It then outlines the typical activities of a technical team lead, including coding (40% of time), design (30%), integration (15%), and other miscellaneous tasks (15%). It discusses the skills needed for the role, such as people skills, communication skills, and technical skills. It also provides advice on how to transition into a technical team lead role, such as getting the necessary skills, finding a mentor, and understanding different organizational structures.
This document discusses practices of agile developers. It covers topics like version control, issue tracking, unit testing, pair programming, refactoring, code reviews, and collaboration tools. The overall message is on continuously improving expertise and productivity through techniques like feedback, testing, refactoring, and 10,000 hours of practice.
This document discusses the skills needed for developers in agile times. It emphasizes the importance of continuous learning, collaboration, and adapting to change. The restless developer recognizes that agile development requires new technical and soft skills, and they work to develop these skills in themselves and help the team learn as well. Some of the key skills mentioned include lean startup principles, user-centered design, testing, continuous delivery, collaboration, leadership, and domain knowledge.
Scrum Refresher you can run for your organisation or Scrum team. Scrum values, Scrum framework, Scrum roles.
Copy what you need to your own presentation.
Mutation testing has been evolving into a real candidate to become the de facto metric for assessing the quality of a test suite, defying the throne that has been occupied by code coverage until now.
The concept of mutation testing is quite simple: mutations are introduced on the codebase and the test suite is run against the mutated code. If your test suite is strong, then it should catch the mutation, by having at least one test failing.
In this talk I plan to show how coverage by itself doesn't guarantee quality on the test suite, and how mutation testing can effectively find bugs on your code and tests.
The document discusses test-driven development (TDD). It describes TDD as writing tests before code in order to think about how to use components before implementing them. This results in components that are easy to test and enhance. The TDD process involves red-green-refactor cycles of writing a failing test, making it pass with minimal code, then refactoring. TDD is done at both the unit test and acceptance test levels during iterative software development. Tools like JUnit and IDEs are recommended to automate and facilitate the TDD process.
Every project has a starting point.
Whether called project Kick-off, Project Execution, or Sprint 0, from this basis the project begins to create and deliver value.
Sprint 0 will begin the program execution – from Sprint 0, the team is ready and able to deliver business value that is usable and potentially releasable.
TDD involves writing tests before writing code to ensure code works as intended and allows for refactoring. The TDD process involves writing specifications, tests, and then code. Tests provide confidence that code works, help design better code, and act as documentation. Tests should be written even for code that currently works perfectly since requirements and needs change over time. The benefits of TDD include producing modular code that is easy to change and refactor.
The document provides an overview of agile software development methods. It discusses the history and principles of agile development, including the Agile Manifesto. Specific agile methods like Scrum, XP, RAD, TDD, Crystal and Kanban are covered. For Scrum, it describes the roles of Product Owner, Scrum Master and Development Team. It also explains Scrum events like Sprint Planning, Daily Scrums, Sprint Review and Retrospective. The document aims to give the reader a brief introduction to common agile concepts and practices.
My presentation at Arvato Systems about TDD. This presentation is based on my own knowledge and experience. I go through two full TDD cycles programmed in Eclipse presenting the written code in the presentation.
This document provides an overview of code review practices. It discusses why code review is important to improve code quality, readability and maintainability. It describes different types of code review including over-the-shoulder, pair programming, automated and various time-based methods. Tools for facilitating code review are also presented, such as Review Board, Gerrit, Fisheye/Crucible and SmartBear CodeCollaborator. The goal of the document is to educate about best practices for conducting code reviews.
This document provides an overview of continuous integration using Jenkins. It discusses topics like integrating code changes daily, automating builds and tests, using Jenkins plugins for static code analysis and artifact management, and best practices like fixing broken builds quickly and keeping the build fast. Jenkins is introduced as an open source automation server that supports continuous integration practices through features like built-in plugins, proxy configuration, and providing feedback to developers.
BadAss: Making Search Awesome - Jonti Bolles | SearchHOUSearchHOU
Jonti Bolles will provide an overview of lessons from "BadAss: Making Users Awesome" published by Kathy Sierra and how it relates to your online marketing, audience targeting and SEO.
Jonti is the owner of White Hat Ops, a local search engine marketing agency focused on sustainable and ethical results for their clients.
Survival techniques for Testers-BEYOND THE T-SHAPED TESTER Derk-Jan de Grood
he T-shaped tester (Rob Lambert, Lisa Crispin and Janet Gregory) combines need for general knowledge with advanced test skills to be successful. But testing is a versatile profession and demands are growing. Time to go beyond the T-shape and introduce the π-shaped tester. Extend your global knowledge (development, project management, agile etc) and test skills with yet another specialism to stay in demand, e.g. security, test automation, requirements. In this webinar, Derk-Jan and Jan Jaap report the results of their search for future needs. They explain how we can survive as a tester and what skills and knowledge we need to develop. In their story they include the responses they got from the 100 participants that joined the workshops they gave on this topic.
Key Takeaways:
Become aware of the need to continuously develop yourself
What specialism’s should I adapt to become a better tester
Insights in how to brand your knowledge and let the world know about your specialism
Derk Jan de Grood WebinarDerk-Jan de Grood works for Valori as senior test manager and Agile Transition Coach. His drive is to improve the visibility of testing in both agile and traditional organizations, by sharing his knowledge and experience by means of training, presentations, workshops and publications. He is a regular speaker at conferences like EuroSTAR, wrote several successful books on software testing and publishes articles for the major testing magazines. In 2014 he won the EuroSTAR Testing Excellence Award.
Jan Jaap Cannegieter webinarJan Jaap Cannegieter is a well-known consultant, author, (keynote) speaker and requirements and test specialist form the Netherlands. He has 20 years of experience in ICT and did assignment s in testing, quality assurance, TMMi, CMMI, SPI, Agile and requirements. In testing he was a tester, test manager, test consultant and workshop leader. At this moment Jan Jaap is test/QA-manager and delivery manager at DinamiQs and vice president of SYSQA B.V., a company of 180 employees specialized in requirements, software testing, quality assurance and IT-governance. Within SYSQA Jan Jaap coaches other testers and test managers, is the thought leader and responsible for product development. He is the driving force behind Situational Testing and he wrote several articles and books in the Netherlands.
This presentation is simply for motivating developers towards test automation and test-driven development. It discusses lightly unit testing, mocking and integration testing, too.
The document discusses test-driven development (TDD), an agile software development technique where unit tests are written before code to verify functionality. TDD follows a cycle of writing a test, seeing it fail, then writing code to pass the test and refactoring code. Benefits of TDD include cleaner code design, easier refactoring and maintenance, and self-documenting tests. However, TDD requires imperfect knowledge at the start and is not a replacement for all testing.
In a world where subreddits like recruitinghell exist and memes poking fun at tense relationships between tech recruiters and professionals abound, eTeki’s excited to introduce a TwitterChat which gives the staffing & recruiting industry unfettered access to ask tech pros burning questions related to hiring (finding, contacting, communicating, screening, interviewing, navigating offers, onboarding etc.).
https://resources.eteki.com/techietalks/
This document discusses various techniques for maintaining code quality, including pair programming, test-driven development, code reviews, and self-documenting code. It notes that pair programming involves two developers sharing one monitor, keyboard, and mouse to collaboratively write code. Benefits include higher quality code, knowledge sharing, and a teaching tool. Code reviews search for bugs, design flaws, nonconformance with requirements or style guides. Comments should explain why code is written a certain way rather than describing how.
Agile Testing involves testing in the context of Agile development. It is done continuously and collaboratively by all members of the team throughout the development process, rather than just by QA/testers at the end. This helps ensure high quality, useful software is delivered iteratively.
This document discusses the role and responsibilities of a technical team lead. It begins by defining a technical team lead as a leader responsible for a development team who spends at least 30% of their time writing code. It then outlines the typical activities of a technical team lead, including coding (40% of time), design (30%), integration (15%), and other miscellaneous tasks (15%). It discusses the skills needed for the role, such as people skills, communication skills, and technical skills. It also provides advice on how to transition into a technical team lead role, such as getting the necessary skills, finding a mentor, and understanding different organizational structures.
This document discusses practices of agile developers. It covers topics like version control, issue tracking, unit testing, pair programming, refactoring, code reviews, and collaboration tools. The overall message is on continuously improving expertise and productivity through techniques like feedback, testing, refactoring, and 10,000 hours of practice.
This document discusses the skills needed for developers in agile times. It emphasizes the importance of continuous learning, collaboration, and adapting to change. The restless developer recognizes that agile development requires new technical and soft skills, and they work to develop these skills in themselves and help the team learn as well. Some of the key skills mentioned include lean startup principles, user-centered design, testing, continuous delivery, collaboration, leadership, and domain knowledge.
Scrum Refresher you can run for your organisation or Scrum team. Scrum values, Scrum framework, Scrum roles.
Copy what you need to your own presentation.
Mutation testing has been evolving into a real candidate to become the de facto metric for assessing the quality of a test suite, defying the throne that has been occupied by code coverage until now.
The concept of mutation testing is quite simple: mutations are introduced on the codebase and the test suite is run against the mutated code. If your test suite is strong, then it should catch the mutation, by having at least one test failing.
In this talk I plan to show how coverage by itself doesn't guarantee quality on the test suite, and how mutation testing can effectively find bugs on your code and tests.
The document discusses test-driven development (TDD). It describes TDD as writing tests before code in order to think about how to use components before implementing them. This results in components that are easy to test and enhance. The TDD process involves red-green-refactor cycles of writing a failing test, making it pass with minimal code, then refactoring. TDD is done at both the unit test and acceptance test levels during iterative software development. Tools like JUnit and IDEs are recommended to automate and facilitate the TDD process.
Every project has a starting point.
Whether called project Kick-off, Project Execution, or Sprint 0, from this basis the project begins to create and deliver value.
Sprint 0 will begin the program execution – from Sprint 0, the team is ready and able to deliver business value that is usable and potentially releasable.
TDD involves writing tests before writing code to ensure code works as intended and allows for refactoring. The TDD process involves writing specifications, tests, and then code. Tests provide confidence that code works, help design better code, and act as documentation. Tests should be written even for code that currently works perfectly since requirements and needs change over time. The benefits of TDD include producing modular code that is easy to change and refactor.
The document provides an overview of agile software development methods. It discusses the history and principles of agile development, including the Agile Manifesto. Specific agile methods like Scrum, XP, RAD, TDD, Crystal and Kanban are covered. For Scrum, it describes the roles of Product Owner, Scrum Master and Development Team. It also explains Scrum events like Sprint Planning, Daily Scrums, Sprint Review and Retrospective. The document aims to give the reader a brief introduction to common agile concepts and practices.
My presentation at Arvato Systems about TDD. This presentation is based on my own knowledge and experience. I go through two full TDD cycles programmed in Eclipse presenting the written code in the presentation.
This document provides an overview of code review practices. It discusses why code review is important to improve code quality, readability and maintainability. It describes different types of code review including over-the-shoulder, pair programming, automated and various time-based methods. Tools for facilitating code review are also presented, such as Review Board, Gerrit, Fisheye/Crucible and SmartBear CodeCollaborator. The goal of the document is to educate about best practices for conducting code reviews.
This document provides an overview of continuous integration using Jenkins. It discusses topics like integrating code changes daily, automating builds and tests, using Jenkins plugins for static code analysis and artifact management, and best practices like fixing broken builds quickly and keeping the build fast. Jenkins is introduced as an open source automation server that supports continuous integration practices through features like built-in plugins, proxy configuration, and providing feedback to developers.
BadAss: Making Search Awesome - Jonti Bolles | SearchHOUSearchHOU
Jonti Bolles will provide an overview of lessons from "BadAss: Making Users Awesome" published by Kathy Sierra and how it relates to your online marketing, audience targeting and SEO.
Jonti is the owner of White Hat Ops, a local search engine marketing agency focused on sustainable and ethical results for their clients.
The document discusses code review and patterns for optional arguments in queries. It notes that the order of optional limit, filter, and offset arguments should be limit first, then filter, then offset. It also discusses removing redundant statements, handling unchecked types, and using the compiler to catch errors.
This document summarizes code review tools and processes. It discusses Flex Formatter and Google Code Reviews tools for facilitating code reviews. Flex Formatter ensures code style consistency while Google Code Reviews allows uploading code diffs for review and commenting. The Rietveld script uploads code diffs to Google Code Reviews to initiate reviews. Benefits of code reviews include distributing knowledge, catching bugs, encouraging tidiness, and saving time.
Setting up a secure development life cycle with OWASP - seba deleersnyderSebastien Deleersnyder
Using the OWASP Software Assurance Maturity Model (OpenSAMM) as a framework, this talk covers the major application security controls of a secure development lifecycle program as provided by OWASP. Featured OWASP open source material include: OWASP guidelines and tools such as ESAPI, ZAProxy, as well as educational resources.
This document discusses different approaches to software development using trunk-based development and branch by abstraction. It notes some of the challenges with traditional branching approaches like merge conflicts and undeployable code. Trunk-based development and branch by abstraction aim to address these issues by separating features through abstraction rather than branches, allowing code to remain deployable at any time. The document also references some resources for further reading on these topics.
If you are ADF developer and want to learn JET - this session is for you. Web developers without ADF background are also welcome. It will be explained how to implement CRUD use case in JET on top of ADF BC REST services. Use case will not be limited to basic CRUD operations. You are going to learn how to reuse ADF BC validations and LOVs in JET. Expect live demos.
Talk in Switzerland at European Broadcasting Union cyber security event - Feb 2017.
Discussing some core aspects of secure application development, technical security controls and secure systems development lifecycle....
Slides da palestra no Café Ágil da ThoughtWorks e Tá Safo em Belém, 10/08/2012.
Outros links interessantes:
http://www.youtube.com/watch?v=xzstASOvqNc
http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/
GitHub pull request model and Gerrit Code Review, which one is best for you ?
What are the plus and minuses of both models ?
See how it make sense to use one or the other or even both together.
The GitHub plugin for Gerrit Code Review allows the existing developers community to start exploring code review without loosing contact with the github.com presence.
This document provides an overview of continuous integration (CI) and the basics of setting up a CI system. It discusses the problems that occur without CI, such as lots of bugs, infrequent testing and releases. It then introduces CI, highlighting benefits like fewer bugs, smoother integration and faster issue identification. The core components needed for a basic CI system are outlined as an automated build process, test suite, build server and source code repository. Additional components like deployment automation, test types, code quality metrics and version control are also recommended. Finally, a simple example pipeline is shown.
How to Have Code Reviews That Developers Actually WantCameron Presley
The document discusses how to have effective code reviews that developers want. It outlines that the goal of code reviews is to find mistakes early to reduce costs. It recommends reviewing code for quality, readability, maintainability and style. The document suggests implementing a code review process that frames suggestions constructively and reinforces joint ownership over the code. It provides resources for learning more about best practices for peer code reviews.
This slide created for shared internal and for everyone interesting clean code. Why we needed? Why you should use it?
Ps. Sorry if my grammar is very bad :D
Join this session to see the benefits of Test-Driven Development (TDD), and understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests. We will go over some history about TDD and list the main advantages and disadvantages that most developers who practice it find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD by seeing how to do it step by step with an example of a "live" coding session with Java. At the end of the session, you will have a wider understanding of TDD and why it's interesting to master it. Also, you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code.
---
Presentation shared at Bucharest Tech Week '23
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)ssusercaf6c1
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group
Public group 17th of May '23
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)Nacho Cougil
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group (17th May '23)
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
===
Presentation (revisited & updated) shared at JDD 2022:
https://jdd.org.pl/lecture_2022/#id=78434
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
In this presentation we will see the benefits of Test-Driven Development (TDD), understand how it works and what the benefits are of using it. We will see in a more detailed approach this way of developing software, where our software is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of "live" coding session with Java.
At the end of the session, we hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
Software testing and what i can do as a developerDaniel Toader
Software testing is now a significant part of software development and it should be included in every phase of the life cycle. Find out what types of testing can be done by a developer, when and why should we use them and what are some of the advantages and disadvantages.
What is "Agile"?
Why would someone like to be agile?
What are the 3 pillars for agile software development?
How can you achieve technical excellence in your software teams?
Are developer skills more important than languages, methods or frameworks?
Software quality is critical to consistently and continually delivering new features to our users. This talk covers the importance of software quality and how to deliver it via unit testing, Test Driven Development and clean code in general.
This is the deck from a talk I gave at Desert Code Camp 2013.
This presentation is a continuation of a "What To Do Once You Have an Idea". It explores a process of defining and building an MVP. It emphasizes building an MVP in a sustainable way while avoiding taking on unnecessary Product, Technical, Infrastructure and Process Debt. It also looks at the options of utilizing tools for effective Debt management.
Deliberate Practice (Agile Slovenia 2015)Peter Kofler
The document discusses deliberate practice as a way for software professionals to continuously improve. It proposes that traditional training methods are not enough and advocates for code katas, coding dojos, and code retreats where developers can practice specific skills in a low-pressure environment. These practices are presented as a way to overcome weaknesses in software engineering education and on-the-job training by providing structured, repetitive practice opportunities to develop expertise.
TDD - Seriously, try it - Codemotion (May '24)Nacho Cougil
Ever wondered about the wonders of Test-Driven Development (TDD)? Curious devs, this session is for you!
Get ready to dive into TDD and explore its benefits. We'll see the "secrets" behind TDD, its roots, and the rules surrounding it. But that's not all! We'll also uncover the ups and downs of TDD, plus we'll share some tips and tricks... including a live coding session in Java. Get ready to level up your development skills with TDD – more insights, more advantages, and more confidence in your coding adventures!
PS: Building tests before production code can sound more fun than it sounds 😉.
---
Presentation shared at Codemotion Madrid '24
Feedback form:
https://bit.ly/tdd-seriously-try-it-feedback
How HipChat Ships and Recovers Fast with DevOps PracticesAtlassian
HipChat operates a ‘You Build It, You Run It’ service model, where developers are responsible for building, testing, and operating their systems. While we have a high speed of development, things can break – but we also recover quickly. Learn about how we've integrated best practices within our planning, building, operating and learning processes to optimize for speed and efficiency but also mitigate, prepare for, and handle incidents.
The presenter will walk you through four steps for how to operate at a high speed of development and also prepare for any incident — planning, prevention, preparation and collecting feedback— and instruct you on how you can build these processes into your Atlasssian workflow (including JIRA Software, HipChat, Bitbucket, Confluence, Bamboo, and StatusPage).
Learn about:
- Planning: How we use JIRA Software and Confluence to plan roadmaps and sync up with teams
- Prevention: Best practices during code reviews and testing
- Preparation: How we prepare for incidents with war games
Review: Collecting feedback, assessing incident causes and improving our processes
Come out of this session with a newfound understanding of how to use Atlassian products within your DevOps workflow!
Mickie Betz, Software Developer, Atlassian
The document discusses code review tools and processes. It describes formal in-person code review meetings, challenges with scheduling and concentrating, and more efficient alternatives like email and web-based code review tools. It also covers motivations for code review like finding defects early and improving coding standards, and tips for effective code reviews like preparing, focusing on understanding rather than criticism, and keeping reviews short.
What (and why) Admins need to know about Unit Testing, Julio Fernandez & Dori...CzechDreamin
Sometimes, Salesforce changes can have side effects that are hard to predict. As a Salesforce Admin you need a range of detective skills to investigate confusing behaviour and cryptic error messages.
Does your Salesforce Org have a mixture of declarative and code-based customisation? If so, have you ever run the Unit Tests in your Org?
You have a very powerful tool to investigate and diagnose issues. That tool is Unit Testing, and it’s not only for Developers.
In this session you’ll learn what Unit Tests are, how to run them, and how to interpret their results to get you back on track.
The document discusses strategies for working with legacy code, which is code inherited from previous developers or older versions that often lacks tests and good documentation. It defines legacy code and outlines challenges like poor structure, dependencies, and lack of tests. It then provides approaches for modifying legacy code like identifying what to change and test, breaking dependencies, writing tests, and refactoring code in small, tested increments. Specific tactics are presented like using seams, sprouting methods, and interfaces to break dependencies and allow testing legacy code. The importance of understanding the system and increasing test coverage before making changes is emphasized.
This document provides an introduction to test driven development (TDD). It begins by clarifying that TDD is a design strategy, not just a testing strategy, and is intended for developers rather than testers. The core components of TDD - unit tests, functional tests, and integration tests - are explained. Benefits of TDD include less rework, regression testing due to refactoring, and faster development. Challenges include scaling TDD to larger projects and testing interfaces. The document concludes by emphasizing that code without tests is "broken by design."
Similar to How Google Said - Ninja Code Review With Gerrit (20)
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Project Management: The Role of Project Dashboards.pdfKarya Keeper
Project management is a crucial aspect of any organization, ensuring that projects are completed efficiently and effectively. One of the key tools used in project management is the project dashboard, which provides a comprehensive view of project progress and performance. In this article, we will explore the role of project dashboards in project management, highlighting their key features and benefits.
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...kalichargn70th171
In today's business landscape, digital integration is ubiquitous, demanding swift innovation as a necessity rather than a luxury. In a fiercely competitive market with heightened customer expectations, the timely launch of flawless digital products is crucial for both acquisition and retention—any delay risks ceding market share to competitors.
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Paul Brebner
Closing talk for the Performance Engineering track at Community Over Code EU (Bratislava, Slovakia, June 5 2024) https://eu.communityovercode.org/sessions/2024/why-apache-kafka-clusters-are-like-galaxies-and-other-cosmic-kafka-quandaries-explored/ Instaclustr (now part of NetApp) manages 100s of Apache Kafka clusters of many different sizes, for a variety of use cases and customers. For the last 7 years I’ve been focused outwardly on exploring Kafka application development challenges, but recently I decided to look inward and see what I could discover about the performance, scalability and resource characteristics of the Kafka clusters themselves. Using a suite of Performance Engineering techniques, I will reveal some surprising discoveries about cosmic Kafka mysteries in our data centres, related to: cluster sizes and distribution (using Zipf’s Law), horizontal vs. vertical scalability, and predicting Kafka performance using metrics, modelling and regression techniques. These insights are relevant to Kafka developers and operators.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...kalichargn70th171
In today's fiercely competitive mobile app market, the role of the QA team is pivotal for continuous improvement and sustained success. Effective testing strategies are essential to navigate the challenges confidently and precisely. Ensuring the perfection of mobile apps before they reach end-users requires thoughtful decisions in the testing plan.
Preparing Non - Technical Founders for Engaging a Tech AgencyISH Technologies
Preparing non-technical founders before engaging a tech agency is crucial for the success of their projects. It starts with clearly defining their vision and goals, conducting thorough market research, and gaining a basic understanding of relevant technologies. Setting realistic expectations and preparing a detailed project brief are essential steps. Founders should select a tech agency with a proven track record and establish clear communication channels. Additionally, addressing legal and contractual considerations and planning for post-launch support are vital to ensure a smooth and successful collaboration. This preparation empowers non-technical founders to effectively communicate their needs and work seamlessly with their chosen tech agency.Visit our site to get more details about this. Contact us today www.ishtechnologies.com.au
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
28. What is Stable build?
Changes do not have any bugs
They do not fail existing tests
They have good test coverage
CI jobs are green
Unit/Integration/System/End-
To-End tests passed
Existing functionality works
28
29. I wanna see everything in one
place
Feedback from teammates
Feedback from Team Lead
Feedback from Architect
Check that build is not broken
Check any type of tests
Feedback from Architect
New violations and errors
Any blocker issues
Any static analyse
29
36. Trunk Based Development
Everyone Develops in the trunk
Bug fixes too
No Code Freeze
No Merge Hell
Build never broken. It's always ready to
be released
36
42. Pull requests are not pure
pre-commit review
You can integrate it with
CI. Some have CI out of the
box
Pull requests do not
show Static Code
Analyse comments
Pull/Merge Requests
42
44. Who is Ninja?
Always ready to hear feedback
from others and make changes
Fixes build before it breaks
main branches builds
Removes all SonarQube
violations
Knows how GIT works
Ready to share knowledge and
help
Checks
Unit/Integration/System/End-
To-End/UI tests
44
45. What is Gerrit?
Created for Android
Development and now it's
in Google
And lots of other companies
45
50. Gerrit Roles Model
Group Label Range
Registered Users Code-Review -1..+1
Team Leads Code-Review -2..+1
Architects Code-Review -2..+2
Non-interactive
users
Code-Review -1..+1
“ For example, only Architects
can allow to make a merge
50
51. Patch Set
One code change, (be it a feature or
a bugfix, ) is one commit. Use
Ammend to update it.
git push gerrit
HEAD:refs/for/master
When it's
ready for
review
51