Featured

Understanding More about Learning

For the past month, I have been working on my coursera course entitled, “Learning How to Learn: Powerful mental tools to help”. To those of you who do not know me, I am Yza from the Philippines (you can call me wy-za) and I am a working professional with more than 6 years experience on product development, particularly for Product Management. Lately, I am really interested with programming and I want to learn more about web development and game development.

With this in mind, I enrolled in the course and true enough, there are a lot of ideas that debunked some myth on study strategies, as well as solidify some techniques that I have been doing already when I was still a student in the university.

So what about the course? Learning How to Learn is based on the book A Mind for Numbers: How to Excel in Math and Science (Even if You Flunked Algebra) by Barbara Oakley, Penguin, 2014. It is divided into 4 weeks where you will work on each week for approximately 2-4 hours a day. This is one of the courses I enjoyed learning in Coursera.

So let’s start with everything I have learned:

Learning is an active phenomenon that involves newly formed synapses in the brain attributed to thinking. These newly formed synapses are influenced by a variety of factors such as the memory, sleep and emotions.

For researchers, they have found that as humans, we have two different modes of thinking. The focused mode and the diffused mode.

In the focused mode, our brain is concentrating intently on one thing that we are trying to learn or understand. If we compare this mode as a pinball game, the focused mode is where the ball goes through the rubber bumpers in a path that tightly close to each other. When the ball (thought) goes through the familiar thought pattern (orange), it bumps immediately; thus, easily getting and understanding the idea we are trying to learn.

Screenshot from the video: Introduction to Focused and Diffuse Modes in Coursera course

How about the diffuse mode? For this particular mode, it is like the relaxed state of our mind where our thoughts are working in the background to create new thought pattern and new approaches to a problem we are working on. Let’s go back to the pinball game. In the pinball game, when the ball (thought) is moving around where the rubber bumpers are widely spread out, the ball is able to go through spaces never before reviewed, to which it can touch never before learned ideas or thought patterns. This mode is usually when our thinking bulb lights up, and new approaches can solve problems we are trying to identify.

Screenshot from the video: Introduction to Focused and Diffuse Modes in Coursera course

The difference between the two? The focused mode is usually happening when we are trying to learn heavy concepts where the resources and problems are already provided. Since we are reviewing these new ideas and we want a familiar thought pattern to be established in our brain, we go into this mode and try to concentrate to easily identify and learn these new concepts. Whereas the diffuse mode is happening when we are normally in our relaxed state and our subconscious mind is doing the hard work on the background, giving new ideas and new thought patterns.

Chunking, Recall and Illusions of Competence

In learning, there is a concept called chunk. According to Barbara Oakley, chunks are pieces of information, neuroscientifically speaking, bound together through meaning or use. Chunking is the process of binding these pieces of information though meaning. Much like a puzzle, the chunks are the pieces of puzzle you put together, and chunking is the process of connecting these pieces together to create one big picture.

To form a chunk in learning, we need to have a focused attention when trying to learn, understand the pattern of the ideas and the connection in each pattern of idea, and lastly, practice again and again to gain context of the whole concept.

Screenshot from the video: What is a Chunk, from the Coursera course Learning How to Learn

Since we now have an idea about chunking, how do we keep our learning on track? We have to consider the importance of recall and illusions of competence in learning. Based on Jeffrey Karpicke’s research entitled, “Retrieval Practice Produces More Learning than Elaborative Studying with Concept Mapping” published in the Journal Science, when trying to learn, simply looking away from the material and recall what has been read is much more effective than just rereading the materials. His conclusion after observing students study a scientific text is that in the same amount of time, by simply practicing and recalling the material (or draw concept maps to recall the material), the students are able to learn at much deeper level. This retrieval process during learning allows our brain to begin forming chunks, and in a way, create a foundation for the concepts that we are trying to learn.

