Create software products in short cycles with confidence. Learn Agile software development practices used at Twitter, Google, Facebook, Salesforce, Spotify, Tesla and a host of other top companies to build software with high quality at high speed.
Agile Developer Engineering Skills Workshop in Java, C++, or C#
Learn Techniques for Creating Code That is Clean, Testable, Flexible and Effective.
Being an Agile Developer means you are knowledgeable about Agile developer practices. You build software using proven Agile practices and know how these practices give you a competitive edge. In this course you will learn to deliver quality software products using fast cycles and Agile techniques.
Agile Developer Engineering Skills training by Innovel will provide you with hands on learning of the principles and practices that underlie agile development. Using JAVA, C++ or C# and effective tooling we’ll cover topics through a combination of lecture, exercises and the creation of working tested software.
Attendees will learn Agile skills and practices including agile architecture and design, continuous integration, refactoring, pair programming, continuous deployment and test driven development (TDD). We’ll also cover recommended tools that can ease adoption of these practices.
By course’s end, attendees will both learn and “feel” what it is like to work as part of a team using Agile Developer skills and practices. The Agile Developer Engineering Skills Workshop is offered in either the JAVA, C# .NET or C++ technologies.
This course fulfills the 3 day technical track for the Certified Scrum Developer (CSD) certification. Students require an additional 2 days of Scrum training to complete the CSD certification requirements.
Test Driven Development
The course centers on TDD, which challenges students with a radical shift in development approach and as such the class has significant hands-on practice. Students will collaborate to develop new code using TDD; they will also interact with a small typical codebase. The core theme is on sustaining systems through continual refactoring of both tests and production code. To support the core theme, students will learn agile architecture and design concepts throughout the class. They will also learn how a focus on continuous integration and delivery helps foster a culture of quality.
- Students must be able to write JAVA, C++ or C# code.
- Students should have an understanding of fundamental object-oriented programming concepts.
- Students must have a working development environment installed that supports building and running tests for the provided source base, which was built and vetted using Standard JVM (1.6-1.7) and Eclipse or Visual Studio.
- Students will be provided with the source base and setup instructions a week prior to the start of the course. By the outset of class, students must have successfully followed the setup instructions on the machine they bring to the class, which will require successful building of an Eclipse or Visual Studio solution, as well as successful execution of unit tests delivered with the source.
We guarantee our Agile Developer Skills workshop will be an engaging experience that will give you the knowledge and confidence to start implementing TDD, CI, Refactoring and other practices on your code base tomorrow.
The primary focus of the course is on hands-on programming. Students complete exercises working with a pair; pairs rotate throughout the duration of the course. Mechanisms and mentalities for pairing are briefly explained at the outset of the course. Students continue to learn about the benefits, costs, and nuances of successful pairing throughout the course.
For many of the programming topics, the instructor first demonstrates the technique. Students then pair to complete a similar exercise. The instructor moves through the pairs to aid students during their exercises. The instructor then discusses and demonstrates as appropriate the solution with the whole classroom.
Morning Session: 9am—12 noon
(15-minute break at 10:30am)
Lunch: 12 noon—1pm
Afternoon Session: 1pm—4:30pm
(15-minute break at 2:15pm)
Day 1 Topics
Course Overview and Introductions
The Agile Challenge: The Cost of Change Curve
Collaborative Work Environment / Whole Team
Pairing Mechanics and Guidelines
Paired Exercise 1: Building to Incremental Tests
TDD Themes for Success
Google Test Details
Paired Exercise 2: Incremental Test-Driving Using a Spec
TDD Benefits; TDD vs Test-After Development
Group Exercise: Where Do I Start?
Solicitation of Concerns
Day 2 Topics
Discussion of Concerns That Demand Immediate Attention
Paired Exercise 3: Programming Kata
Continuous Integration / Continuous Delivery
Paired Exercise 4: Cleaning Test Smells
The Agile Approach to Software Design and Testing
Paired Exercise 5: Extract Method
Feature Envy / Move Method
Adding Tests as Documentation
Paired Exercise 6: More Refactoring
Guidelines for Refactoring / Refactoring Drivers
Day 3 Topics
Paired Exercise 7: Hand-Crafting a Test Double
Paired Exercise 8: Using Test Double Tools
London and Pragmatic Schools
Costs of Using Test Doubles
Architecture and Design
Domain Driven Design
Agile Design Concepts
Group Exercise: Designing a New Feature
Sustaining Agile Development
Discussion of Any Outstanding Concerns