by Clark Newell
February 6th 2020
TLDR: Agile methodology not only allows for constant review of team productivity, it also allows for constant review of the product being developed. It’s best to find out early and often when something is not going to work, or could be done better/faster in a different way.
I am grateful for the experience of completing three internship cohorts at Red Pepper Software in Pleasant Grove, Utah. One of the great things about doing an internship at Red Pepper Software is that the intern cohorts read a book together. We begin every week with a discussion of the assigned chapters as well as any related motivational, self-improvement and management philosophies led by one of the executives of the sister company, John Keller from Red List.
During the first cohort we read a very awakening book, The Power of Habit by Charles Duhigg, where I personally got a lot of insight into what makes humans, in general, and myself in particular, tick. During the second cohort, we read Scrum: The Art of Doing Twice the Work in Half the Time by Jeff and JJ Sutherland. Scrum could be considered the “Bible” (or the Quran, or the Bhagavad Gita or the….you know what I mean) of software development. As such, this book is pretty much quintessential reading for developers.
What is scrum?
Software development used to be heavily reliant on the Gantt chart technique. Gantt is a chart with two axes, a horizontal timeline and vertical task bars. This method is also known as the Waterfall Method. With Gantt chart planning, everything is planned out in a linear fashion. A lot of time is spent on creating very detailed linear plans with little to no room for adjustments in course. Gantt charting is the opposite of scrum.
Scrum also includes planning, and the use of productivity tools, but there are also some major differences such as:
- Sprints: to-do tasks for the team are split up into shorter goal periods called sprints, which are usually one to two weeks long
- Daily Stand Up: this is when the team convenes daily for a short check-in. This is usually done standing, thus stand-up, in order to keep the meeting short. Each team member briefly reviews what they did yesterday, what they’re doing today and if they have any blockers to finishing their plans. If someone else on the team can help, a meeting for later is quickly arranged. Resources get re-allocated on the spot in order for the team to meet the sprint goals or cover any urgent tasks that come up such as immediate bug fixes
- Sprint Retrospective: Besides daily stand ups, another regular opportunity to review goals, productivity and team morale are sprint retrospectives. (Sprint planning often begins with a retrospective first.) On a regular basis, the team gets the opportunity to review what was done well and what could be done better and how
- Kanban Board: In scrum, the productivity tool used to track progress is the kanban board, which originates from the Japanese manufacturing industry. The kanban board is to be posted in a public place for the entire team to view at all times. The board has several lanes, usually To Do, In Progress, Review/QA, and Done. Originally tasks were moved from lane to lane on moveable cards or post-it notes. Each task aka ticket or card, is assigned to an owner so everyone knows who’s doing what and how it’s coming along. Nowadays, a software based kanban board is normally used such as Trello, Jira or Monday
- Backlog: Any tasks that don’t get assigned to the current sprint are stored in the back log. This is to keep priority on the tasks in the current sprint. It’s determined by the product owner/manager and/or scrum master when certain backlog tasks can wait. They are not forgotten but just filed away for another sprint
- Agile methodology is the biggest difference between Gantt/Waterfall and scrum. This is what sprint planning, sprint retrospective, daily stand-ups, kanban board, and back-log are for, to constantly review what is going well, what’s not going well, what can be done better. Agile methodology not only allows for constant review of team productivity, it also allows for constant review of the product being developed. It’s best to find out early and often when something is not going to work, or could be done better/faster in a different way. This is huge!!! This means major savings of time and money for the team and the client
- Obviously this is just a very brief overview, clearly entire books and training courses have been written and developed on the subject and almost every one in software development today has become very aware of these principles and are aware of their power.
“It wasn’t until years later at the Galvanize software bootcamp that I realized where I had gone wrong, and how it can be done much better. I am certainly a believer in agile/scrum now.”
Personal experience
Years ago, before embarking on a career in software development, I had no clue about scrum and agile methodology. While working as an admin. at the University of Utah, I was in charge of the development of several websites. The first time around, I wanted the website to really wow everyone. One day, I vividly remember being asked by a very irritated senior professor and department head why their website wasn’t finished yet and had missed the deadline by a few weeks. I resorted to showing them what I had done so far and they loved it! I immediately published what we had and continued improving it over time. It wasn’t until years later at the Galvanize software bootcamp that I realized where I had gone wrong, and how it can be done much better. I am certainly a believer in agile/scrum now.
Applying scrum to personal life
I have an old high-school friend who loves to impart life advice on me. Several years ago, I very distinctly remember him saying to me, “why do things in life have to be so linear for you? You always set up checklists, a series of hoops you need to jump through in a specific order.” While I never forgot this advice, at the time I was very annoyed by it, and definitely didn’t heed it. I was used to doing things in my life Gantt style (before even knowing the difference between Gantt and Kanban), and that’s the way it was going to stay for a while. Despite having learned about scrum and agile methodology at Galvanize, at my internship and from reading this book, it still had never dawned on me to apply this methodology to my personal life.
“What you’re suggesting for the management of my personal life and goals is the same methodology I have been learning to apply to software development!“
After moving back to the Salt Lake City area from Denver, I reconnected with this same friend and we discussed my life plans both career-wise and personal over coffee one day. Once again, this friend, years later, gave me the same advice. Once again, the advice was, why do things so linearly? Why not work on each aspect of your life a little bit every day? By the way, this also sounds a lot like Atomic Habits mentioned above, which I look forward to blogging about. It wasn’t until that moment, the light-bulb came on. “Wait a minute!” I said, what you’re suggesting for the management of my personal life and goals is the same methodology I have been learning to apply to software development!“ Once I had definitely learned the value of iterating over thin vertical slices of my software development projects, but what about applying this to life in general?
Then, I began to think about all the aspects and features that I would like myself or my life to have and for fun I call it ClarkApp-IRL (IRL means “in real life”). I made a list of all the parts of my life that are in the “ToDo” lane, what’s “In Progress”, what’s “In Review”, what’s “Done”, and what’s in the Backlog. Afterwards I used Trello (a free version of Jira from Atlassian) to set up a kanban board. In addition to organizing my life tasks into kanban lanes, I quickly review my progress daily and more in-depth on a weekly basis. Essentially, I’m conducting daily stand-up and weekly sprint retrospectives with my life goals. Often, goals and tasks need additional cards for newly discovered sub-tasks or they need a revised scope of work. When a goal is fully achieved it is moved to done. Whenever work load permits, new goals and tasks are moved from the backlog.
Before taking this approach, I used to make myself jump through hoops to get to certain rewards or on the next step. It was very much an “if-this-then-that” approach to living. Needless to say, this approach was always a failure. Saying things to yourself like you can’t get a gym membership until you have a new job, or you can’t have any carbs until you’ve lost 30 pounds, or you can’t go on dates until you’re back in shape is just setting yourself up for failure.
The third book that I read cover-to-cover with my cohort at Red Pepper Software was Atomic Habits by James Clear. To sum it up briefly, Clear’s approach to achieving success in life is to work a little bit on every aspect of your life every day. While this approach delays fast-track achievement of any one goal, I find it’s a much more sustainable and enjoyable approach to living.
“I was very excited to see Jeff Sutherland speak in person last week at the Silicon Slopes Summit 2020. It’s always great to see and hear people in person who have greatly influenced your life. It’s worth mentioning that the Silicon Slopes is literally the birthplace of the Agile Manifesto, conceived at a ski lodge in Alta, Utah.”
By applying Sutherland’s agile approach to software development and Clear’s approach to achieving life goals, you can outline your high-level goals, break them into smaller pieces and work all those smaller pieces every day. When one sub-task of a high-level goal is achieved, move another one from the backlog. Eventually, you will have achieved one or more of your high level goals, but not at the total expense of the others. At the end of the day, the product of you will be a more well-rounded individual. This is what I want for ClarkApp-IRL, is to be the total package.
Finally, I was very excited to see Jeff Sutherland speak in person last week at the Silicon Slopes Summit 2020. It’s always great to see and hear people in person who have greatly influenced your life. It’s worth mentioning that the Silicon Slopes is literally the birthplace of the Agile Manifesto, conceived at a ski lodge in Alta, Utah. The biggest takeaways from his talk last week were 1) Scrum is so easy, but it’s so hard to get people to do it (and it shouldn’t be), and 2) Any currently leading company that is not applying scrum will not be a leader in 5 years. The latter is a very serious prediction, but Jeff really believes what he has created and teaches. From personal experience, I believe in it very strongly myself.