So as Barbara Oakley emphasizes, recall, which is the mental retrieval of key ideas, is more focused and effective when learning. However, other approaches in learning like merely glancing at a solution or rereading it are some of the common illusions of competence in learning. Also, just merely highlighting the sentences does not really help in learning and is also considered another illusion of competence in learning. Instead, we can test ourselves if we learned the material by recalling key ideas, and instead of highlighting mindlessly, we highlight only those main ideas very carefully and adding words or notes on the margin or on our notebook to help us fully grasp the ideas.

Procrastination and How to Overcome It

Now that we have learned about the basic concepts in learning, it is no doubt that when we are trying to learn something, especially in in-person or online classes, there will be times when we will try to set aside those tasks we are not comfortable with, only to catch up once the deadlines are near. This is called procrastination and once it becomes a habit, its long-term effects is bad for our future as it shares features with addiction.

See the source image
from https://sinaealice.wordpress.com/page/4/ under Creative Commons

So, how to avoid procrastination? Barbara Oakley presented some techniques to avoid and overcome the temptation to procrastinate:

  1. Do the Pomodoro technique — this is setting aside 25 minutes of our time with uninterrupted focus to do the tasks we need to do and learn the concepts we need to learn, followed by a bit of relaxation.
  2. Realize that it is perfectly normal to have a few negative feelings when beginning a learning session. What is important is to just get on with it and eventually, we will feel better about it.
  3. Focus on the process instead of the product. Process is the flow of time and the habits and actions associated with it. Product is the outcome. For example, I need to finish a project. Instead of focusing on the outcome, which is the project, which can take a lot of time and energy and the negative feelings associated with it, it is better to focus on how long we are going to achieve the outcome, like spending 30 minutes each day to work on the project. One way to focus on the process is by doing the pomodoro.
  4. Recognize the cues that launches us into procrastination and change them. This could mean shutting our cellphone or keeping ourselves away from social media if it distracts us from focusing on our learning session.
  5. Develop a new ritual for your learning session. For me, I learn easily with an acoustic instrumental background music while learning new ideas. So I purchased a headset to drown out the noise, go on Spotify and focus. I also easily recall ideas if I write these in my notebook. For you, it may be a different scenario but the point is, what makes you easily learn, you set aside time and do it every time you are on your focused mode and trying to learn.
  6. Space out your learning sessions. This is called spaced repetition. If we are trying to learn, it works best if we try to retain the information by repeating it it over and over, not within the same day, but practicing it the same number of times within several days.
  7. Believe that you can do it. This is the most important part of changing our procrastination habit. One way to do this in times of weakness is to develop a new community like hanging out with colleagues who learn the same thing, and helping each other avoid procrastination.
  8. Write the daily or weekly list of tasks in a planner journal the evening before. As based on research, this activity helps the subconscious mind grapple with the tasks on the list, and then work on accomplishing them the next day. Though we just have to make sure to plan our quitting time also.
  9. Eat your frogs first thing in the morning. This means doing the most disliked tasks and most important tasks first, using the pomodoro technique. This allows us to finish what needs to be done, and as the law of serendipity states, Lady luck favors the one who tries.
  10. Delay rewards until we finish the task. Rewards are what makes us reach for that learning goal, really.
  11. Lastly, get a good night sleep. Various research has already proven that when we have enough sleep, it allows our brain to wash away toxins and our brain cells to shrink, giving more space for new information to be retained.

What’s Next for Me?

The reason I wrote this blog is for a project, to identify what I learned from this course and how to apply it in my life. To be honest, the process of starting this blog, and then writing it, and then the goal of finishing it has become my application for the learning experience! Haha!

My initial goal for taking the course is to make it as a starting point of preparing myself for taking the other online classes I have enrolled in programming. I realized I am a great procrastinator, and if I want to improve my life, I need to upskill myself, learn new habits and work towards my dream role of becoming an interaction designer (which is related to UI/UX designer) and developer. I have been fascinated with programming since I studied in the university 10 years ago but life made me choose another profession. Now, my thoughts are hunting me — what if I worked on learning programming, getting certificates and working for the world’s best companies that put first learning, would I be happy right now? So there, this is the reason I am writing this blog. 🙂

