LeanDog

In partnership with LeanDog, a renowned software consultancy known for its commitment to advancing software development practices, I developed and instructed three custom courses focusing on Test Driven Development (TDD) and Artificial Intelligence (AI) integration in software engineering. These courses were designed to equip teams with the skills and knowledge necessary to achieve higher code quality, improve efficiency, and foster a culture of continuous improvement.

LeanDog's innovative approach to software development aligns perfectly with Dev3loper.ai's mission to leverage cutting-edge technologies to drive transformative change. Together, we aimed to empower developers with practical techniques and best practices that enhance their development workflows and deliver exceptional software solutions.

The courses covered various tools and methodologies, including ATDD, TDD in C#, and AI tools like GitHub Copilot and ChatGPT in intelligent engineering. Each course was tailored to address the specific needs of the participants, providing hands-on experience and actionable insights to help them integrate these practices into their daily work.

Custom Courses Instructed with LeanDog

Intelligent Engineering with AI

Course Overview

This course introduced AI tools like GitHub Copilot and ChatGPT, emphasizing their role in software development. We focused on TDD principles, using katas such as FizzBuzz, Duration Converter, Bowling Kata, and Roman Numeral Calculator, following the Red, Green, Refactor cycle to iteratively improve code quality.

Key Topics

  • TDD principles and practices
  • AI tools for software development
  • Software craftsmanship principles: SOLID, ZOMBIES, DRY, YAGNI, Extreme Programming
  • Refactoring techniques
  • Design patterns: Singleton, Factory, Strategy, Observer, Decorator, Command

Course Structure

Practical exercises included implementing the Gilded Rose Kata using TDD and AI tools. We discussed identifying and addressing standard code smells and enhancing code readability, maintainability, and performance. Prompt engineering was taught to craft effective prompts for AI tools, improving productivity and accuracy.

Participants implemented a task API application, added a 'Priority' field, and ordered tasks by priority and due date. Continuous integration was set up using GitHub Actions, automating building, testing, and deploying the project. CI/CD benefits were highlighted, such as rapid feedback and increased productivity.

According to Kent Beck, we explored emergent design and simple design principles, fostering maintainable code. The 10-Minute Rule for CI builds ensured rapid feedback, and we tackled legacy code using TDD to improve and maintain it effectively.

Instruction Date

  • June 19-20, 2024 (Instructed Virtually, Co-Instructor: Julias Shaw)

ATDD-TDD-TypeScript

Course Overview

In this workshop on Acceptance Test-Driven Development (ATDD) and Test-Driven Development (TDD) with TypeScript, I covered the essentials of both methodologies. This hands-on course aimed to enhance participants' ability to automate web tests using cucumber.js and TypeScript while fostering a deeper understanding of using scenarios for shared experience and effective test organization.

Key Topics

  • Leveraging scenarios for shared understanding
  • Automating acceptance tests with cucumber.js and TypeScript
  • Organizing tests effectively

Course Structure

The course began with discussions on current release processes and provided an overview of ATDD. Participants engaged in practical exercises using Gherkin syntax to create acceptance criteria and automate tests with TypeScript. The TDD section covered writing tests first, using the Red, Green, and Refactor patterns. Topics included using mocks and stubs, refactoring code for testability, and applying TDD in Angular.

Participants worked through scenarios like viewing puppy details and adopting puppies using automated tests, learning to handle different suites, and managing test data. Exercises involved creating automated tests for web applications, managing data tables, and handling scenario outlines. The workshop emphasized the importance of automation in development and provided tools and techniques for integrating ATDD and TDD into workflows.

Instruction Date

  • September 2021 (Instructed Virtually)

TDD in C#

Course Overview

In this two-day TDD in C# workshop, I covered the essentials of Test Driven Development, starting with basic exercises and progressing to advanced techniques for building testable applications, reducing the need for stubs and mocks, and addressing issues in legacy code.

Key Topics

  • Extreme Programming (XP), SOLID, DRY, YAGNI, ZOMBIES principles
  • Clean Code and Software Craftsmanship
  • The Red, Green, Refactor loop
  • Using Mocks, Stubs, Fakes, Doubles
  • TDD in C#

Course Structure

Introductions established a collaborative learning environment, discussing TDD benefits like better design and minimized defects. Using the ZOMBIES approach, participants practiced writing tests first, starting with katas like FizzBuzz and Roman Calculator. We delved into SOLID principles, DRY, YAGNI, and the importance of avoiding overdesign.

We covered refactoring techniques, including Rename, Inline, Extract Method, and Incremental Change. We also addressed handling slow tests, testing private behavior, challenges with legacy code, teaching techniques to introduce unit tests to legacy systems, and breaking dependencies. Participants summarized TDD's value, integrated it into daily work, and recognized the benefits of clean, maintainable code.

Instruction Date

  • January 2022 (Instructed Virtually)

Conclusion

Collaborating with LeanDog to instruct these custom courses has been an enriching experience. We have empowered numerous developers to adopt the best software testing and development practices through the workshops on ATDD and TDD with TypeScript, TDD in C#, and Intelligent Engineering with AI. These courses enhanced participants' technical skills and fostered a deeper understanding of integrating AI tools and Extreme Programming principles into their daily workflows.

The success of these courses underscores the alignment between LeanDog's commitment to advancing software development practices and Dev3loper.ai's mission to leverage cutting-edge technologies for transformative change. By providing developers with practical techniques and hands-on experience, we have equipped them to deliver higher-quality software, improve efficiency, and cultivate a culture of continuous improvement.

This collaboration highlights the power of tailored, immersive training to drive meaningful improvements in software development processes. We look forward to continuing our work with LeanDog and other partners to elevate the standards of the software development industry further.


Get In Touch

We'd love to hear from you! Whether you have a question about our services, need a consultation, or just want to connect, our team is here to help. Reach out to us through the form, or contact us directly via social media.


Previous
Previous

Bank of New York Mellon

Next
Next

Ticketmaster