About the Book
Many leaders of software and technology companies today look at their organizations as a collection of departments bound together by a set of corporate, department and individual goals believing that, along with the organizational structure and cost accounting methodology, they are leading a focused, high-throughput organization. While we expect software, hardware, network and performance engineers to look at system level architecture and solutions, software and technology company leaders often behave as component thinkers and fail to recognize the need to balance system load, that which is on the company as whole, in order to maximize throughput, and as a by-product, revenue. While many technologists may seek to practice iterative, predictable, repeatable and disciplined system level behaviors, these same leaders do not realize or understand how their component level viewpoints and decisions actually degrade organizational performance.
This book discusses the immediately tangible operational value of using General Systems Thinking, Agile Principles and the Theory of Constraints as a synthesized platform from which to run a well-honed, profitable software and technology company. What we all need to know to run a company is not contained in one graduate degree, one book or built upon the successes of yesterday. Rather, what we really need to know in order to run a profitable, healthy and flourishing software and technology company is contained in our ability to synthesize multiple bodies of knowledge into foundational set of operational principles and behaviors that not only keep leaders employed, but keep companies profitable.
Table of Contents
-
Purpose and Construct of This Book
-
Arriving at a Common Understanding
- The Characteristics of People
- The Role of Transparency in Leadership
- The Definition of a System
- What is General Systems Thinking?
- Garden System Example
- System Scaffolding Example
- Extrapolating Patterns and Principles from Unlike Systems
- What is the Theory of Constraints?
- What is Agile?
- User Stories
- User Story Sizing and Estimation
- Test Driven Development
- Extreme Programming
- Scrum
- Continuous Integration, Test, Inspection and Deployment
-
An Agile Implementation Story
- Where the company was at the beginning
- Where the company wanted to go in three years
- How the company was transitioned from A to B
- What went well
- What did not work
- What Should Have Been Done Differently
-
An Operational Model for Software Companies
- See the Company as a System
- Organizational Structure and Focused Flow
- Establish the Skeletal System
- Vision and Mission Statements
- System-Level Objective Setting
- Traceability in the Delivery Chain
- Release Planning
- Establish the Heartbeat
- Behavioral Patterns
- Reporting Patterns
- Balance the Flow of the Circulatory System
- Perform Regular Check-ups
- Daily-Standups
- Pairing and Pair Switching
- Continuous Evolution Behaviors
- Demonstration
- Pro-actively Maintain and Improve System Health
- Iteration-level Lessons Learned Meetings
- Feedback and Rework Loops
- Training and Mentoring
-
Final Notes
-
Recommended Reading List