Essential Agile Developer Capabilities
An immersive, intensive course (length varies depending on desired outcomes) providing hands-on training in the most powerful and popular Agile engineering capabilities (aka Scrum Developer Practices or Extreme Programming practices), and the synergy gained by combining them.
Capabilities covered include Test-Driven Development, Refactoring, Continuous Integration, Collective Code Stewardship, Pair Programming, Incremental Design, and others (depending on time and participant interest).
This course contains guided, immersive labs based on many years of actual Agile production software development.
Your choice of programming languages: C++, C#, Java, JavaScript, Python, Ruby, VisualBasic.Net.
Options
Scrum:
We start with a review of Scrum basics, then operate the rest of the course in very short sprints, so participants will get a feel for what software development on a smoothly-running Scrum team is like.
If the client is interested, this course can be delivered as a Scrum Alliance Certified Scrum Developer® or Advanced Certified Scrum Developer® class:
2-day CSD-only option: Delivers the CSD learning objectives with a Scrum simulation, and hands-on coding labs whenever possible.
2-day A-CSD option: This option can be delivered only when all participants have already obtained their Scrum Alliance CSD.
3-day A-CSD option: For teams who have been using Scrum alongside a qualified coach, or CSM and CSPO, for 6 months.
4-day A-CSD option: The full CSD and A-CSD programs back-to-back.
Those who successfully complete one of the A-CSD options—and are able to document a total of 12 months of work on a Scrum team—are eligible to receive Scrum Alliance’s Advanced Certified Scrum Developer® (A-CSD) certification.
Kanban:
We start with a review of Kanban basics, and operate most of the course within a Kanban framework, so participants will get a feel for what software development in a smoothly-running Kanban environment is like.
Frameworks/APIs:
Typically the course is delivered in a way that is generalized for any software development environment. The course can be taught in multiple programming languages at the same time, as long as developer preferences are known well in advance.
The course can also be oriented towards the following technologies:
Amazon Web Services (AWS): Labs will be oriented towards AWS Serverless Application Model (SAM) and ways to develop your Lambda functions test-first.
Test-first with React.js or Angular: JavaScript or TypeScript only.
Objectives
The hands-on application of a variety of capabilities; and an understanding of how they improve team communication, product quality, and maintainability. Including:
Refactoring
Continuous Integration
Test-Driven Development
Pair Programming
Others, depending on attendee interests, including complementary practices such as Continuous Delivery, Behavior Driven Development (BDD), and Ensemble (nee Mob) Programming.
A clear understanding of why our industry needs professional development & software engineering practices.
A clear understanding of why these particular practices are well-suited for Agile frameworks such as Scrum & Kanban.
Techniques for teams and individuals to realistically stick to these practices in a disciplined way.
Learn more about these skills here: Frequently Asked Questions about Agile Developer Skills
Audience
Software developers, test engineers, lead programmers, and architects. Participants will split into teams of 4-6 people to work on a queue of product requests (Scrum’s product “backlog”). For all but the 2-day CSD, each participant will be working closely with others to craft real code.
Prerequisites
[Except 2-day CSD] The ability to read and understand the basics of one of the selected programming languages.
Familiarity with an Agile framework such as Scrum, XP, or Kanban.
Testimonials
“The stories from his experience helped me understand the purpose of the practices.”
“I thoroughly enjoyed the CSD and A-CSD course that Rob taught. His teaching style is naturally engaging, and you just want to participate and soak up as much knowledge as possible. All our questions were answered even if at the time we did not think they were. We did have one question during the class that at the end we felt wasn't really addressed. After we got back home, I realized he did answer the question. It was really the first thing we did in the class. …All in all, I am grateful for the opportunity to learn from him.“ — Sarah Crow, Global Shop Solutions
“Engaging, fun, and informative.”
“At the end of the class, we all wanted to do pair programming and TDD. Go figure.”
“As a junior developer, the topics covered in this course have helped me gain perspective on strategies for being an effective team member. I’m realizing flaws in my coding practices as recently as last week!” — T. Baitnott
“Rob was very knowledgeable and shared his experiences with the class. The exercises were very helpful and kept the class engaged.”
“Rob is patient and knowledgeable! Excellent [instructor]!!!”
“The class taught me a lot and learning the content was fun. It’s a great way to learn. [Rob] is great and made it easy.” — A. Quroshi
“[This] was a valuable and interesting course. I am glad I was given this opportunity to attend the training. It’s worth taking! Thanks so much Rob!”
“The discussions of critical Agile concepts like pairing, Test Driven Development, and Refactoring were very valuable and informative.”
“‘Test’ is no longer a four-letter word!” — Tim Ashton
“…refreshing and encouraging.”
“Thank you for an incredible course! I learned a lot and will recommend this course to many people.”
“Thank you for the excellent learning experience!”