So, let’s talk about this project. First, I chose to write a blog since it is easier for me, and I learn easily when I write. Second, merely the process of doing this project is already an application of the course! I have little motivation when it comes to online classes because I would rather: 1) sleep, 2) browse social media, 3) continue doing tasks for my work, 4) watch Netflix, or 5) just play with my rescue dog and cat (note: they are really adorable!). So you see, I have a lot of distraction and it takes lots of willpower.

But as Barbara Oakley said, one of the best ways of being effective in your learning is to use mental tools and tricks to inspire and motivate yourself. So here I am, doing the very tricks I learned in this lesson in finishing this blog. haha!

So far, these are the things I did to help me kickstart my learning sessions in all the courses I enrolled:

  1. I bought a planner for 2020 so I can write down all my tasks: both for work and for the online classes. I also bought another one for 2021 to help me prepare for the next year! We all know we need to reset and look for greater things as 2020 has been a bit harsh lately. (I am in the Philippines, so here is just what happened this year: Taal Volcano eruption, Coronavirus Pandemic, No work for several months, Typhoon Quinta, SuperTyphoon Rolly, and now, there is Typhoon Ulysses that hit our area).
  2. I started sleeping by 10pm or 11am, as sleep is an important factor in learning easily. I used to sleep around 12mn or later due to work. Now, I need to balance work and personal life.
  3. When I am watching the videos, I take down notes in my handy notebook. Recall is an effective approach, so what I do is after I watch the videos, I write down what I have learned. It helps me practice if I remember anything and try several problems.
  4. Highlight only what is important. Before, I love highlighting! To the point that my book becomes a colorful mess of doodles. But I realized, it is important to highlight only the main ideas and then I started putting my own comments beside these highlights. On my notebook, I created a quotation section where I put the main idea then I put my comments underneath it.
  5. I use pomodoro with my online stopwatch. This is really effective for me. I am greatly distracted when I have a task I need to do, my mind tends to wander somewhere else. With the countdown time on full screen, I am reminded to finish within the given timeframe.
  6. I stay away from distractions. For me, the greatest distraction is reading news always, and social media. That little notification bar on top of my phone? You bet it keeps me away from finishing my tasks. So what I do every time I am on learning session is working on my laptop instead using my phone, then I use Spotify to play low background instrumental music while writing recalling the ideas I have learned. I have the online stopwatch also to keep me grounded. So far it works for me, and I will keep on doing it while learning my other courses.
  7. Have a definite time for learning. I am working from home, so taking classes after is my schedule. However, I realized that learning 1-2 hours a day for the same course is like a spaced repetition, so now, I am doing it myself to avoid any burnout.
  8. Eat my frogs first thing in the morning. This is my greatest challenge of all. I usually delay those uncomfortable tasks, to which I end up thinking about it the whole day, and my pending tasks getting longer and longer at the end of the day. It is hard, but I am working on it one step at a time. Since I now have the list of daily tasks, I look at those list and prioritize. Then I try to get on with it. True enough, as what Dr. Oakley said, after sometime, it feels better (well, given the fact I have a sense of accomplishment after I finish it early in the day).

So there! I hope I shared bits and pieces of what I learned from the course, Learning How to Learn by Barbara Oakley. How about you? Are you also on your learning journey?

Maybe this course can help you! Or if you are a reader, you can get the book, A Mind for Numbers and I am pretty sure you will get lots of techniques. So until next time, always keep safe wherever you are in the world right now, and enjoy learning!

References:

McMaster University. (Coursera Course). Learning How to Learn: Powerful mental tools to help you master tough subjects. Taught by Dr. Barbara Oakley and Dr. Terrence Sejnowski. Course taken October – November 2020.

Karpicke, J.D. and Blunt, J.R. (2011). Retrieval Practice Produces More Learning than Elaborative Studying with Concept Mapping. Published by the Science Journal, Vol. 331, Issue 6018, pp 772-775 & retrieved from http://learninglab.psych.purdue.edu/downloads/2011_Karpicke_Blunt_Science.pdf on Nov 12, 2020.

