Skip to main content

Sound bites from 'The Phoenix Project' novel


The Phoenix Project is such a riveting story. Being a software developer, it resonated so well with me. Even if you are not a software developer, there is something to be learned from this book. This book shows how important it is to be honest, have integrity, faith, encourage risks and continuously improve in small but meaningful steps. The principles learned from this book can be applied to any industry, process, organization and even relationships. 



I have a few quotes when I was done reading the book.


Automation creed
    If it can be done once, it can be automated for future occurrences. 

    If it needs to be done more than once, it must be automated.

    People before process. 

    Feeling of being in control is an illusion. Let go of that feeling and breathe because you can still succeed when you succeed as a team.



    Four types of work
    1. Business projects
    • Business initiatives
    • Typically tracked by the project management office

    1. Internal IT Projects
    • Infrastructure and IT operations projects
    • Projects required to support the business projects
    • Internally generated improvement projects

    1. Changes
    • Generated by business projects and internal IT projects.
    • Track both business and IT project changes in the same ticketing system

    1. Unplanned work and recovery work
    • Operational incidents
    • Caused by business projects, internal IT projects and changes
    • Always at the expense of other planned work commitments
    • Track them and automate to prevent them

    Wait time formula
    wait time = (% busy) / (% idle)

    The three ways explained
    1. First way
    • Work flows from left to right from development to IT operations to market
    • Maximize flow
      • Small batch sizes of work
      • Small intervals of work
      • Never pass defects to downstream work centers
      • Continually optimize for global goals of the business organization
    • Necessary practices
      • Continuous build, integration and deployment
      • Create environments on demand using the same process to create all environments
      • Limit work in process (WIP)
      • Build systems and organizations that are safe to change by keeping both agile and nimble

    1. Second way
    • Constant flow of feedback from right to left at all stages of the value stream
    • Prevent problems from happening again. By doing this we create  quality at source.
    • Create and embed knowledge where needed
    • Necessary practices
      • Stop the production pipeline when builds and tests fail in the deployment pipeline.
      • Continually elevate the ‘improvement of daily work’ over 'daily work’.
      • Create fast automated test suites to ensure code is always in a deployable state.
      • Create shared goals and shared pain between development and IT organizations.
      • Monitoring to ensure code and environments are operating as designed and customer goals are being met.
    1. Third way
    • Culture that encourages continual experimentation
    • Encourage taking risks 
    • Share an understanding that repetition and practice is the key factor for perfection.
    • Necessary practices
      • Creating a culture of innovation, risk taking and high trust.
      • Allocating at least 20% of dev and IT on non-functional requirements
      • Continual reinforcement that improvements are encouraged and celebrated.

    Identify and focus on
    1. Constraints
    2. Materials
    3. Resources

    Popular posts from this blog

    A @trello board to get kids excited

    My 8 year old just started his summer break. He did so well in school and I am proud of him. He skipped second grade, got into the gold honor roll in every quarter and got a medal for doing that. Last night, I promised to install a new app for him on his iPad mini. I installed Trello and created a board for him while he watched. I showed him how to create cards, add labels to them and move them from To Do, to Doing to Done. I had him create some cards and label them. He could not stop creating cards. I could not convince him to go to bed after that. He created cards for everything he wants to do in the summer and he is not done with creating cards. He even created a card to email a screenshot of his Trello board to his teacher.

    Later last night, he was still awake in bed when I checked on him. He told me that he wanted to add three more labels - Math, Science and One-on-One. He wanted a label titled 'One-on-one' for tasks that he wants to do with me and he wants one-on-one att…

    #Git starter cheat sheet

    Initialize a local repo Run the following command in the folder where you would like to initialize a git repo.
    git init
    Get status It is a good practice to frequently run check on status during development. The following command points out the changes between the previous commit and current state of the folder.
    git status
    Add content To add an untracked file named ‘text.txt’ to the staging area, execute the following command.
    git add text.txt
    Syntax: git add <filename>
    Commit changes To commit changes made to the folder, execute the following command. The message will be used as a commit message to associate this check-in with the message.
    git commit –m “Add text.txt to the code base.”
    Syntax: git commit –m “<Commit message>”
    Add using wild card To add multiple files using a wild card character, execute the following command.
    git add ‘*.txt’
    Syntax: git add ‘<wildcard_character+string>’
    Check history Review commit history using the following command.
    git log
    Add Remote re…

    @Docker cheat sheet

    Installing Docker Installing Docker on Ubuntu sudo apt-get update sudo apt-get install –y docker.io sudo service docker status docker -v docker version sudo service docker start sudo docker info
    Installing Docker on CentOs yum install -y docker systemctl status docker.service systemctl start docker.service
    Updating Docker Add docker repo key to the local apt keychain wget =q0- https://get.docker.com/gpg | apt-key add -
    Add docker repo to apt sources echo deb http://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list apt-get update apt-get install lxc-docker
    Basic docker configuration Viewing Docker socket ls -l /run
    Add user to docker group sudo gpasswd -a vagrant docker cat /etc/group
    Configure docker deamon on a Ubuntu host to listen on a network port netstat -tlp service docker stop docker -H 192.168.56.50:2375 -d & netstat -tlp
    Connect to docker Ubuntu host from centOs machine Set env variable export DOCKER_HOST=”tcp://192.168.56.50:2375”
    Configure …