IL Academy

IL Academy

The Industrial Logic Academy is a 12-week, full immersion program that transforms high-potential programmers into versatile, agile engineers, who can work in fast-paced teams and produce better software sooner.

The program involves intensive study, solo- and group-programming, challenging exercises, lectures and guidance by professional software coaches/instructors. Participants focus their time on acquiring the skills defined for that week. Instructors make sure that each participant is able to demonstrate mastery of each skill. The program builds on foundational software craftsmanship concepts, gets into more advanced techniques, and includes work on real projects.


Workshop Editions

One lead instructor shepherds each IL Academy cohort through the 12-week intensive program, which is customized to match your tech stack and tools. The lead instructor coordinates the agenda and brings in additional instructors and resources as needed to reach the program and individual's learning goals.

The technical instructors who lead the IL Academy have many years of experience building software in complex domains, on many operating systems, using old and new technologies, frameworks, and tools. They are also excellent communicators, who understand that software development is primarily a people-centric activity.
  • Essential Teamwork Prerequisites
  • Microhabits and Kaizen
  • Experiencing Retrospectives
  • Configuring Your Coding Environment
  • Know Your Stack
  • Own Your Tools
  • Prudent Use of Version Control
  • Continuous Integration
  • Continuous Deployment Basics
  • Coupling
  • Cohesion
  • The Four Rules of Simple Design
  • Good Object-Oriented Design
  • Code Quality VS. Code Smells
  • Introduction to Refactoring
  • Working Safely and Reliably
  • Coding Collaboration Practices
  • Introduction to Evolutionary Design
  • Refactoring
  • Design Heuristics
  • Microtesting
  • Walking Skeletons
  • Test-Driven Development (TDD)
  • Advanced TDD
  • Introduction to Design Patterns
  • Refactoring to Patterns
  • Design Alternatives to Test Doubles
  • Faking with Test Doubles
  • Mocking with Advanced Test Doubles
  • Standard Legacy Code Steps
  • Legacy Code Strategies
  • Minimum Viable Product
  • Informal Specification
  • Role-Action-Context
  • Squeeze vs Slice
  • To Make A Long Story Short - Slicing Methods
  • Storymapping & Release Planning
  • Introduction to Behavior-Driven Development (BDD)
  • Specifying Scenarios Safely
  • Automating Scenarios Safely
  • Integrating BDD with TDD
  • Understanding Self Organization
  • Customer Delight : Building the Right Thing
  • Chartering
  • Chartering Our Real-World Work
  • Establishing & Testing Our Deployment Pipeline
  • Our First Push
  • Daily Demos
  • Measuring Usage
  • Collecting User Feedback
  • Incorporating Feedback
  • Project Work
  • Daily Demos
  • Introduction to Psychological Safety
  • Kind Candor
  • Operating from Curiosity
  • Behavioral Anti-Patterns
  • Dealing with Resistance
  • Lean Principles & Practices
  • Modern Agile's Guiding Principles
  • Continuous Learning
  • Professionalism
  • Graduation!

What Will You Learn?

outcome

Extreme Programming skills: testing, refactoring, and Test-Driven-Development

outcome

Teamwork: how to help others apply habits and skills to engender technical excellence.

outcome

Incrementally transform complex code into simple, readable, well-tested code.

outcome

Technical Safety: create and apply mechanisms that keep an error from creating a crisis.

outcome

Psychological safety: recognize gaps, recover from conflict, and repair trust.

outcome

Continuous Learning: ways to weave learning new skills and new techniques into the fabric of daily work.

Target Audience

The program is best suited for programmers who already have basic programming skills and are willing to immerse themselves in learning advanced development techniques.

Industrial Logic coaches guide developers to learn, practice and apply skills such as Object-Oriented Programming, Code Smells, Refactoring, Microtesting, Test-Driven Development, Faking & Mocking and Continuous Integration, as well as Mobbing and Pairing, how to be an excellent team player, how to lead retrospectives, how to give and receive feedback, and much more.

Following successful completion of the program, graduates join teams that are already practicing agile software development. This is critical for their growth because if they join traditional projects, they will not continue to develop essential agile software development skills. The projects that graduates join should be led by seasoned software development coaches, and include practices like mob- or pair-programming, continuous integration, test-driven development, refactoring and similar agile software engineering skills.

Instructors