Agile Methodology: Kanban

Kanban is a methodology that was developed alongside lean manufacturing. It was originally designed to be used with lean manufacturing, but it can also be used independently of lean.

So what is Kanban?

Kanban is a project management system invented by Taiichi Ohno, an industrial engineer at Toyota. Kanban involves a technique to organize and track project progress visually, which is widely used even outside Agile or Lean software development.

Kanban is considered an agile methodology that accounts each component to be tracked for, and the process notifies each phase of its status. With this, it is easier to identify when to create new component. In lean manufacturing, this is called Just-In-Time manufacturing.

When a component is used, the process that replaces the component is notified so that a new one can be created. Basically, when a bin is emptied, a new component is created and placed into the bin as soon as possible. This strategy of continually using and refreshing items in bins on the factory floor is called the pull method.

In software development, this process is visualized using a task board, with each software development activity represented as a column on the task board.

The Kanban Board.
Screenshot from the video Kanban, part of the Coursera Course
Software Processes and Agile Practices

In Kanban, all of these phases are coordinated. If a piece of work is done in one column, it’s ready to be pulled by the next column. However, an opening must form in that next column to allow the piece of work to be pulled into that phase, continuing the cycle.

Work In Progress – the amount of work currently in development in each phase

Bottlenecks – the slower parts of the process. A bottleneck occurs when one phase cannot keep up with the work created by the preceding phase

Two ways to address a bottleneck:

  1. Ramping up production at the bottleneck
    • by adding resources to speed up production
  2. Decrease production ahead of the bottleneck
    • by moving resources from one phase to another. Examples are multi-functional developers who may be in the development phase, moved to acceptance testing phase so the bottleneck in acceptance testing phase will be addressed.

Work in Progress Limits – this is limiting the amount of work that must wait to be pulled into the next phase.

Cycle Time – this is the total time that it takes for one piece of work to go through one full cycle of doing the work. This is the metric software product managers check to know if a change in the bottleneck has made any difference.

To measure cycle time in each phase, it is important to know when a piece of work is started and when it’s finished. Then, calculating the number of hours between these timestamps and we get the cycle time.

Cycle time is important because it’s a measure of what the process can handle and the quality of practices rather than a measure of the development team’s effort. A software product manager knows something is right when the cycle time is decreasing and the product quality is remaining constant or improving.

So, in summary, Kanban is a set of practices that allows the team to track their progress over time through the Kanban board, and ensures that the Just-In-Time development strategy is followed. In turn, waste is reduces and decisions are made as late as possible.

An effectively managed Kanban board will give a software product manager a clear picture of your project status at a glance. It can also help with improving efficiency, productivity, and collaboration.

References:

University of Alberta (2020). Software Processes and Agile Practices. [Coursera Course] under the Software Product Management Specialization. Taken November 2020.

Poelette, B. (2020). Kanban [Video]. Embedded under the course study videos under the Week 3 of the Software Processes and Agile Practices Coursera Course. Taken November 25, 2020.

Agile Methodology: Lean Software Development

Lean Software Development is one of the methodologies in Agile that is gaining traction in the industry. Originally, it started when Toyota adopted in the mid-90s the lean thinking concept as a way of reducing risk within projects. Here, the focus of the approach is to reduce waste, start new work only when necessary, reduce process bottlenecks and work only on things that will add value to the project.

Further, when Mary and Tom Poppendieck in 2003 wrote Lean Software Development: An Agile Toolkit, a book about adapting the Lean manufacturing principles to software development, the concept gained traction and became popular.

To start, Lean is a mindset or a set of core principles to reduce the project’s risks and deliver high quality products to the clients quickly.

In software development, Lean consists of seven (7) principles. These are:

  1. Eliminating waste
  2. Amplifying learning
  3. Deciding as late as possible
  4. Delivering as fast as possible
  5. Empowering the team
  6. Building quality in
  7. Seeing the whole
