How do TDD, Mob Programming, Work on Trunk and other practices contribute to an effective software product delivery process?
We’ll start from the goals of software product delivery, and walk back from there, deriving some first principles. We’ll touch on teams, incentives, practices, management, roles, leadership, architecture, quality, and more!
We’ll finish with a conversation about how to test and build (in that order!) a micro-service, with an example.
Areas we’ll discuss:
Systems Thinking
Definition of a system
Examples of systems in software product delivery
Why system thinking matters
Effectiveness and efficiency
Quality and speed
Management
Leader vs manager
Management work
People
Decentralizing decisions: autonomy + alignment
Autonomy, mastery, purpose, fun
The reciprocity principle
Psychological safety
Teams
What is a team (harder than you think!)
What does teamwork mean, and why it matters
Leadership within a team
Cross-functional vs functional
Domain-focused vs feature teams
Processes
Interviewing
Performance management
Firing
Incentives
Practices
Feedback loops and cost of delay
Work in progress and cost of inventory
Ensemble Programming
TDD
Trunk-based Development
Continuous Integration
Continuous Delivery/Deployment
Domain Driven Design
Architecture
Hexagonal Architecture
Event-driven Architecture
Service Choreography
CQRS
Deep Dive: How to test (and build) a micro-service
Goals and limitations of automated testing
Contract testing vs unit tests
System tests
Example tests
“Integration tests”
ABOUT MICHELE SOLLECITO
Michele is a software product delivery executive and advisor with a broad range of experience across various industries and companies.
These days Michele spends most of his time designing teams and departments, including hiring, incentives, ways of working, performance management, compensation, but he still writes code almost daily, including parts on the critical path, typically in Kotlin. He leads company transformations from the front, through hands-on work, coaching, and re-organizations.
Michele’s main interests include System Thinking, event-driven architectures, service choreography, CQRS, event sourcing, Test Driven Development, Domain Driven Design, Continuous Integration, Continuous Delivery/Deployment, Ensemble/Mob Programming, Domain Driven Design, Hexagonal Architecture.
LinkedIn: / michelesollecito
Twitter: / sollecitom
GitHub: https://github.com/sollecitom
TECH EXCELLENCE
Subscribe to our YouTube channel / @techexcellence
Join our Meetup Group https://www.meetup.com/techexcellence
Follow us on LinkedIn / techexcellenceio
Follow us on Twitter / techexcellence_
Join our Discord Community / discord
#tdd #agile #softwareengineering