Screenshot from the Video: Agile Variations and Lean Software Development
in the Coursera Course Software Processes and Agile Practices

Let’s look at each one:

ELIMINATING WASTE

Eliminating Waste means having to decide to look at the process and makes sure that when putting everything together and integrating all the work product after, there is no unnecessary work product. An example of how a software production can be wasteful is when a developer is busy all the time, creating new features instead of the core features, the developer might run in to be developing unnecessary features that can either bog down the quality of the end product, cause issues with the main product or not end up in the final product. The software product manager will not want this for the team.

AMPLIFYING LEARNING

In Amplifying Learning, ideas are explored further by checking alternative solutions before proceeding with actions. For example, the development team creates the basic list of user requirements then already starts to develop the basic functionality. This is normal. However, before moving on to the next functionality, the team will stop and check for alternative approaches for that basic functionality. As a consequence of this, the product has its best chance of meeting then the client’s needs.

Also, running tests, and involving the client in the development process along the way is a great example of amplifying learning. This allows the the development team to learn through trial and error when they constantly presents a working software to the client.

In short, in amplifying learning, the team builds the right product through developing alternatives, continuous feedback and refinement.

DECIDING AS LATE AS POSSIBLE

Here, the core idea of deciding as late as possible is not about delaying anything for the project or buying time to complete the work product. It is about making decisions when the data and information you need is available.

For example, the client informed the team his requirements for building the product. The development team started working and is able to produce a prototype. After the initial feedback, the client says that the prototype is good to go. Instead of starting on further development, you work hard to ensure that there are many alternatives. Decisions made before you have enough information are bound to result in poor outcomes. Deciding late as possible ensures that you have the information you need first.

DELIVERING AS FAST AS POSSIBLE

This is intricately related to deciding as late as possible. In deciding as late as possible, the development team will explore possible approaches to further deliver the client needs. Because of this, the client now has an opportunity to see the prototype in three different approaches, and correct any wrong notions or decisions that could have further delayed the project. Once the client has made the right decision about the feature, or the product itself, it becomes easy for the team to build the right features and not wait for several months before changing a feature that is eventually unnecessary.

Imagine having the go signal from the client, the development team started further development on the features and after three months, the client wanted to see 2 new approaches? It will take another 3-6 months for the team to develop the features, wasting time and resources when these can be fixed initially during the prototype sessions.

This is the importance why lean software development operates in short rapid iterations.

The development team will build a basic product, make sure it works, and get it out the door and then worry about the next steps. By operating in short bursts, the product evolves at a rapid rate and allows client feedback at frequent intervals throughout the process.

EMPOWERING THE TEAM

As a software product manager, instead of micromanaging the development team, it is important to focus on your efforts to understand the client’s needs, remove the developer’s roadblocks and get out of the way. Lean software development encourages managers to listen to their developers. Software product managers are encouraged to let the developers imagine solutions that satisfy the client requirements, and to allow the the team to work how they want to work.

Trusting the team to make the right technical decisions not only does make the developers productive, but it also boosts their morale. A happy development team is a productive and an efficient team.

BUILDING INTEGRITY IN

In this principle, it aims to ensure that the development team are provided the best practices in software development to avoid errors.

Example would be using the test-driven development principle. Also, the team can apply the pair programming if it works for their development practices. Another practices would be well commented code, good documentation, refactoring code to be more efficient and automated testing. All these serves the purpose to make the product better.

SEEING THE WHOLE

What it means to see the whole is to see the software from more than just a lot of little components put together. What the end user should see is a cohesive product with components that flow into each other logically and smoothly. So in Lean software development, it’s important to think about the product as a whole before releasing it. This means that the developers must be constantly aware of how their piece of the puzzle fits into the big picture. Seeing the whole allows your development team to build a product as a cohesive well-designed whole.

Mary and Tom Poppendieck has additional principles that software development teams can apply:

  • Use the scientific method when building a system
    • As a software product manager, doing experiments to test ideas and collect data allows everyone on the team make informed decisions. ‘
  • Encouraging leadership
    • This means enabling initial individual developers to be courageous, innovative, inspirational and collaborative.

In summary, lean software development is a methodology that allows the team to create better software and have happier clients. It also encourages fast-paced iterative development, client interactions and the use of proven software development techniques to be successful.

References:

University of Alberta (2020). Software Processes and Agile Practices. [Coursera Course] under the Software Product Management Specialization. Taken November 2020.

Patzelt, M. (2020). Agile Variations and Lean Software Development [Video]. Embedded under the course study videos under the Week 3 of the Software Processes and Agile Practices Coursera Course. Taken November 23, 2020.

Agile Practice: SCRUM

What is SCRUM?

Scrum is a lightweight agile practice that doesn’t take too much time away from production, uses both the iterative and incremental system process models, and enhances predictability and mitigates risks.

Pillars of SCRUM

  • Transparency
    • It means that everyone can see every part of the project. This means that both the Scrum team and the client is familiar of the development updates.
    • Here, the team is agreeing on using common terminology to use through development.
  • Inspection
    • Scrum encourages frequent inspection of work products and progress to detect undesirable deviations from expectations
  • Adaptation
    • When the team has found themselves deviating from the software requirements, they should be able to easily adapt and adjust. Also, called Scrum events, these techniques to help with this are:
      • Sprint Planning
      • Daily Scrum
      • Sprint Review
      • Sprint Retrospective

All these events are time-boxed, meaning the Scrum team needs to specify a maximum time for the duration of each events and adhere to that. Let’s look at each one.

Photo from http://www.enliveningedge.org under CC BY SA 4.0

Sprint is a development phase of a specific amount of time, in which a working prototype is delivered to the client. Here, the sprint lasts one month or less, typically 1 or 2 weeks. After each sprint, a working prototype is delivered to the client. Each spring consists of the four scrum events, which are:

Spring Planning – occurs at the beginning of the current Sprint to determine what will be completed in Sprint.

Daily Scrum – this is a daily meeting that occurs at the beginning of each day so that the team can talk about the tasks they will need to accomplish for the day.

Sprint Review – this occurs at the end of the Sprint. This is also where the working prototype is delivered. It reviews what has been accomplished, what has been tagged as “DONE” and what needs additional increment for the next sprint.

Sprint Retroactive – this is where the suggestions that will change the Sprint goal will go to the Backlog, to start the next Sprint as the product owner decides.

How is a feature considered ”DONE“? A feature is considered done when it is coded, tested and documented. During a sprint, a requirements change is not allowed if it is outside the sprint goal.

ROLES OF THE SCRUM TEAM

A Scrum team consists of the product owner, development team and the scrum master.

Product Owner – the one in charge of making decisions about the product and the product backlog. He/She can represent a committe but can be the only one who can implement the changes to the product.

Development Team – the teams in Scrum are self-organizing, which means that they are in charge of taking their backlog of features and turn them into increments of working software. The team are also cross-functional where each member can be specialists from different areas but are able to do tasks other members can do. Lastly, the development team has no subteams, and can only consist of about 3-8 developers.

Scrum Master – the scrum master is the coach of the team, and is in charge of making sure the team is adhering to the scrum theory, practices and rules. As a scrum master works with the product owner, he/she finds techniques to help manage the backlog, as well as facilitate scrum events. On the other hand, when a scrum master is working with the development team, he/she coaches the team to self-organize and remove development roadblocks.

Major tech companies like Amazon, Microsoft, and Adobe are using Scrum. To learn more about it, check out scrumguides.org.

References:

University of Alberta (2020). Software Processes and Agile Practices. [Coursera Course] under the Software Product Management Specialization. Taken November 2020.

Patzelt, M. (2020). Scrum. [Video]. Embedded under the course study videos under the Week 3 of the Software Processes and Agile Practices Coursera Course. Taken November 23, 2020.