<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Magda Miu</title>
    <description>The latest articles on Forem by Magda Miu (@magdamiu).</description>
    <link>https://forem.com/magdamiu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F206739%2F6b783732-4b96-4b22-998e-4e79e3a9899e.png</url>
      <title>Forem: Magda Miu</title>
      <link>https://forem.com/magdamiu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/magdamiu"/>
    <language>en</language>
    <item>
      <title>2nd part MBS.works — The Year of Living Brilliantly</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Thu, 23 Dec 2021 07:30:00 +0000</pubDate>
      <link>https://forem.com/magdamiu/2nd-part-mbsworks-the-year-of-living-brilliantly-ge1</link>
      <guid>https://forem.com/magdamiu/2nd-part-mbsworks-the-year-of-living-brilliantly-ge1</guid>
      <description>&lt;h3&gt;
  
  
  2nd part MBS.works — The Year of Living Brilliantly
&lt;/h3&gt;

&lt;p&gt;This is the second article about &lt;a href="https://www.mbs.works/products/the-year-of-living-brilliantly"&gt;&lt;strong&gt;&lt;em&gt;MBS.works — The Year of Living Brilliantly&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; that contains the next 17 lessons of the program. Just like in &lt;a href="https://magdamiu.com/2021/05/14/mbs-works-the-year-of-living-brilliantly/"&gt;the first one&lt;/a&gt;, I added my notes for each session, plus references to learn more about the person who is talking about that topic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LqVRzyTG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2ADLiQ_ifv4hjalirn" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LqVRzyTG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2ADLiQ_ifv4hjalirn" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  18. How to Start Your Day
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Neil Pasricha&lt;/strong&gt; =&amp;gt; You can learn more about Neil and his work at &lt;a href="https://www.neil.blog/about-neil#"&gt;https://www.neil.blog/about-neil#&lt;/a&gt; or by following him on Instagram, Facebook, or Twitter &lt;a href="https://www.instagram.com/neilpasricha"&gt;@neilpasricha&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Neil shares with us the idea to have a notebook and write down one thing you want to get done every day. And at the end of the day check if you managed to finish that thing. Also use the same notebook to write 5 tiny specific things that you are grateful for, plus 5 things that make you angry and anxious.&lt;/p&gt;

&lt;p&gt;He recommends us a two-minute exercise called “Two-minute Mornings” and it is about starting your day by asking yourself 3 questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;I will let go of&lt;/strong&gt;. This is the anxiety thing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I am grateful for&lt;/strong&gt;. These are the few little things I can be happy about, specific gratitudes from my day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I will focus on&lt;/strong&gt;. Remember that’s how my cue card started first. It was just one thing I was going to do every day.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  19. How to Notice Your Advice Monster
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mark Bowden&lt;/strong&gt; =&amp;gt; Find out more about Mark and his work at &lt;a href="https://truthplane.com/home/people/mark-bowden/"&gt;truthplane.com/home/people/mark-bowden/&lt;/a&gt; or by following him on Twitter &lt;a href="https://twitter.com/truthplane"&gt;@truthplane&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Notice when you get triggered by the environment to give advice and be aware of your feelings, behavior, non-verbal. When you notice that you are tense and you are prepared to give advice, work to moderate yourself. Moderate your gestures and focus on listening to the person in front of you and asking helpful questions. interlace your fingers, place them over your navel, stand up straight, tilting your head to one side, have a gentle smile, and listen. Try to have this posture every time you feel the need to give advice and it is not the case.&lt;/p&gt;

&lt;h3&gt;
  
  
  20. How to See Other Perspectives
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dr. Elizabeth Kiss&lt;/strong&gt; =&amp;gt; Find out more about Dr. Kiss’ work at &lt;a href="https://www.rhodeshouse.ox.ac.uk/"&gt;www.rhodeshouse.ox.ac.uk&lt;/a&gt; or on Twitter &lt;a href="https://www.twitter.com/rhodes_trust"&gt;@rhodes_trust&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Stop, breathe and listen.&lt;/p&gt;

&lt;p&gt;The research shows that diverse teams, teams of people with different backgrounds and perspectives, teams that have men and women, so gender diversity, teams that have racial diversity, are more effective at solving problems.&lt;/p&gt;

&lt;p&gt;When you get a different perspective than yours for sure it is not comfortable but you should stop, breathe and listen. Try to understand if that perspective will lead to wiser, richer, fuller decision-making.&lt;/p&gt;

&lt;h3&gt;
  
  
  21. How to Discover the Rules
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Kevin Kruse&lt;/strong&gt; =&amp;gt; Find out more about Kevin and his work at &lt;a href="https://www.leadx.org/"&gt;www.leadx.org&lt;/a&gt; and follow him on Twitter &lt;a href="https://twitter.com/leadxlife"&gt;@LEADxLife&lt;/a&gt; and &lt;a href="https://twitter.com/kruse"&gt;@Kruse&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Be curious about the rules of your life. Great leaders have no rules. It is not about being a rebel, it is about having as few rules as possible.&lt;/p&gt;

&lt;p&gt;You want a few rules because it will allow you to make your choice. Work to understand why some rules exist, be curious about them, have conversations about them with your team, and see if they are still relevant.&lt;/p&gt;

&lt;h3&gt;
  
  
  22. How to Allow Innovation to Blossom
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dr. Simone Bhan Ahuja&lt;/strong&gt; =&amp;gt; Find out more about Simone and her work at &lt;a href="https://www.blood-orange.com/"&gt;www.blood-orange.com&lt;/a&gt; and follow her on Twitter &lt;a href="https://www.twitter.com/simoneahuja"&gt;@simoneahuja&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Dr. Simone Bhan Ahuja talks about how to support more innovation by becoming a learning organization, and doing this by encouraging humility, empathy, and curiosity.&lt;/p&gt;

&lt;p&gt;The foundation of innovation is learning about your customers, about their needs, about what’s working and what’s not, having to know all the answers is going to make the possibility of meaningful innovation take a dive.&lt;/p&gt;

&lt;p&gt;There are 3 steps that could be followed to build a learning organization and more innovation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Making learning a priority&lt;/li&gt;
&lt;li&gt;When in doubt test it out&lt;/li&gt;
&lt;li&gt;Measure the new ROI, return on intelligence.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  23. How to Have an Idea that Works
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Alexander Osterwalder&lt;/strong&gt; =&amp;gt; Find out more about Alex and his work at &lt;a href="https://strategyzer.com/"&gt;strategyzer.com&lt;/a&gt; and follow Alex on Twitter at &lt;a href="https://www.twitter.com/alexosterwalder"&gt;@alexosterwalder&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are 2 worlds inside of an organization: managing the existing and inventing the new and as a leader, you should be aware of them to apply the right mechanisms.&lt;br&gt;&lt;br&gt;
Managing existing is about predictability.&lt;br&gt;&lt;br&gt;
When you create something new, what is hard is to get that idea and create value for your organization and customers through it. Test your idea as soon as possible and make sure you do not apply the rules available for managing existing work.&lt;/p&gt;

&lt;h3&gt;
  
  
  24. How to Be Grateful
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Darryl Slim&lt;/strong&gt; =&amp;gt; You can learn more about Darryl and his work by visiting &lt;a href="https://darrylslim.com/"&gt;darrylslim.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Touch and listen.&lt;br&gt;&lt;br&gt;
The core of his teaching is “listen and touch” to our hearts. He calls the heart the natural spring water.&lt;/p&gt;

&lt;h3&gt;
  
  
  25. How to Be Empathetic
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dan Pontefract&lt;/strong&gt; =&amp;gt; Find out more about Dan and his work at &lt;a href="http://www.danpontefract.com/"&gt;danpontefract.com&lt;/a&gt; and by following Dan on Twitter at &lt;a href="http://www.twitter.com/dpontefract"&gt;@dpontefract&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Empathy comes in three forms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cognitive empathy (head) — Where’s their headspace? How are they thinking about that?&lt;/li&gt;
&lt;li&gt;Emotional empathy (heart) — How are they feeling?&lt;/li&gt;
&lt;li&gt;Sympathetic empathy (hands) — you can sympathize with them and then take action. “Hey, is there anything I can do to take that off your plate?”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  26. How to Understand the Context
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dave Stachowiak&lt;/strong&gt; =&amp;gt; Find out more about Dave and his work at &lt;a href="https://coachingforleaders.com/"&gt;coachingforleaders.com&lt;/a&gt; or on LinkedIn &lt;a href="https://www.linkedin.com/davestachowiak"&gt;@davestachowiak&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When people complain about some things or try to describe a situation a good question to understand the context of the situation is “What’s a time that happened, recently?”&lt;br&gt;&lt;br&gt;
If you try to understand, to coach them, it is important to understand the context to know how to lead the conversation and if it is the case to offer the right possibilities or ideas.&lt;/p&gt;

&lt;h3&gt;
  
  
  27. How to Be More Influential
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dorie Clark&lt;/strong&gt; =&amp;gt; You can learn more about Dorie at &lt;a href="https://www.dorieclark.com/"&gt;dorieclark.com&lt;/a&gt; and follow her on Twitter &lt;a href="https://www.twitter.com/dorieclark"&gt;@dorieclark&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;How you can grow your influence by positioning yourself as an expert:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Willing to share your ideas publicly:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speak up more in meetings and make sure that people know what you’re thinking, what’s on your mind&lt;/li&gt;
&lt;li&gt;Do a lunch-and-learn and share those experiences so that others can benefit from them&lt;/li&gt;
&lt;li&gt;Stepping up and raising your hand and volunteering to speak at a conference or a convention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Social proof:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Volunteer as a leader in your local professional association&lt;/li&gt;
&lt;li&gt;Volunteer as a committee on cross-departmental initiative&lt;/li&gt;
&lt;li&gt;Be part of alumni associations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Your network:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can you even just once a week, have a coffee, have a phone call, have lunch with someone who is outside your company or outside of your industry?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  28. How to Know Exactly What to Say
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Phil Jones&lt;/strong&gt; =&amp;gt; You can find out more about Phil and his work &lt;a href="https://www.philmjones.com/"&gt;philmjones.com&lt;/a&gt; and by following him on social &lt;a href="https://www.instagram.com/philmjonesuk/"&gt;@philmjonesuk&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The person in control of every conversation is the one who’s asking the questions. Questions create conversations, conversations lead to relationships, relationships create opportunities, and only opportunities lead to action.&lt;br&gt;&lt;br&gt;
Think about the regular questions that are asked of you, plan your words out ahead of time, respond to those questions with questions that create more clarity. With clarity comes certainty, with certainty comes growth.&lt;/p&gt;

&lt;h3&gt;
  
  
  29. How to Say No
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Sanyin Siang&lt;/strong&gt; =&amp;gt; Find out more about Sanyin and her work at &lt;a href="https://www.coachsanyin.com/"&gt;coachsanyin.com&lt;/a&gt; and follow her on LinkedIn &lt;a href="https://www.linkedin.com/in/sanyin/"&gt;/sanyin&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We don’t like to say no because we want to help people. Being able to say no in the right way and in an intentional way can be precisely what’s needed for us to be able to help others. How to do that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Respond with “not yet” — it is important, but I will help you later when I will have the necessary time to bring the best from that situation/task/activity&lt;/li&gt;
&lt;li&gt;“Can I bring someone else along?” or “Can I bring someone else, can I do it with someone else?”&lt;/li&gt;
&lt;li&gt;“I may not be the best person for this because the expertise you’re looking for, I’m not the best fit for that, but let me recommend someone who’ll be a perfect fit”.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  30. How to be a Host
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Marshall Goldsmith&lt;/strong&gt; =&amp;gt; Find out more about Marshall and his work at &lt;a href="https://www.marshallgoldsmith.com/"&gt;marshallgoldsmith.com&lt;/a&gt; and by following him on LinkedIn &lt;a href="https://www.linkedin.com/in/marshallgoldsmith/"&gt;/marshallgoldsmith&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Marshall Goldsmith shares that his coaching process is about teaching and connecting people with similar responsibilities. He allows his clients to help each other, to be empathetic, and share knowledge and ideas in a safe environment. He facilitates all of these.&lt;/p&gt;

&lt;h3&gt;
  
  
  31. How to Scale
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Fiona Macaulay&lt;/strong&gt; =&amp;gt; You can find out more about Fiona and her work at &lt;a href="http://www.wildleadershipforum.org/"&gt;WILDleadershipforum.org&lt;/a&gt; or by following her on Twitter &lt;a href="https://www.twitter.com/f_macaulay"&gt;@F_macaulay&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Fiona talks about the fundamentals of leadership for founders so that you can take your idea to scale and not burn out in the process.&lt;br&gt;&lt;br&gt;
When you feel overwhelmed about the things you should do, remember to ask yourself: &lt;em&gt;“What’s most important now?”&lt;/em&gt;. This question will help you to prioritize your work and will keep you focused.&lt;br&gt;&lt;br&gt;
Your goal is to ensure that you’re leading yourself from the very beginning with compassion and honesty and self-care.&lt;/p&gt;

&lt;h3&gt;
  
  
  32. How to Forgive
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Desiree Adaway&lt;/strong&gt; =&amp;gt; Find out more about Desiree and her work at &lt;a href="http://desireeadaway.com/"&gt;desireeadaway.com&lt;/a&gt; and follow Desiree on Instagram or Twitter &lt;a href="https://www.instagram.com/desireeadaway/"&gt;@desireeadaway&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Forgiveness and reconciliation are essential for creating cultures because they build safer, braver, and more peaceful organizations.&lt;br&gt;&lt;br&gt;
Forgiveness needs to be practiced in combination with accountability, governance, transparency, with truth-telling. Forgiveness always has to be intentional, it always has to be voluntary, and it always has to be a deliberate decision that we make. Forgiveness is really about individual healing.&lt;br&gt;&lt;br&gt;
Reconciliation is about restoring relationships. Reconciliation is the social process to acknowledge the past hurts and suffering.&lt;br&gt;&lt;br&gt;
Forgiveness is possible without reconciliation, but reconciliation is not possible without forgiveness. We have to do both. Forgiveness is that individual healing and reconciliation is that social healing that has to happen before you can move on.&lt;/p&gt;

&lt;h3&gt;
  
  
  33. How to Access Curiosity
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Liz Wiseman &amp;amp; Shawn V&lt;/strong&gt; =&amp;gt; You can find out more about Liz and her work at &lt;a href="https://thewisemangroup.com/"&gt;thewisemangroup.com/&lt;/a&gt; or by following her on &lt;a href="https://twitter.com/lizwiseman"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Good leaders should ask questions and not give answers. The art of asking questions is an important skill of a leader.&lt;/p&gt;

&lt;p&gt;How to build your own set of back pocket questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Brainstorm your favorite questions:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Write down five of your favorite questions that you tend to use when you want to engage people in solving problems, think through challenges, tap into new thinking and open up innovation and creativity, or just gain commitment.&lt;/li&gt;
&lt;li&gt;After the list is done, review them and select your best three.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Inspire yourself from the questions presented by Liz and Shawn:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sample of go-to questions&lt;/li&gt;
&lt;li&gt;“What does this look like from your perspective?”&lt;/li&gt;
&lt;li&gt;“What am I not seeing that’s important for me to understand?”&lt;/li&gt;
&lt;li&gt;“What are the risks or the downsides?”&lt;/li&gt;
&lt;li&gt;“What are we assuming that just might not be true?”&lt;/li&gt;
&lt;li&gt;“Are there any reasons why we shouldn’t proceed?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Inspire yourself from the questions addressed by your colleagues&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Listen for questions that you like or questions that you noticed to bring results and great ideas or answers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Use the collected set of questions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you have added the questions in a known place and use them because they will help you tell less and ask more. And when you as a leader ask more, you’re going to get more from others, more insight, more capability, more ownership.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  34. How to Find the Story
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Pat Flynn&lt;/strong&gt; =&amp;gt; You can find out more about Pat and his work at &lt;a href="https://www.smartpassiveincome.com/about/"&gt;smartpassiveincome.com/about/&lt;/a&gt; or by following him on Twitter or Instagram &lt;a href="https://twitter.com/PatFlynn"&gt;@patflynn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Every time you speak with somebody, especially if there’s a problem that arises or even a suggestion or feedback, you should find the story. Ask that person: “Well, tell me the story behind that.”&lt;br&gt;&lt;br&gt;
By knowing the story you can understand better the context, you could empathize with that person and allow you to understand what they are looking for, versus what they might be just asking for.&lt;/p&gt;

&lt;p&gt;Happy reading! 🤓&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2021/12/23/2nd-part-mbs-works-the-year-of-living-brilliantly/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on December 23, 2021.&lt;/em&gt;&lt;/p&gt;




</description>
      <category>leadership</category>
    </item>
    <item>
      <title>7 Questions to build The Coaching Habit</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Mon, 01 Nov 2021 17:45:00 +0000</pubDate>
      <link>https://forem.com/magdamiu/7-questions-to-build-the-coaching-habit-1kk0</link>
      <guid>https://forem.com/magdamiu/7-questions-to-build-the-coaching-habit-1kk0</guid>
      <description>&lt;p&gt;These years I discovered how helpful is to ask the right question when I am engaged in a conversation or meeting with my team or with one of my coworkers. I understood that by asking relevant questions I help my team members to find their own solutions that fit better their needs and for sure by doing so they are more committed and involved to implement them.&lt;/p&gt;

&lt;p&gt;I read and enjoyed very much the idea of “&lt;a href="https://less.works/less/management/teaching-problem-solving"&gt;manager as a teacher&lt;/a&gt;” and then this concept connected in my mind with the very powerful skill of asking good questions that will empower and help my team members to be successful.&lt;/p&gt;

&lt;p&gt;I talked about this topic in an 1:1 with an Agile Coach and he recommended me this book: “&lt;em&gt;The Coaching Habit”&lt;/em&gt; by Michael Bungay Stanier, and yes, for sure, this book is an amazing source of knowledge and inspiration about how to improve your skill of asking questions and making it a habit, the coaching habit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pj0qq_4i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AaLTxeMaAOGvAPwLP" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pj0qq_4i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AaLTxeMaAOGvAPwLP" alt="" width="880" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  You need a coaching habit
&lt;/h3&gt;

&lt;p&gt;Daniel Goleman in his article “&lt;a href="https://hbr.org/2000/03/leadership-that-gets-results"&gt;Leadership that gets results&lt;/a&gt;” from HBR, mentioned that based on the research there are 6 essentials leadership styles, and the coaching was one of them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Coercive leaders&lt;/em&gt; demand immediate compliance&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Authoritative leaders&lt;/em&gt; mobilize people toward a vision&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Affiliative leaders&lt;/em&gt; create emotional bonds and harmony&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Democratic leaders&lt;/em&gt; build consensus through participation&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Pacesetting leaders&lt;/em&gt; expect excellence and self-direction&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Coaching leaders&lt;/em&gt; develop people for the future&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Coaching is about helping others to unlock theirs potential, but by practicing coaching it helps you to work less hard and have more impact.&lt;/p&gt;

&lt;p&gt;Coaching can break out 3 vicious circles that affects our workplaces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;creating overdependece: building a coaching habit will help your team to be become more self-sufficient by increasing their ability to learn how to solve the problems and organise their work so you, as a leader, will stop being a bottleneck&lt;/li&gt;
&lt;li&gt;getting overwhelmed: building a coaching habit will help you to focus on the things that matters&lt;/li&gt;
&lt;li&gt;becoming disconnected: building a coaching habit will help you to connect with your team member and to set them up for success&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to build a habit
&lt;/h3&gt;

&lt;p&gt;To build an effective new habit it involves to have 5 components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a reason&lt;/li&gt;
&lt;li&gt;a trigger&lt;/li&gt;
&lt;li&gt;a micro-habit&lt;/li&gt;
&lt;li&gt;effective practice&lt;/li&gt;
&lt;li&gt;plan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The New Habit Formula&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;= Identifying the trigger + Identifying the old habit + Defining the new behaviour&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Videos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=l9_R5Bvmwjo"&gt;Building Rock Solid Habits (Part 1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=GmXPBN5Rjvs"&gt;Building Rock Solid Habits (part 2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=XywrabmubJs"&gt;How to Build Rock Solid Habits (Part 3)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d3cc1beb-cafe-40e2-8f2f-823d4a8be406/6.5HABITGURUS.pdf"&gt;6.5HABITGURUS.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❓Question Masterclass Part 1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📺 &lt;a href="https://www.youtube.com/watch?v=TImj8rrEASU"&gt;How to ask a great question&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ask one question at a time. Just &lt;strong&gt;one question&lt;/strong&gt; at a time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  1️⃣. The Kickstart Question — What’s on your mind?
&lt;/h3&gt;

&lt;p&gt;The meaning of this question is actually “&lt;em&gt;Let’s talk about the thing that matters most”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;After this question was addressed you can use a framework, recommended by the author, called &lt;strong&gt;3P model&lt;/strong&gt; for choosing what to focus on in a coaching conversation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;projects&lt;/li&gt;
&lt;li&gt;people&lt;/li&gt;
&lt;li&gt;patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💡 The science behind this question&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One of the fundamentals truths from neuroscience is that &lt;strong&gt;we are what we give our attention&lt;/strong&gt;. When we have something on our mind, that thing consumes our energy and focus.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;❓Question Masterclass Part 2&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cut the intro and &lt;strong&gt;ask the question&lt;/strong&gt;. If you know what question to ask, get to the point and ask it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And if sometimes it sounds complicated to go directly with a question you could add lean-in phrases like: “&lt;em&gt;out from curiosity&lt;/em&gt;“.&lt;/p&gt;

&lt;h3&gt;
  
  
  2️⃣. The AWE Question — And What Else?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;“And what else?” is the quickest and easiest way to uncover and create new possibilities.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Four practical tips for asking “and what else?”&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;stay curious, stay genuine: ask the question with genuine interest and curiosity&lt;/li&gt;
&lt;li&gt;ask it one more time: ask it at least three times, and rarely more than five&lt;/li&gt;
&lt;li&gt;recognise success: when the coachee says “&lt;em&gt;There is nothing else&lt;/em&gt;” it means you have reached your objective with this question&lt;/li&gt;
&lt;li&gt;move on when it’s time: if the focus start to be in a different area than required try to wrap it up and ask “&lt;em&gt;Is there anything else?&lt;/em&gt;“&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  💡 The science behind this question
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Decisions made from binary choices had a failure rate greater than 50% and having at least one more option lowered the failure rate bu almost half, down to about 30%. When you ask “&lt;em&gt;And what else?&lt;/em&gt;” you help the other person to generate multiple options that could drive to better decisions&lt;/li&gt;
&lt;li&gt;Having lots and lots of options could be also challenging and it looks that four is actually the ideal number at which we can process information. Actually our brain counts like this: one, two, three, four…lots.&lt;/li&gt;
&lt;li&gt;Follow-up questions that promote higher-level thinking, like the AWE question, help deepen understanding and promote involvement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📺 &lt;a href="https://www.youtube.com/watch?v=RMhTwvu591g"&gt;Get Strategic: The One Question That Rules Them All&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❓Question Masterclass Part 3&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Should you ask rhetorical questions? Stop offering up advice with a question mark at the end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The author encourages us to be careful with the “Advice Monster” and start listening to understand better and ask the right questions to help the coachee to find his/her own answers and solutions that fit better his/her expectations.&lt;/p&gt;

&lt;h3&gt;
  
  
  3️⃣. The Focus Question — What’s the real challenge here for you?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;When you start jumping in to fix things, things go off the rails in three ways: you work on the wrong problem; you do the work your team should be doing; and the work doesn’t get done.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This 3rd question will help to &lt;strong&gt;focus on the real problem&lt;/strong&gt; , not the first problem. It is also useful to use this question and redirect the discussion to what the person in front of you can control or influence.&lt;/p&gt;

&lt;p&gt;Three strategies to make this question work for you&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;trust that you are being useful: create a learning moment for you and the person you are coaching.&lt;/li&gt;
&lt;li&gt;remember that there is place for your advice: for business as usual activities it’s ok to give advice or offer answers, it is not the case to ask questions and build coaching conversations for solving small tasks.&lt;/li&gt;
&lt;li&gt;remember the second question: adding “&lt;em&gt;What else is a real challenge here for you?&lt;/em&gt;” is helpful to offer a better understanding on the current context.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;📺 &lt;a href="https://www.youtube.com/watch?v=voJaebULK3o"&gt;How to Help Your Team Find Focus&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 The science behind this question&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the magic of the question is given by the last 2 words “&lt;em&gt;for you&lt;/em&gt;“: when the “you” word is present in the questions the research shows that questions needed to be repeated fewer times, and they were solved faster and with more accuracy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❓Question Masterclass Part 4&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Stick to questions starting with “what” and avoid questions starting with “why”. If you are not trying to fix things, you don’t need the backstory.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These 3 first questions could be combined to create a robust script for your coaching conversation:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Q: What’s on your mind?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A: 💬&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Q: Is there anything else on your mind?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A: 💬&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Q: So what’s the real challenge here for you?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A: 💬&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Q: And what else is the real challenge here for you?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A: 💬&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Q: Is there anything else?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A: 💬&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4️⃣. The Foundation Question — What do you want?
&lt;/h3&gt;

&lt;p&gt;It takes courage to ask for what you want, knowing that the answer may be No.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The illusion that both parties to the conversation know what the other party wants is pervasive, and it sets the stage for plenty of frustrating exchanges.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Based on the economist Manfred Max-Neef there are nine self-explanatory universal needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;affection&lt;/li&gt;
&lt;li&gt;creation&lt;/li&gt;
&lt;li&gt;recreation&lt;/li&gt;
&lt;li&gt;freedom&lt;/li&gt;
&lt;li&gt;identity&lt;/li&gt;
&lt;li&gt;understanding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So next time when you ask someone “&lt;em&gt;What do you want?&lt;/em&gt;” listen better to see if you could match the answer with one of the 9 universal needs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Five times a second, your brain is scanning the environment and asking itself: “Is it safe here? Or is it dangerous?” We are biased to assume that situations are dangerous rather than not.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are four primary drivers that influence how the brain reads any situation, &lt;strong&gt;TERA&lt;/strong&gt; , so they could help to focus on how can you influence the environment that drives engagement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;T is for &lt;strong&gt;Tribe&lt;/strong&gt; : “&lt;em&gt;Are you with me, or are you against me?&lt;/em&gt;“&lt;/li&gt;
&lt;li&gt;E is for &lt;strong&gt;Expectation&lt;/strong&gt; : “&lt;em&gt;Do I know the future or don’t I?&lt;/em&gt;“&lt;/li&gt;
&lt;li&gt;R is for &lt;strong&gt;Rank&lt;/strong&gt; : “&lt;em&gt;Are you more important or less important than I am?&lt;/em&gt;“&lt;/li&gt;
&lt;li&gt;A is for &lt;strong&gt;Autonomy&lt;/strong&gt; : “&lt;em&gt;Do I get a say or don’t I?&lt;/em&gt;“&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💡 The science behind this question&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This question helps people to think about what better really looks like and it also start with the end in mind.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❓Question Masterclass Part 5&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Get comfortable with Silence. Silence is often a measure of success. Take a breath, stay open and keep quiet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  5️⃣. The Lazy Question — How can I help?
&lt;/h3&gt;

&lt;p&gt;The power of this question covers two different areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you are forcing the coachee to make a direct and clear request&lt;/li&gt;
&lt;li&gt;it stops you to think that you already know how to help and what solution to apply&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now that the question was answered by your coachee, you as a leader have some options to answer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;“&lt;em&gt;Yes&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;“&lt;em&gt;No, I can’t do that&lt;/em&gt;” is another option. Having the courage to say No is one of the ways you stop being so “helpful”.&lt;/li&gt;
&lt;li&gt;“&lt;em&gt;I can’t do that… but I could do [insert your counter-offer]&lt;/em&gt;” is a nice middle ground. Don’t just give them a No; give them some other choices.&lt;/li&gt;
&lt;li&gt;“&lt;em&gt;Let me think about that&lt;/em&gt;”.&lt;/li&gt;
&lt;li&gt;“&lt;em&gt;I’m not sure — I’ll need to check a few things out&lt;/em&gt;”.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The Karpman Drama Triangle&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Victim: “&lt;em&gt;My life is so hard; my life is so unfair. ‘Poor me.’&lt;/em&gt;“&lt;/li&gt;
&lt;li&gt;Persecutor: “&lt;em&gt;I’m surrounded by fools, idiots or just people less good than me.&lt;/em&gt;“&lt;/li&gt;
&lt;li&gt;Rescuer: “&lt;em&gt;Don’t fight, don’t worry, let me jump in and take it on and fix it.&lt;/em&gt;“&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These three labels describe how we are behaving in a given situation and we tend to have a favourite role that we use by default most of the time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 The science behind this question&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;when you ask this question you are not only more effective, but you are also more respected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❓Question Masterclass Part 6&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Actually listen to the answer. And when I get distracted (which I will), I will come back and start listening again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  6️⃣. The Strategic Question: If you are saying YES to this, what are you saying NO to?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;In which you get to the heart of overwhelm and discover the question at the heart of every good strategy. A YES is nothing without the NO that gives it boundaries and form.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This question is helpful to prioritize the work and make sure you spend your time on the things that bring the most value and based on the 3P model we should choose between Projects, People or Patterns:&lt;/p&gt;

&lt;p&gt;Projects&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What projects do you need to abandon or postpone?&lt;/li&gt;
&lt;li&gt;What meetings will you no longer attend?&lt;/li&gt;
&lt;li&gt;What resources do you need to divert to the Yes?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;People&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What expectations do you need to manage?&lt;/li&gt;
&lt;li&gt;From what Drama Triangle dynamics will you extract yourself?&lt;/li&gt;
&lt;li&gt;What relationships will you let wither?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Patterns&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What habits do you need to break?&lt;/li&gt;
&lt;li&gt;What old stories or dated ambitions do you need to update?&lt;/li&gt;
&lt;li&gt;What beliefs about yourself do you need to let go of?&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Saying YES more slowly means being willing to stay curious before committing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This involves asking more questions to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why are you asking me?&lt;/li&gt;
&lt;li&gt;Whom else have you asked?&lt;/li&gt;
&lt;li&gt;When you say this is urgent, what do you mean?&lt;/li&gt;
&lt;li&gt;According to what standard does this need to be completed? By when?&lt;/li&gt;
&lt;li&gt;If I could not do all of this, but could do just a part, what part would you have me do?&lt;/li&gt;
&lt;li&gt;What do you want me to take off my plate so I can do this?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Five Strategy Questions from Roger Martin&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What is our winning aspiration?&lt;/li&gt;
&lt;li&gt;What impact do you want to have in and on the world?&lt;/li&gt;
&lt;li&gt;Where will we play?&lt;/li&gt;
&lt;li&gt;How will we win?&lt;/li&gt;
&lt;li&gt;What management systems are required?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;💡 The science behind this question&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the strategic question helps us to avoid 2 biases: the “&lt;a href="https://thedecisionlab.com/biases/planning-fallacy/"&gt;&lt;em&gt;planning fallacy&lt;/em&gt;&lt;/a&gt;” and “&lt;a href="https://en.wikipedia.org/wiki/Prospect_theory"&gt;&lt;em&gt;prospect theory&lt;/em&gt;&lt;/a&gt;“&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❓Question Masterclass Part 7&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Acknowledge the answers you get. This is not about judging people; it is about encouraging them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  7️⃣. The Learning Question: What was most useful for you?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;You discover how to finish any conversation in a way that will make you look like a genius. Your job is to create the space for those learning moments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The people start learning, start creating new neural pathways, only when they have a chance to recall and reflect on what just happened.&lt;/p&gt;

&lt;p&gt;John Davis from the NeuroLeadership have created the AGES model to explain the four main neurological drivers of longer-term memory, and &lt;a href="https://neuroleadership.com/your-brain-at-work/ages-model-for-learning"&gt;&lt;strong&gt;AGES&lt;/strong&gt;&lt;/a&gt; stands for &lt;strong&gt;Attention&lt;/strong&gt; , &lt;strong&gt;Generation&lt;/strong&gt; , &lt;strong&gt;Emotion&lt;/strong&gt; and  &lt;strong&gt;Spacing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By addressing the learning question it assumes the conversation was useful, it asks people to identify the big thing that was most useful, it makes it personal (“for you”), if gives you feedback and it reminds people how useful you are to them.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;The science behind this question&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;by finishing the conversation with this question you help people to see and then embed the learning from the conversation and also you offer a positive attitude, and people tend to remember the experience and how they felt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❓Question Masterclass Part 8&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use every channel to ask a question. Questions work just as well typed as they do spoken.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  📚 Learn more
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://boxofcrayons.com/2010/03/matt-may/"&gt;Interview with Matt May, In Pursuit of Elegance | Box of Crayons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://boxofcrayons.com/2011/09/dan-coyle-the-talent-code/"&gt;Interview with Dan Coyle, The Talent Code | Box of Crayons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=VO6XEQIsCoM"&gt;The paradox of choice | Barry Schwartz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://boxofcrayons.com/2010/01/roger-martin/"&gt;Roger Martin, The Design of Business | Box of Crayons&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  TameYourAdviceMonster #TheCoachingHabit
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2021/11/01/7-questions-to-build-the-coaching-habit/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on November 1, 2021.&lt;/em&gt;&lt;/p&gt;




</description>
      <category>questions</category>
      <category>habits</category>
      <category>leadership</category>
      <category>coaching</category>
    </item>
    <item>
      <title>3 Books that will boost your Leadership Skills</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Mon, 25 Oct 2021 08:30:00 +0000</pubDate>
      <link>https://forem.com/magdamiu/3-books-that-will-boost-your-leadership-skills-276o</link>
      <guid>https://forem.com/magdamiu/3-books-that-will-boost-your-leadership-skills-276o</guid>
      <description>&lt;p&gt;This blog post is different than the usual content from here. This time I would like to share with you 3 books that helped me a lot in my career as a leader.&lt;br&gt;&lt;br&gt;
I love to read books and after I finish reading a book I do a schema or a summary, or a mindmap to extract the useful info for me, to build my leadership toolbox.🧰&lt;br&gt;&lt;br&gt;
From these 3 books, I learned more about myself, about how important is to understand my WHY, or how helpful are OKRs even to build a personal learning plan. I also understood how essential is to create a context where my team can be successful and motivated to do their best.&lt;br&gt;&lt;br&gt;
Happy reading! 🤓📚&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eI_dIiwW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2ASNSM4TTM2pNkVkNH" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eI_dIiwW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2ASNSM4TTM2pNkVkNH" alt="" width="640" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. “Start with why” by Simon Sinek
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8zMZyj9f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/332/0%2AEAPGR7CJtLRyKw5b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8zMZyj9f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/332/0%2AEAPGR7CJtLRyKw5b.jpg" alt="" width="332" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The author starts the book by making the distinction between a leader and the one who leads: “&lt;em&gt;There are leaders and there are those who lead. Leaders hold a position of power of influence. Those who lead inspire us”.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Great leaders are able to inspire people to act by giving them a sense of purpose or belonging. For those who are inspired, the motivation to act is deeply.&lt;/p&gt;

&lt;p&gt;This book is not about what to do or how to do the things in our life or at work, its purpose is to offer us the cause of action, it challenges us to start with WHY.&lt;/p&gt;

&lt;p&gt;The core of the book is &lt;em&gt;The Golden Circle&lt;/em&gt;. There are three parts of The Golden Circle: Why, How, and What.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The outermost and largest circle is &lt;strong&gt;WHAT&lt;/strong&gt; : Every individual or organisation easily explain what their
product or job is.&lt;/li&gt;
&lt;li&gt;The middle circle is &lt;strong&gt;HOW&lt;/strong&gt; : HOW is not as obvious as WHAT. But when organisations know HOW
they do WHAT they do, they have clarity in their product or service’s differentiating factor. This is also known
as Unique Selling Proposition or “differentiating value proposition”.&lt;/li&gt;
&lt;li&gt;The innermost and smallest circle is &lt;strong&gt;WHY&lt;/strong&gt; : It is very difficult for organisations or people to explain WHY they
do WHAT they do. The WHY needs to be answered in terms of purpose, cause or belief.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The WHY and HOW are connected to the limbic brain and the WHAT with the neocortex.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limbic brain = Responsible for all feelings, like trust and loyalty. It’s also responsible for all human behavior and decision-making, yet it has no capacity for language.&lt;/li&gt;
&lt;li&gt;Neocortex = Responsible for all of our rational and analytical thought, and language.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vjApczB5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1023/0%2AN2eeydSMUnbo2-FG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vjApczB5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1023/0%2AN2eeydSMUnbo2-FG" alt="" width="880" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you differentiate between a fad and an idea that can change lives forever?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---aWkswBg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AiMVjkU8oa551Z4dD.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---aWkswBg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AiMVjkU8oa551Z4dD.png" alt="" width="880" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/Diffusion_of_innovations"&gt;Law of Diffusion of Innovations stated by Everett M. Rogers&lt;/a&gt; pertains to the bell curve of product adoption. The curve outlines the percentage of the market who adopt your product, beginning with the Innovators (2.5%), followed by Early Adopters (13.5%), Early Majority (34%), Late Majority (34%) and Laggards (16%).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Golden Circle + The Cone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4K2zScJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/300/0%2ANPMkpGw2vv36DkJ2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4K2zScJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/300/0%2ANPMkpGw2vv36DkJ2.png" alt="" width="300" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Golden Circle is actually a bird’s eye view of a cone which represents the three- dimensional structure of organisations.&lt;/p&gt;

&lt;p&gt;When you have beliefs, a why, your what is just one of the ways of bringing that why to life. Often people don’t know what they’re going to do. They know what they believe, and they find their what along the way. e.g. Simon Sinek believes in inspiring others. Writing a book is just one way of doing it.&lt;/p&gt;

&lt;p&gt;The leader sits at the top of the cone — at the start, the point of WHY — while the HOW-types sit below and are responsible for actually making things happen. The leader imagines the destination and the HOW-types find the route to get there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡To learn more about this topic:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Watch &lt;a href="https://simonsinek.com/discover/how-great-leaders-inspire-action/?ref=gcppt"&gt;Simon Sinek’s TED Talk&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLgCOAz4cqZMQbcgga7oZPhgtlaZ1GUbtp"&gt;Book club with Simon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. “Measure what matters” by John Doerr
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TRpEWrVB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/198/0%2Ae8xWZFS1Y8IMjIU7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TRpEWrVB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/198/0%2Ae8xWZFS1Y8IMjIU7.jpg" alt="" width="198" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OKR is about goal setting in a collaborative way.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As the former Intel CEO Andy Grove explained in his book, “High Output Management”, there are two questions to be answered to successfully setup a system of shared objectives, like OKRs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Where do I want to go? This answer provides the objective. (WHAT)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How will I pace myself to see if I am getting there? This answer provides the milestones, or key results. (HOW)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;John Doerr, one of Google’s early investors and a current Board of Directors member, learned about OKRs from Andy Grove while at Intel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OKRs superpowers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Superpower #1&lt;/strong&gt; =&amp;gt; focus and commit to priorities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Superpower #2&lt;/strong&gt; =&amp;gt; align and connect for teamwork&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Superpower #3&lt;/strong&gt; =&amp;gt; track for accountability&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Superpower #4&lt;/strong&gt; =&amp;gt; stretch for amazing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An OKR can be modified or even scrapped at any point in its cycle and Key Results should be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Succinct&lt;/li&gt;
&lt;li&gt;Specific&lt;/li&gt;
&lt;li&gt;Measurable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Too many objectives can blur our focus on what counts so we should keep our focus and set a number of objectives not greater than 5, because if we try to focus on everything we focus on nothing.&lt;/p&gt;

&lt;p&gt;Continuous performance management could be done using OKRs in combination with  &lt;strong&gt;CFRs&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Conversations&lt;/strong&gt; : an authentic, richly textured exchange between manager and contributor, aimed at driving performance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback&lt;/strong&gt; : bidirectional or networked communication among peers to evaluate progress and guide future improvement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recognition&lt;/strong&gt; : expressions of appreciation to deserving individuals for contributions of all sizes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💡To learn more about this topic:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=0Pj0WIQWz8M"&gt;How Google sets goals: OKRs / Startup Lab Workshop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rework.withgoogle.com/guides/set-goals-with-okrs/steps/introduction/"&gt;Guide: Set goals with OKRs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://about.gitlab.com/company/okrs/"&gt;OKRs at Gitlab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. “Why Motivating People Doesn’t Work . . . ” by Susan Fowler
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WXq6haiJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/190/0%2A1HZs8DLjkIDmkCeu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WXq6haiJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/190/0%2A1HZs8DLjkIDmkCeu.jpg" alt="" width="190" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inspiring and motivating people are key aspects of leadership that are as critical as they are elusive. The people are always motivated. The right question we should ask is not if they are motivated, but &lt;strong&gt;what motivates them&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real secret to motivation is creating an environment where people are optimally motivated to perform at their highest level.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The author describes in the book a spectrum of Motivation Model:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Disinterested&lt;/strong&gt; motivational outlook: People find no value in going to meetings — they think it wastes time or overwhelms them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;External&lt;/strong&gt; motivational outlook: People view meetings as an opportunity to use their positions or power, improve their images in the eyes of others, or gain the promise of rewards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Imposed&lt;/strong&gt; motivational outlook: People feel pressured to attend meetings either to avoid feelings of guilt or shame because everyone else is attending or out of fear of what would happen if he or she did not attend.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Aligned&lt;/strong&gt; motivational outlook: People link meetings to something they value, such as learning, and use the opportunity to learn something or teach others.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrated&lt;/strong&gt; motivational outlook: People link meetings to their larger work or life purpose, such as raising awareness about a certain issue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inherent&lt;/strong&gt; motivational outlook: People naturally enjoy meetings and the sense of camaraderie they create.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What truly motivates people is having three core psychological needs met:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;autonomy&lt;/li&gt;
&lt;li&gt;relatedness&lt;/li&gt;
&lt;li&gt;competence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Collectively known as  &lt;strong&gt;ARC&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡To learn more about this topic:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=nKTsIIA1oNM"&gt;Interview with Susan Fowler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jamesclear.com/motivation"&gt;Article about Motivation written by James Clear&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.forbes.com/sites/forbesagencycouncil/2018/03/30/all-you-need-to-know-to-motivate-millennials/?sh=2b5fb5060aed"&gt;All You Need To Know To Motivate Millennials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2021/10/25/3-books-that-will-boost-your-leadership-skills/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on October 25, 2021.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>management</category>
      <category>leadership</category>
      <category>motivation</category>
      <category>books</category>
    </item>
    <item>
      <title>MBS.works — The Year of Living Brilliantly</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Fri, 14 May 2021 19:07:13 +0000</pubDate>
      <link>https://forem.com/magdamiu/mbsworks-the-year-of-living-brilliantly-466a</link>
      <guid>https://forem.com/magdamiu/mbsworks-the-year-of-living-brilliantly-466a</guid>
      <description>&lt;h3&gt;
  
  
  MBS.works — The Year of Living Brilliantly
&lt;/h3&gt;

&lt;p&gt;At the beginning of this year I joined the program &lt;a href="https://www.mbs.works/products/the-year-of-living-brilliantly"&gt;&lt;strong&gt;&lt;em&gt;MBS.works — The Year of Living Brilliantly&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. It is a one year journey, with 52 teachers divided into three seasons. Season one is about grounding — about breathing in awareness, and courage, and insight, and in this article I added my notes for each session and the lessons I discovered during this amazing experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Of5ADg84--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AEBpNPZlss2Qt38kR" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Of5ADg84--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AEBpNPZlss2Qt38kR" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. How to Begin
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.mbs.works/about/"&gt;Michael Bungay Stanier&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setup the context: in “The Coaching Habit” book Michael Bungay Stanier talks about the &lt;strong&gt;3P model&lt;/strong&gt; , three different areas, you can choose to focus, and I think they get a little deeper each time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;P&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;rojects&lt;/em&gt;: writing a book, building a career, etc. The shift from A to B&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;P&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;eople&lt;/em&gt;: strengthen your relationships&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;P&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;atterns&lt;/em&gt;: the way you show up, the way you keep sabotaging yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. How to Arrive
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://magdamiu.com/2021/05/14/mbs-works-the-year-of-living-brilliantly/blank"&gt;Eddy Robinson&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lead with the energy of positivity and being connected to the environment and to the people. When you meet a new person make sure to have in place a welcoming ceremony.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How to Start Fresh
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/jennifer-paylor-95b29841/"&gt;Jennifer Paylor&lt;/a&gt; / &lt;a href="https://peopleengineer.com/"&gt;People Engineer — #touchinglives&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Leaders who have humility&lt;/em&gt; talk less and listen more&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Leaders who have humility&lt;/em&gt; see others as more important, they recognize the team contribution&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Leaders who have humility&lt;/em&gt; take more advice than they give advice and they recognize they don’t know everything and they seek out wise counsel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The power of humility, the willingness to start again and to know nothing.&lt;/p&gt;

&lt;p&gt;Learn more: &lt;a href="https://medium.com/@coachjenniferpaylor/the-humility-side-of-the-agile-enterprise-e83dcc55f702"&gt;The Humility Side of the Agile Enterprise | by Jennifer Paylor&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. How to Navigate
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.drjasonfox.com/"&gt;Dr. Jason Fox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of choosing some objectives for the New Year, choose one word that will unveil your intention for the next 12 months and help call you back in line. “Live in present”&lt;/p&gt;

&lt;p&gt;Learn more: &lt;a href="https://www.youtube.com/watch?v=PNSSsEFtIi4"&gt;Dr Jason Fox — The Search For Meaning&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. How to be Consonant
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://lauragassnerotting.com/"&gt;Laura Gassner Otting&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was fascinated by the idea that &lt;em&gt;success didn’t always equal happiness&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Here’s what Laura came to see from the few people she interviewed who had both success and happiness. They had what she came to know &lt;em&gt;to be consonance&lt;/em&gt;, you know, consonance, the opposite of dissonance. It’s &lt;em&gt;harmony&lt;/em&gt;. It’s &lt;em&gt;alignment&lt;/em&gt;. It’s &lt;em&gt;flow&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consonance = Calling + Connection + Contribution + Control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you do = how you are&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action is different than the impact&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Calling &lt;/strong&gt; — the thing you get out of bed in the morning to do&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connection &lt;/strong&gt; — does your work matter?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contribution &lt;/strong&gt; — how does this brand, this paycheck, this company allow you to have the career trajectory that you want?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control &lt;/strong&gt; — how much your work connects to that calling that you want to serve?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;She realized that consonance is made up of four particular elements. And each one of us is going to define our consonance differently.&lt;/p&gt;

&lt;p&gt;The first element is &lt;strong&gt;calling&lt;/strong&gt;. Calling is this idea, this thing that’s bigger than you, the thing you get out of bed in the morning to do. You can’t do it. It’s a business you want to build. It’s a bottom line that you want to grow. It’s a family you want to nurture. It’s a cause that you want to serve.&lt;/p&gt;

&lt;p&gt;The second piece is &lt;strong&gt;connection&lt;/strong&gt;. Connection answers the question, does your work matter? If you didn’t show up to work tomorrow if you called in sick, would anybody notice? Would anybody care? Does the work you’re doing on a daily basis actually connect to the calling that you want to serve?&lt;/p&gt;

&lt;p&gt;The third piece is &lt;strong&gt;contribution&lt;/strong&gt;. So if the connection is all about the work, contributions really all about you. How does this brand, this paycheck, this company allow you to have the career trajectory that you want? How does it allow you to live the lifestyle that you seek? And how does it allow you to manifest the values into the world that you love on a daily basis?&lt;/p&gt;

&lt;p&gt;The last piece is &lt;strong&gt;control&lt;/strong&gt;. And control really answers how much personal agency you have to affect how much your work connects to that calling that you want to serve and how much it’s contributing to the life that you want to have?&lt;/p&gt;

&lt;h3&gt;
  
  
  6. How to Tell Your Story
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://bobby-herrera.com/"&gt;Bobby Herrera&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Leadership is about seeing and encouraging the potential. The people need to feel they are seen. Give your people something to contribute to.&lt;/p&gt;

&lt;p&gt;A story connects to the reason.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. How to Lower Your Standards
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.dollychugh.com/"&gt;Dolly Chugh&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our mind relies on shortcuts. Only 40 of the thoughts are done consciously.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Being a good person can be that we are free of bias. We’re free of mistakes. We’re free of blind spots. Well, the research from my field of psychology says, none of us are free of bias, or mistakes, or blind spots — that in fact, particularly when it comes to perceiving other people, we’re prone to all sorts of unconscious biases that don’t necessarily line up with how we think consciously.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Goodish people are actually working harder than good people. It’s a higher standard because they’re constantly learning, we’re constantly paying attention to ways in which our blind spots may be getting in our way. And in that way, being goodish is allowing us to be better people.”&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. How to be a Learning Machine
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://learningleader.com/"&gt;Ryan Hawk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Framework to become a Learning Machine for what a perfect day looks like&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Be a learner &lt;/strong&gt; — learn new things, intake engine, consumer of a knowledge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be a doer &lt;/strong&gt; — experiment what you have learned&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make a retro&lt;/strong&gt;  — what worked well, what worked bad, what should be changed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share what you have learned with other people&lt;/strong&gt;  — learning by teaching&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Learn more: &lt;a href="https://learningleader.com/"&gt;The Learning Leader Show: Keynote Leadership Speaker Ryan Hawk&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. How to Know What’s Really Going On
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.tashaeurich.com/"&gt;Dr. Tasha Eurich&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Who should I be getting feedback from? Find your loving critics. These are the people who want you to be successful and are willing to tell you the truth even when it’s difficult. Usually, these are the people who are not afraid to speak up in the meetings or conversations and who are willing to address the elephants in the room.&lt;/p&gt;

&lt;p&gt;Learn more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=NVPxmz_PvUw"&gt;Learning to be awesome at anything you do, including being a leader | Tasha Eurich | TEDxMileHigh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=tGdsOXZpyWE"&gt;Increase your self-awareness with one simple fix | Tasha Eurich | TEDxMileHigh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=9BeDd537piE"&gt;How to Deliver Employee Feedback Effectively by Tasha Eurich&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=DbWUa5kbh6Y"&gt;Keynote Topic: Becoming a Future Ready Leader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=KTfEmZ4l5Ss"&gt;Building Trust as a Leader by Tasha Eurich&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10. How to Embrace Failure
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.kristenhadeed.com/"&gt;Kristen Hadeed&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The best thing you can do as a leader is to normalize failure, to make it something comfortable to talk about. As long as we’re learning from it and doing it differently, it’s not a failure, we’re learning”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When failures appear ask yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did I learn at this moment? What is the lesson?&lt;/li&gt;
&lt;li&gt;What will I do next time if I’m confronted with a similar situation? How will I handle it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Create a “Failure Resumé”, add all the failures inside of it to understand what are the recurring mistakes you are doing and work to discover the lesson to not repeat them. This exercise could be done with your team in some specific meetings. It’s an opportunity to accomplish more together and to learn and grow more together.&lt;/p&gt;

&lt;p&gt;As a leader, you must find a way or a format to make this kind of conversation comfortable because when you give yourself permission to screw up, you give the people around you permission to screw up. People feel safe, they feel safe to raise their hand and say, “I need help.”&lt;/p&gt;

&lt;h3&gt;
  
  
  11. How to Stay Out of the Drama
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.realitybasedleadership.com/"&gt;Cy Wakeman&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The average person spends two and a half hours a day in drama, so that’s 861 hours per year.&lt;/p&gt;

&lt;p&gt;Cy Wakeman discovered that most people came with the same most common issues. Most people had the same most common excuses. And most people had the same issue. They didn’t understand how their mind worked. And they didn’t understand how reality worked.&lt;/p&gt;

&lt;p&gt;Leadership is about teaching people how their mind works so they don’t get played by their ego, and how the world works so they stop arguing with reality.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“You don’t need to fix the person. It’s not about your advice. You need to remove from the person anything that’s not part of their high self. You need to remove the drama. You need to remove that which isn’t innovative, collaborative, and accountable, and engaged. And the way you do that is through self-reflection. It is the ultimate drama diffuser.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Learn more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Xf13xhh4diM"&gt;How to Reduce Workplace Drama as a New Leader | Life’s Messy, Live Happy S2E11&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=ddHkrGHQJMs"&gt;My Favorite Self-Reflection Questions For Getting Out of Drama&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Time to integrate the knowledge&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;: Learning = Attention + Active Engagement + Error Feedback + Consolidation&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  12. How to Be Optimistic
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/asheeshadvani"&gt;Asheesh Advani&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is possible to learn optimism by showing gratitude. The literature on optimism and how you learn optimism, talks about the importance of showing gratitude on a regular basis and it is not about just doing it, it’s about how you do it.&lt;/p&gt;

&lt;p&gt;Find every day, in the morning, three things that you are grateful for. This exercise forces you to take neutral things and make them positive and this behavior allow you to be resilient and get through all the challenges you will face during that day.&lt;/p&gt;

&lt;h3&gt;
  
  
  13. How to Make it Easier
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/lisacummings"&gt;Lisa Cummings&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A tool that could be used in the moments where people aren’t on the same page, to see them in a different light is “Notice what works”. This tool is about forcing yourself to believe that they are coming from a place of positive intent. Work to identify the real intent behind that behavior.&lt;/p&gt;

&lt;p&gt;You could start using this tool with yourself and focus to notice one thing about you that works really well, and then set out to use it more this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;What’s something that seems to come easy for you?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;What’s something that seems to bring you energy when you do it?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  14. How to Pay Attention
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/austinkleon"&gt;Austin Kleon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Austin encourages to keep a pocket notebook and he highlights 3 main reasons for this decision:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It’s a good place to have bad ideas&lt;/strong&gt;  — having good ideas involve also first having some bad ones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A notebook is a way to pay attention to your life &lt;/strong&gt; — it helps you to be present, it does not distract you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keeping a notebook helps you pay attention to what you pay attention to&lt;/strong&gt;  — it helps you to identify and note patterns and things that are important for you and from which latter one you could bring them in your work or life.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  15. How to Begin Again
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.whitneyjohnson.com/"&gt;Whitney Johnson&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whitney shares a framework that could help you to know when it’s time to start something new. This framework is called &lt;strong&gt;“S Curve of Learning”&lt;/strong&gt; and it involves 3 areas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Low end&lt;/strong&gt; : the launch point when you may feel overwhelmed and growth may feel slow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sweet spot&lt;/strong&gt; : you know enough, but not too much&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High end&lt;/strong&gt; : you are a master; at this moment if you don’t jump to a different experience your plateau could become a precipice. So it’s time to start something new.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  16. How to Give Advice
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/jimknight99"&gt;Jim Knight&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jim talks about &lt;strong&gt;“dialogical coaching”&lt;/strong&gt; and he emphasizes that there are 2 different approaches in coaching:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the coachee does not have enough experience the directive approach is more appropriate to be used&lt;/li&gt;
&lt;li&gt;If the coachees must make a decision then the dialogical approach is the perfect option&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The author recommends 3 books about dialogical coaching&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Peter Senge’s book, “The Fifth Discipline&lt;/em&gt;” — when we engage in dialogue, we are smarter together than we are on our own&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Paulo Freire’s book, “Pedagogy of the Oppressed” &lt;/em&gt;— there are 3 conditions for dialogue which he articulates pretty beautifully: humility, faith, and love&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;William Isaac’s book, “Dialogue: The Art Of Thinking Together” &lt;/em&gt;— dialogue is balancing telling with asking. Share ideas more like questions than statements and don’t forget to ask permission: “Would it be okay with you If I shared some things I’m thinking about this?”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  17. How to Be Clear
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ericadhawan.com/"&gt;Erica Dhawan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Erica explains how we can communicate clear messages by answering at 4 different questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Am I clear about what I need from my team or the other person?&lt;/li&gt;
&lt;li&gt;Did I include the right people in the message?&lt;/li&gt;
&lt;li&gt;Is this the right channel for this discussion?&lt;/li&gt;
&lt;li&gt;Am I intentional about what I needed and expect in a response?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope you will find useful info inside of these notes📝. Happy reading! 🤓😊&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2021/05/14/mbs-works-the-year-of-living-brilliantly/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on May 14, 2021.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>management</category>
      <category>teamwork</category>
      <category>wellbeing</category>
      <category>leadership</category>
    </item>
    <item>
      <title>Management Ideas from Harvard Business Review</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Mon, 19 Apr 2021 09:00:00 +0000</pubDate>
      <link>https://forem.com/magdamiu/management-ideas-from-harvard-business-review-3mh4</link>
      <guid>https://forem.com/magdamiu/management-ideas-from-harvard-business-review-3mh4</guid>
      <description>&lt;p&gt;This article is about 3 topics discovered in &lt;a href="https://store.hbr.org/product/hbr-s-10-must-reads-2020-paperback-ebook/1090BN"&gt;&lt;em&gt;“HBR’s 10 Must Reads 2020 : The Definitive Management Ideas of the Year from Harvard Business Review”&lt;/em&gt;&lt;/a&gt;. This book is an awesome collection of articles with ideas, insights, and best practices from the management and leadership areas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--deYJiKO8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/500/0%2Aj9CI8diGEWAJtPHW" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--deYJiKO8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/500/0%2Aj9CI8diGEWAJtPHW" alt="" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  📰 “The Surprising Power of Questions”
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;by Alison Wood Brooks and Leslie K. John&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When managing people it’s about collaboration and getting updates. One of the skills necessary to unlock the values in your team or organization is the ability to ask powerful questions. By asking questions we get an entire set of advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;enforce the exchange of ideas between team members&lt;/li&gt;
&lt;li&gt;challenge their ideas&lt;/li&gt;
&lt;li&gt;involve learning and engagement&lt;/li&gt;
&lt;li&gt;build trust among team members&lt;/li&gt;
&lt;li&gt;involve innovation and creativity&lt;/li&gt;
&lt;li&gt;improve emotional intelligence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most people usually don’t understand how beneficial is to ask questions. Based on researches when people are engaged in a conversation they doing it for 2 different reasons: &lt;strong&gt;information exchange (learning)&lt;/strong&gt; or &lt;strong&gt;impression management (liking)&lt;/strong&gt; and by asking questions we could achieve both of these purposes.&lt;/p&gt;

&lt;p&gt;Other than asking a lot of questions it is important to use the right type and to address it using an adequate tone . In terms of questions types we have five different categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❓introductory questions — &lt;em&gt;“How are you?”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;❓mirror questions — &lt;em&gt;“I’m fine. How are you?”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;❓&lt;/strong&gt; full-switch questions — ones that change the topic entirely&lt;/li&gt;
&lt;li&gt;❓follow-up questions — ones that solicit more information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;em&gt;follow-up questions&lt;/em&gt; have super powers because they help us to show to our conversation partner that we care, we are there to listen and want to learn more about that specific topic.&lt;/p&gt;

&lt;h4&gt;
  
  
  📰”Strategy Needs Creativity”
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;by Adam Brandenburger&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Strategic thinking is an essential component of leadership and this article is about building a strategy based on &lt;a href="http://adambrandenburger.com/wp/wp-content/uploads/2018/07/snc-07-06-18.pdf"&gt;four creativity-enhancing tools&lt;/a&gt; or 4C’s map:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contrast &lt;/strong&gt; — identify and challenge the assumptions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify the assumptions that underlie conventional thinking in building your product&lt;/li&gt;
&lt;li&gt;Think about what might be gained by proving one or more of them false&lt;/li&gt;
&lt;li&gt;Deliberately disturb an aspect of your normal work pattern to break up ingrained assumptions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Combination &lt;/strong&gt; — according to Steve Jobs creativity is “just connecting things”&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Form groups with diverse expertise and experience to have multiple perspectives and brainstorm new combinations of products and services&lt;/li&gt;
&lt;li&gt;Look for ways to coordinate with providers of complementary products&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Constraint &lt;/strong&gt; — transform limitations in strengths&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;List the “incompetencies” and test if they can be turned in strengths&lt;/li&gt;
&lt;li&gt;Impose some constraints to encourage people to find new ways of thinking and working&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Context &lt;/strong&gt; — identify similar problems solved in an entirely different context and collect the insights&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find people from other industries, explain to them your challenges or your product and they will bring a fresh perspective from a different context&lt;/li&gt;
&lt;li&gt;Engage with lead users, extreme users, and innovation hotspots&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wCpUipqc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/549/0%2A0m6be4grZfd62rIv" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wCpUipqc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/549/0%2A0m6be4grZfd62rIv" alt="" width="549" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📰”What Most People Get Wrong about Men and Women”
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;by Catherine H. Tinsley and Robin J. Ely&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Meta-analyses show that, on average, men and women are far more similar in their inclinations, attitudes, and skills than popular opinion would have us believe.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://en.wikipedia.org/wiki/Meta-analysis#:~:text=A%20meta%2Danalysis%20is%20a,have%20some%20degree%20of%20error."&gt;meta-analysis&lt;/a&gt; is a statistical technique used to combine the results of many studies, providing a more reliable basis for drawing conclusions for research.&lt;/p&gt;

&lt;p&gt;This truth matters a lot because too many managers try to “fix” women or accommodate their supposed differences, and this approach does not work. Companies must instead address the organizational conditions that lead to lower rates of retention and promotion for women.&lt;/p&gt;

&lt;p&gt;An alternative approach to better understand how women experience the workplace consists in four steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Question the narrative&lt;/strong&gt; : be curious, work to identify the stereotypes behind your practices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate a plausible alternative explanation&lt;/strong&gt; : consider other factors that might explain the gender gap in the workplace&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Change the context and asses the results&lt;/strong&gt; : change workplace conditions based on the things discovered on the previous steps and measure the results&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Promote continual learning&lt;/strong&gt; : never stop challenging assumptions and sharing learning to create a culture in which all employees can reach their full potential&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The authors of the article affirm that &lt;em&gt;“The solution to women’s lagged advancement is not to fix women or their managers but to fix the conditions that undermine women and reinforce gender stereotypes.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2021/04/19/management-ideas-from-harvard-business-review/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on April 19, 2021.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>diversity</category>
      <category>creativity</category>
      <category>strategy</category>
    </item>
    <item>
      <title>Software Architecture Methodology</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Mon, 22 Feb 2021 06:00:00 +0000</pubDate>
      <link>https://forem.com/magdamiu/software-architecture-methodology-5ei5</link>
      <guid>https://forem.com/magdamiu/software-architecture-methodology-5ei5</guid>
      <description>&lt;p&gt;As developers, we are focused on solving problems. And these problems exist in the space we call software development. The main challenge in this domain is to develop software with the right quality levels. So here comes the concept of Software Architecture which helps us to build a bridge between the problem space and the solution space.&lt;/p&gt;

&lt;p&gt;Being a technical leader or manager you may think that the architecture is the job of the architect, but to truly understand the big picture, and to guide your team to achieve the mission of the product you all build, this aspect is mandatory to be on your to-do list, not just on your team’s list.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Software architecture is the fundamental organization of a system embodied in its elements, relationships, and in the principles of its design and evolution.”&lt;/em&gt; [IEEE Std. 42010–2011]&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The shared understanding that the expert developers have of the system design. Architecture is about the important stuff. Whatever that is.”&lt;/em&gt; [Ralph Johnson, one of the authors of “Design Patterns: Elements of Reusable Object-Oriented Software”, GOF]&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AvbQ3nsn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2Ar7HpKhInxJVFHFHj" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AvbQ3nsn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2Ar7HpKhInxJVFHFHj" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📑 &lt;strong&gt;Step 0: setup the context for defining the Software Architecture&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A system is part of a context, it has a mission and roles. The roles involved in defining an architecture are:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stakeholders&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9SjfiieY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AEjlYllo34p7agK3NyqY8tw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9SjfiieY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AEjlYllo34p7agK3NyqY8tw.png" alt="" width="880" height="953"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architect&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create, communicate and maintain an architecture plan&lt;/li&gt;
&lt;li&gt;Find the right balance between business objectives + technology + people&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📑 &lt;strong&gt;Step 1: Inception and Identification of Quality Attribute Requirements&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Main activities&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify stakeholders and prioritize them&lt;/li&gt;
&lt;li&gt;Identify business objectives&lt;/li&gt;
&lt;li&gt;Prioritize business objectives&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To identify the stakeholders the RACI matrix is a good tool to use&lt;/p&gt;

&lt;p&gt;RACI Matrix for all stakeholders&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Responsible&lt;/strong&gt; (the person who does the work to achieve the task and is responsible for getting the work done or decision made);&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accountable&lt;/strong&gt; (the person who is accountable for the correct and thorough completion of the task);&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consulted&lt;/strong&gt; (the people who provide information for the project and with whom there is two-way communication);&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Informed&lt;/strong&gt; (the people who are kept informed of progress and with whom there is one-way communication).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📑 &lt;strong&gt;Step 2: Identification of Architecturally Significant Requirements (ASR)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;ASRs&lt;/strong&gt; are a combination of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Major functional requirements (FR)&lt;/li&gt;
&lt;li&gt;Quality Attribute Requirements (NFR — non-functional requirements)&lt;/li&gt;
&lt;li&gt;Life-cycle requirements&lt;/li&gt;
&lt;li&gt;And constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use Cases generate Functional Requirements.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;constraints&lt;/strong&gt; ask the next questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many requests per month?&lt;/li&gt;
&lt;li&gt;How many requests per second (they may volunteer it or make you do the math)?&lt;/li&gt;
&lt;li&gt;Estimate reads vs. writes percentage.&lt;/li&gt;
&lt;li&gt;How much data are written per second?&lt;/li&gt;
&lt;li&gt;Total storage required over 5 years.&lt;/li&gt;
&lt;li&gt;How much data reads per second?&lt;/li&gt;
&lt;li&gt;Keep the 80/20 rule in mind when estimating.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quality Attribute Scenarios&lt;/strong&gt; generate Quality Attribute Requirements&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Based on them we get Quality Attributes&lt;/li&gt;
&lt;li&gt;Quality Attribute Scenario structure (Source + Stimulus* + Artifact + Environment* + Response*)&lt;/li&gt;
&lt;li&gt;Response measure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Types to consider&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use cases — anticipated uses of the system&lt;/li&gt;
&lt;li&gt;Growth — anticipated changes to the system&lt;/li&gt;
&lt;li&gt;Exploratory — unanticipated stresses to the system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--64Li4f4l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2APHOaq5TF6nZEZrp_" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--64Li4f4l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2APHOaq5TF6nZEZrp_" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quality Attributes samples:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Availability:&lt;/strong&gt; Does the mechanism have to support the failure of the external entity? Does the mechanism have to guarantee delivery?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Is the communication with the external entity sensitive to system latency or throughput?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Is the communication with the external entity subject to a Threat?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modifiability:&lt;/strong&gt; Will the external entity change? Will the information being communicated change?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testability:&lt;/strong&gt; How will the communication be tested? Can the data be played back for testing?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usability:&lt;/strong&gt; If the external entity is a user, are any of the usability crosscutting scenarios relevant?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability:&lt;/strong&gt; Ensures the integrity and consistency of the application and all its transactions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resilience: T&lt;/strong&gt; he ability to bounce back from failure to continue to offer some level of performance (possibly less than original)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safety:&lt;/strong&gt; Ability to avoid entering states that cause or lead to damage, injury, or loss and to recover and limit the damage when it does enter into bad states&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitor-ability:&lt;/strong&gt; The ability of the operations staff to monitor the system while it is executing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Portability: H&lt;/strong&gt; ow easy software built to run on one platform can be changed to run on another&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interoperability:&lt;/strong&gt; The degree to which two or more systems can usefully exchange information via interfaces in a particular context&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extensibility:&lt;/strong&gt; The ability to add additional functionality or enhance existing functionality without impacting existing functionality&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evolution:&lt;/strong&gt; The ability of the system to be flexible in the face of inevitable change after development&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manageability:&lt;/strong&gt; system monitoring of the QA requirements and the ability to change the system configuration to improve the QA dynamically without changing the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maintainability:&lt;/strong&gt; the ability to correct flaws in the existing functionality without impacting other components of the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PASSME&lt;/strong&gt; acronym for Non-Functional Requirements (NFRs):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Availability&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Maintainability&lt;/li&gt;
&lt;li&gt;Extensibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;QAW (Quality Attribute Workshop)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Input&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stakeholders &amp;amp; Architect&lt;/li&gt;
&lt;li&gt;3–5 Business Goals from the prioritized list from part 1&lt;/li&gt;
&lt;li&gt;Architectural Plan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Output&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refined Quality Attribute Scenarios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Steps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;QAW Presentation and Introductions&lt;/li&gt;
&lt;li&gt;Business/Programmatic Presentation&lt;/li&gt;
&lt;li&gt;context + constraints + plan for development&lt;/li&gt;
&lt;li&gt;Architectural Plan Presentation (as it is at this moment)&lt;/li&gt;
&lt;li&gt;Identification of Architectural Drivers (qualities)&lt;/li&gt;
&lt;li&gt;Scenario Brainstorming&lt;/li&gt;
&lt;li&gt;Scenario Consolidation&lt;/li&gt;
&lt;li&gt;Scenario Prioritization&lt;/li&gt;
&lt;li&gt;Scenario Refinement&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3i1RU-Of--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AdWgdKVOVk6LhU5gy" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3i1RU-Of--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AdWgdKVOVk6LhU5gy" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📑 &lt;strong&gt;Step 3: Practice of Designing Architectures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Concepts&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Design of a system&lt;/strong&gt; = sequence of decisions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tactic&lt;/strong&gt; = design decision that is influential in the control of a quality attribute response&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pattern&lt;/strong&gt; = { context + problem + solution (+ rationale) }; A &lt;strong&gt;pattern&lt;/strong&gt; is a prepackaged solution to a recurring problem that resolves multiple forces. Patterns package tactics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Classification of patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architectural patterns — Express a fundamental structural organization schema for software systems&lt;/li&gt;
&lt;li&gt;Design patterns — Solves a general design problem. Normally local influence&lt;/li&gt;
&lt;li&gt;Idioms — Patterns specific to a programming language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Style&lt;/strong&gt; = { design principles + patterns (+ types of architectural elements / relationships) }&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier&lt;/strong&gt; is a physical unit, where the code/process runs. E.g.: client, application server, database server;&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;layer&lt;/strong&gt; is a logical unit, how to organize the code. E.g.: presentation (view), controller, models, repository, data access.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Types of decisions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allocation of functionality&lt;/li&gt;
&lt;li&gt;Data and object model&lt;/li&gt;
&lt;li&gt;Communication model&lt;/li&gt;
&lt;li&gt;Management of resources&lt;/li&gt;
&lt;li&gt;Binding time decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jASaFTV_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/569/0%2AdT4qvlBu6Zllkqtj" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jASaFTV_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/569/0%2AdT4qvlBu6Zllkqtj" alt="" width="569" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Defining a software architecture based on the quality attributes is called &lt;strong&gt;Attribute-Driven Design&lt;/strong&gt; and it is actually a recursive decomposition process: at each stage tactics and patterns are chosen to satisfy a set of quality attribute scenarios.&lt;/p&gt;

&lt;p&gt;Input:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quality attribute requirements&lt;/li&gt;
&lt;li&gt;Functional requirements&lt;/li&gt;
&lt;li&gt;Constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Overall structuring decisions&lt;/li&gt;
&lt;li&gt;Interconnection and coordination mechanisms&lt;/li&gt;
&lt;li&gt;Application of patterns and tactics to specific parts of architecture&lt;/li&gt;
&lt;li&gt;Explicit achievement of quality attribute requirements&lt;/li&gt;
&lt;li&gt;NOT detailed interfaces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Step 1:&lt;/strong&gt; Confirm there is sufficient requirements information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 2:&lt;/strong&gt; Choose part of the system to decompose&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 3:&lt;/strong&gt; Prioritize requirements and identify architectural drivers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 4:&lt;/strong&gt; Choose design concept — patterns, styles, tactics — that satisfies the architectural drivers associated with the part of the system we’ve chosen to decompose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 5:&lt;/strong&gt; Instantiate architectural elements and allocate functionality&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 6:&lt;/strong&gt; Merge designs completed thus far&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 7:&lt;/strong&gt; Allocate remaining functionality&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 8:&lt;/strong&gt; Define interfaces for instantiated elements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 9:&lt;/strong&gt; Verify and refine requirements and make them constraints for instantiated elements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 10:&lt;/strong&gt; Repeat steps 2 through 9 for the next part of the system you wish to decompose&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📑 &lt;strong&gt;Step 4: Document the Architecture and validate the design decisions&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Architectural Description&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A system has 1 or many stakeholders&lt;/li&gt;
&lt;li&gt;A system addresses the needs of the stakeholders&lt;/li&gt;
&lt;li&gt;A system has an architecture&lt;/li&gt;
&lt;li&gt;An architecture can be documented by one or many architectural descriptions (a collection of products to document an architecture)&lt;/li&gt;
&lt;li&gt;Architectural description documents architecture for the stakeholders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rRWM8QLi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/589/0%2AkNpHFIZijlZWCC6Z" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rRWM8QLi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/589/0%2AkNpHFIZijlZWCC6Z" alt="" width="589" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Represents structural aspects of an architecture&lt;/li&gt;
&lt;li&gt;Illustrates how the architecture addresses concerns held by one or many stakeholders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Viewpoint&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defines the perspective from which a view is taken. More specifically, a viewpoint defines: how to construct and use a view&lt;/li&gt;
&lt;li&gt;Defines stakeholders and their concerns&lt;/li&gt;
&lt;li&gt;Defines template models&lt;/li&gt;
&lt;li&gt;Defines design and document guidelines&lt;/li&gt;
&lt;li&gt;Defines common problems and pitfalls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Viewpoint sets:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;4C Model by Simon Brown&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;li&gt;Container&lt;/li&gt;
&lt;li&gt;Component&lt;/li&gt;
&lt;li&gt;Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Kruchten (4 + 1 )&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logical View = functionality&lt;/li&gt;
&lt;li&gt;Development View = implementation&lt;/li&gt;
&lt;li&gt;Physical View = physical layer necessary to deploy the app&lt;/li&gt;
&lt;li&gt;Process View = sequence diagrams, system processes&lt;/li&gt;
&lt;li&gt;Use Case View = or scenarios (sequences of interactions between objects and processes)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Rozanski &amp;amp; Woods&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;is an extension and refinement of Kruchten’s set&lt;/li&gt;
&lt;li&gt;keeps Development viewpoint&lt;/li&gt;
&lt;li&gt;renames and evolved:&lt;/li&gt;
&lt;li&gt;Logical → Functional&lt;/li&gt;
&lt;li&gt;Process → Concurrency&lt;/li&gt;
&lt;li&gt;Physical → Deployment&lt;/li&gt;
&lt;li&gt;adds Informational and Operational&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Representation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functional viewpoint = functional capabilities&lt;/li&gt;
&lt;li&gt;Information viewpoint (new) = information flow&lt;/li&gt;
&lt;li&gt;Concurrency viewpoint (new) = inter-process communication&lt;/li&gt;
&lt;li&gt;Development viewpoint = soft dev. process&lt;/li&gt;
&lt;li&gt;Deployment viewpoint = hardware + network&lt;/li&gt;
&lt;li&gt;Operational viewpoint(new) = when app is running in prod (backup, restore, update, migration)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3jwi5J1F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/637/0%2AhDCFrpBwPjBq_AO7" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3jwi5J1F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/637/0%2AhDCFrpBwPjBq_AO7" alt="" width="637" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📑 &lt;strong&gt;Step 5: Software Architecture Analysis and Assessment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Evaluation Techniques:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Questioning techniques&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use questionnaires, checklists, scenarios to investigate the way architecture addresses its quality&lt;/li&gt;
&lt;li&gt;requirements (e.g. ATAM, CBAM)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Measuring techniques&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;rely on quantitative measures by using a measurement tool&lt;/li&gt;
&lt;li&gt;measure architecture’s coupling, cohesiveness, inheritance depth, etc&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Review workshop techniques&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;peer review sessions at the fixed allocated time, just as code can be peer-reviewed (e.g. inspection, assessment)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Validating techniques&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;comparing reverse-engineered requirements (designs) with original requirements (designs)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ATAM&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ATAM = Architecture Tradeoff Analysis Method&lt;/li&gt;
&lt;li&gt;The purpose of ATAM is: to assess the consequences of architectural decisions in light of quality attribute requirements and business goals.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WPml3hfl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/735/0%2AlL-tDLX4i4rmyFga" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WPml3hfl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/735/0%2AlL-tDLX4i4rmyFga" alt="" width="735" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5xVAxlP0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/638/0%2AL3GDgW24egEOvSen" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5xVAxlP0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/638/0%2AL3GDgW24egEOvSen" alt="" width="638" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Concepts:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Risk&lt;/strong&gt; = a potentially problematic architectural decision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-risks&lt;/strong&gt; = good architectural decisions that are frequently implicit in the architecture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitivity point&lt;/strong&gt; = a place in the architecture that significantly affects whether a particular quality attribute response is achieved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tradeoff&lt;/strong&gt; = a property that affects more than one attribute and is a sensitivity point for more than one attribute.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bottlenecks and tradeoffs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Testing the performance&lt;/li&gt;
&lt;li&gt;load testing — scalability&lt;/li&gt;
&lt;li&gt;stress testing — breaking point&lt;/li&gt;
&lt;li&gt;soak testing ( testing with a typical production load for an extended time) — leaks in resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FzlG2_pi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2A3qpjFViHSIxa-iAS.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FzlG2_pi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2A3qpjFViHSIxa-iAS.png" alt="" width="880" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bZttEPKC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2Akt1eT9UEhn4Wvfa-" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bZttEPKC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2Akt1eT9UEhn4Wvfa-" alt="" width="880" height="647"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--myQSvJ7z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/793/0%2ACdFhpRxLqGbzViuJ" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--myQSvJ7z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/793/0%2ACdFhpRxLqGbzViuJ" alt="" width="793" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Post-review activities — CBAM&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost-Benefit Analysis Method — CBAM&lt;/li&gt;
&lt;li&gt;The aim of the CBAM is to: explicitly associate costs, benefits, and uncertainty with architectural decisions, as a means of optimizing the choice of such decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The process does not stop here. It is a loop.🔄 After the first version of the architecture is done the development begins and each time a new feature is required the process starts from the beginning. Software development, even if we talk about architecture or implementation, is a team effort, and it is helpful to have multiples perspectives to identify the blind spots and also to bring new ideas and approaches.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 &lt;strong&gt;Learn more&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=DngAZyWMGR0"&gt;Making Architecture Matter — Martin Fowler Keynote&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/x2-rSnhpw0g"&gt;Visualising software architecture with the C4 model — Simon Brown, Agile on the Beach 2019&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/llGgO74uXMI"&gt;Core Design Principles for Software Developers by Venkat Subramaniam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/nZcLHkORdHE"&gt;Do not walk away from Complexity, Run — Venkat Subramaniam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/QeKheNfO3Yg"&gt;Qualities of a Highly Effective Architect Keynote by Venkat Subramaniam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://martinfowler.com/architecture/"&gt;Software Architecture Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎓 &lt;strong&gt;Summary&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Design and analysis of architectures are mirror activities, and documenting complements them and makes effective. To do them well we need: active stakeholder involvement, clear characterisations and prioritizations of business goals and architectural drivers, an understanding of tactics and patterns, methods that keep we focused.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2021/02/22/software-architecture-methodology/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on February 22, 2021.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>interview</category>
      <category>designsystems</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Android Learning Plan</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Sat, 09 Jan 2021 17:57:11 +0000</pubDate>
      <link>https://forem.com/magdamiu/android-learning-plan-1j3n</link>
      <guid>https://forem.com/magdamiu/android-learning-plan-1j3n</guid>
      <description>&lt;p&gt;I am often asked how to start learning Android, or how to become an Android developer. So I was thinking that a blog post that will answer these questions might be a good idea.&lt;/p&gt;

&lt;p&gt;Each one of us has our style of learning. So first of all it is important to identify your &lt;strong&gt;VARK learning style&lt;/strong&gt; and after that check the dedicated resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AbgeTAw9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2A2jx0_wGR0we6nuzb" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AbgeTAw9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2A2jx0_wGR0we6nuzb" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VARK learning styles&lt;/strong&gt;  are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;V&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;isual&lt;/em&gt;: you prefer the use images, graphics, schemas, videos to access and understand new information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;A&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;uditory&lt;/em&gt;: you understand new content through listening&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;R&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;ead &amp;amp; Write&lt;/em&gt;: you learn by reading through words and take a lot of notes about new information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;K&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;inesthetic&lt;/em&gt;: you learn new concepts and skills through hands-on experiences&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href="https://vark-learn.com/strategies/multimodal-strategies/"&gt;studies&lt;/a&gt;estimate that between &lt;em&gt;50 to 70%&lt;/em&gt; of the population prefer a &lt;em&gt;combination of several different styles&lt;/em&gt; of learning. So choose your matching combination. 🤓&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅Programming Basics
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Visual &amp;amp; Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/version-control-with-git--ud123"&gt;How to use Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/writing-readmes--ud777"&gt;How to write READMEs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/object-oriented-programming-in-java--ud283"&gt;Object Oriented Programming in Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://software%20debugging/"&gt;Software Debugging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/software-architecture-design--ud821"&gt;Software Architecture and Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/software-development-process--ud805"&gt;Software Development Process: From Idea to Product&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://podcast.mgechev.com/"&gt;Programming podcast with Minko Gechev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://maintainable.fm/"&gt;Maintainable podcast by Robby Russell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Read &amp;amp; Write
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/"&gt;Official documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://android-developers.googleblog.com/"&gt;Official blog for Android development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://refactoring.guru/design-patterns"&gt;Design Patterns — Refactoring Guru&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sourcemaking.com/design_patterns"&gt;Design Patterns — Source Making&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.goodreads.com/book/show/58128.Head_First_Design_Patterns"&gt;Head First Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clean%20code:%20A%20Handbook%20of%20Agile%20Software%20Craftsmanship/"&gt;Clean Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.goodreads.com/book/show/4102.Practices_of_an_Agile_Developer"&gt;Practices of an Agile Developer: Working in the Real World by Venkat Subramaniam&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Kinesthetic
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kata-log.rocks/starter"&gt;Coding Katas for Starters&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅Android Basics
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Visual &amp;amp; Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/how-to-install-android-studio--ud808"&gt;How to install Android Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/gradle-for-android-and-java--ud867"&gt;Gradle for Android and Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/kotlin-bootcamp-for-programmers--ud9011"&gt;Kotlin Bootcamp for Programmers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/kotlin-for-android-developers--ud888"&gt;Kotlin for Android developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012"&gt;Developing Android Apps using Kotlin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/firebase-in-a-weekend-by-google-android--ud0352"&gt;Firebase in a Weekend — Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/c/AndroidDevelopers/playlists?view=50&amp;amp;sort=dd&amp;amp;shelf_id=9"&gt;Android OS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fragmentedpodcast.com/category/episodes/learning-kotlin/"&gt;Learning Kotlin by Fragmented Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://talkingkotlin.com/"&gt;Talking Kotlin — podcast from JetBrains&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Read &amp;amp; Write
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://magdamiu.com/category/android-fundamentals/"&gt;Intro articles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kotlinlang.org/"&gt;Kotlin official documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://magdamiu.com/category/kotlin/"&gt;Kotlin articles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Kinesthetic
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codelabs.developers.google.com/?cat=Android"&gt;Android Codelabs done by Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://play.kotlinlang.org/hands-on/overview"&gt;Kotlin Hands-On&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://play.kotlinlang.org/koans/overview"&gt;Kotlin Koans&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅Material Design
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Visual &amp;amp; Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/rapid-prototyping--ud723"&gt;Rapid Prototyping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/material-design-for-android-developers--ud862"&gt;Material Design for Android developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/ux-design-for-mobile-developers--ud849"&gt;UX Design for Mobile Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UClKO7be7O9cUGL94PHnAeOA"&gt;Google Design Official Channel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://design.google/library/podcasts/"&gt;Google Design Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Read &amp;amp; Write
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://material.io/"&gt;Official website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/guide/topics/ui/look-and-feel"&gt;Official documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Kinesthetic
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/material-components/material-components-android"&gt;Official code samples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅Testing in Android
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Visual &amp;amp; Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/software-testing--cs258"&gt;How to Make Software Fail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/gradle-for-android-and-java--ud867"&gt;Test apps on Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLaC2ibKkxGSJGBsIuYyyTGEq2gjTrUULX"&gt;Testing in Android&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fragmentedpodcast.com/episodes/183/"&gt;Fragmentd podcast episodes about testing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Read &amp;amp; Write
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/training/testing"&gt;Official documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Kinesthetic
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics#0"&gt;Android Testing Codelab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅Android Advanced
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Visual &amp;amp; Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/advanced-android-with-kotlin--ud940"&gt;Advanced Android with Kotlin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/advanced-android-app-development--ud855"&gt;Advanced Android App Development: Productionize and Publish Your Apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/android-performance--ud825"&gt;Android Performance: Optimizing Apps for Speed and Usability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=LmkKFCfmnhQ&amp;amp;list=PLWz5rJ2EKKc9mxIBd0DRw9gwXuQshgmn2"&gt;Android Jetpack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/c/AndroidDevelopers/playlists?view=50&amp;amp;sort=dd&amp;amp;shelf_id=1"&gt;Modern Android Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/c/AndroidDevelopers/playlists?view=50&amp;amp;sort=dd&amp;amp;shelf_id=4"&gt;Kotlin for Android&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Auditory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://androidbackstage.blogspot.com/"&gt;Android Developers Backstage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Read &amp;amp; Write
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://magdamiu.com/category/android-advanced/"&gt;Advanced articles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Kinesthetic
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/android/architecture-components-samples"&gt;Android Architecture Components samples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this learning plan will help you to start or continue your journey in the Android world.&lt;/p&gt;

&lt;p&gt;If you want to keep in touch with the Android community and learn more 📚 you could check this &lt;a href="https://magdamiu.com/2019/09/22/lets-talk-android/"&gt;article&lt;/a&gt;with a range of resources about Android development. 😉&lt;/p&gt;

&lt;p&gt;Thank you for reading! 🙏 🤗 🥰 You could follow me on: &lt;a href="https://twitter.com/MagdaMiu"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2021/01/09/android-learning-plan/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on January 9, 2021.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>gde</category>
      <category>learning</category>
      <category>androiddevelopment</category>
    </item>
    <item>
      <title>RecyclerView in Android</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Mon, 28 Dec 2020 22:02:02 +0000</pubDate>
      <link>https://forem.com/magdamiu/recyclerview-in-android-eeb</link>
      <guid>https://forem.com/magdamiu/recyclerview-in-android-eeb</guid>
      <description>&lt;p&gt;&lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView"&gt;RecyclerView&lt;/a&gt; is a ViewGroup that helps us to display a scrollable list of elements. It is one of the most used UI components in the Android apps and it involves having a data source, an adapter, and the RecyclerView. Other than displaying the content, RecyclerView is efficiently reusing the views that have scrolled off the screen by recycling them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YuClEKd4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2Al-yAtDTbDxJ1dVlv" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YuClEKd4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2Al-yAtDTbDxJ1dVlv" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📃Components Overview
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Data source — list of objects that could be obtained from a local database, or as a result of a http request, or even it could be a list with some predefined values.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/guide/topics/ui/layout/recyclerview#java"&gt;RecyclerView&lt;/a&gt; is a scrolling list for list items and to have access at it we must add some dependencies in the gradle file&lt;/li&gt;
&lt;li&gt;Layout for one item of data — XML file&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.LayoutManager"&gt;Layout manager&lt;/a&gt; handles the organization of UI components in a view (there are 3 predefined ways to display the items)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder"&gt;View holder&lt;/a&gt; has view information for displaying one item&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter"&gt;Adapter&lt;/a&gt; connects data to the RecyclerView&lt;/li&gt;
&lt;li&gt;Set the Adapter to the RecyclerView and we are done 🙂&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kkkgQo5j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2A7S9M5GtGQVcZCfpv" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kkkgQo5j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2A7S9M5GtGQVcZCfpv" alt="" width="880" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  LayoutManager
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eYVMlJoh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AIxZiO6CXEnsCacPX" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eYVMlJoh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AIxZiO6CXEnsCacPX" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Adapter
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;We are talking about applying the adapter design pattern as an intermediary between the source data we want to display and the view&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://refactoring.guru/design-patterns/adapter"&gt;Adapter&lt;/a&gt; is a structural design pattern that allows objects with incompatible interfaces to collaborate&lt;/li&gt;
&lt;li&gt;Responsibile to create, updade, add and delete items from the list&lt;/li&gt;
&lt;li&gt;It suppose to implement the abstract class &lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter"&gt;RecyclerView.Adapter&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ViewHolder
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Used by the adapter to prepare one item view for each element from the datasource&lt;/li&gt;
&lt;li&gt;The layout of the item is specified in an XML resource file, it’s like a 1:1 relation between the view and the element from the list of objects provided as a datasource&lt;/li&gt;
&lt;li&gt;Can have clickable elements and it is placed by the layout manager&lt;/li&gt;
&lt;li&gt;We must implement the abstract class &lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder"&gt;RecyclerView.ViewHolder&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  👩🏻‍💻Implementation steps
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Get the data by creating a new object class (data source)&lt;/li&gt;
&lt;li&gt;Add the &lt;em&gt;RecyclerView&lt;/em&gt; dependency to &lt;em&gt;app/build.gradle&lt;/em&gt; file and add &lt;em&gt;RecyclerView&lt;/em&gt; to layout&lt;/li&gt;
&lt;li&gt;Create XML layout for item&lt;/li&gt;
&lt;li&gt;Define the &lt;em&gt;LayoutManager&lt;/em&gt; in activity&lt;/li&gt;
&lt;li&gt;Extend &lt;em&gt;RecyclerView.ViewHolder&lt;/em&gt; in a separated class&lt;/li&gt;
&lt;li&gt;Extend &lt;em&gt;RecyclerView.Adapter&lt;/em&gt; in a separated class&lt;/li&gt;
&lt;li&gt;In &lt;em&gt;onCreate&lt;/em&gt; of activity, create a &lt;em&gt;RecyclerView&lt;/em&gt; with adapter and layout manager&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To cover the implementation steps we will display a list of emails. The data source is hardcoded, right now we are focusing on learning how to use RecyclerView.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Get the data by creating a new object class (data source)&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 2: Add the &lt;em&gt;RecyclerView&lt;/em&gt; dependency to &lt;em&gt;app/build.gradle&lt;/em&gt; file and add &lt;em&gt;RecyclerView&lt;/em&gt; to layout&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 3: Create XML layout for item&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 4: Define the &lt;em&gt;LayoutManager&lt;/em&gt; in activity&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 5: Extend &lt;em&gt;RecyclerView.ViewHolder&lt;/em&gt; in a separated class&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 6: Extend &lt;em&gt;RecyclerView.Adapter&lt;/em&gt; in a separated class&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 7: In &lt;em&gt;onCreate&lt;/em&gt; of activity, create a &lt;em&gt;RecyclerView&lt;/em&gt; with adapter and layout manager&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  🔔Notify the Adapter
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_s_eEDjy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AWW8aytyRig60Drfw" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_s_eEDjy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AWW8aytyRig60Drfw" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To not impact the speed of rendering the UI elements for a RecyclerView make sure that you’re not calling notifyDataSetChanged(), setAdapter(Adapter), or swapAdapter(Adapter, boolean) for small updates. [&lt;a href="https://developer.android.com/topic/performance/vitals/render#scrollable_lists"&gt;official recommendation&lt;/a&gt;] The solution is to use &lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/SortedList"&gt;SortedList&lt;/a&gt;or &lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/DiffUtil"&gt;DiffUtil&lt;/a&gt;to create minimal updates when the data source has changed.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  ✨Item decorators
&lt;/h3&gt;

&lt;p&gt;We could set dividers between the items using &lt;a href="https://developer.android.com/reference/androidx/recyclerview/widget/DividerItemDecoration.html"&gt;DividerItemDecoration&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MMaKi0Xx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/512/0%2ABA33V2XIUxWzgcBg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MMaKi0Xx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/512/0%2ABA33V2XIUxWzgcBg" alt="" width="512" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  💫Swipe to refresh
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Add a new dependency in the gradle file&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 2: Wrap the RecyclerView in a SwipeRefreshLayout&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 3: Update the code in the Adapter&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 4: Setup SwipeRefreshLayout&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ayhv4zLN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/512/0%2AQPdANwC12veFaG3c" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ayhv4zLN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/512/0%2AQPdANwC12veFaG3c" alt="" width="512" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You could check the full source code &lt;a href="https://github.com/magdamiu/RecyclerView-AndroidFundamentals"&gt;here&lt;/a&gt;. (different branches for each section)&lt;/p&gt;

&lt;h3&gt;
  
  
  📚Learn more
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/topic/performance/vitals/render#scrollable_lists"&gt;Android Vitals — Slow Rendering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/guide/topics/ui/layout/recyclerview#java"&gt;Create dynamic lists with RecyclerView&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=LqBlYJTfLP4"&gt;RecyclerView ins and outs — Google I/O 2016&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=KhLVD6iiZQs"&gt;Yigit Boyar: Pro RecyclerView&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoy and feel free to leave a comment if something is not clear or if you have questions. And if you like it please share!&lt;/p&gt;

&lt;p&gt;Thank you for reading! 🙂&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Follow me on:&lt;/strong&gt; &lt;a href="https://twitter.com/MagdaMiu"&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/a&gt; | &lt;a href="https://medium.com/@magdamiu"&gt;&lt;strong&gt;Medium&lt;/strong&gt;&lt;/a&gt; | &lt;a href="https://dev.to/magdamiu"&gt;&lt;strong&gt;Dev.to&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2020/12/29/recyclerview-android/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on December 28, 2020.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>recyclervie</category>
      <category>androidfundamental</category>
      <category>android</category>
    </item>
    <item>
      <title>Logging in Android</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Mon, 19 Oct 2020 10:30:00 +0000</pubDate>
      <link>https://forem.com/magdamiu/logging-in-android-22bm</link>
      <guid>https://forem.com/magdamiu/logging-in-android-22bm</guid>
      <description>&lt;p&gt;In Android, we are able to log info by using the static methods provided by the final class &lt;a href="https://developer.android.com/reference/android/util/Log"&gt;Log&lt;/a&gt;. This class is part of the &lt;em&gt;android.util&lt;/em&gt; package.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L6xtKtih--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2AxvtLlDkgsKZrw9rO" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L6xtKtih--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2AxvtLlDkgsKZrw9rO" alt="" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Available methods
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rOy09XL7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AD98Fr6hVyvoPo1Mk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rOy09XL7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AD98Fr6hVyvoPo1Mk.png" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Method signature
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6hfqEzxQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2Ah7AR8vb0fd9GG4hS.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6hfqEzxQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2Ah7AR8vb0fd9GG4hS.png" alt="" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we log the next messages, the result from &lt;em&gt;Logcat&lt;/em&gt; is present in the picture below.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c3BApsRi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2AYAqbqDAfgmZF7gkV" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c3BApsRi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2AYAqbqDAfgmZF7gkV" alt="" width="640" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Android Studio &amp;gt; Settings &amp;gt;&lt;/strong&gt; search &lt;em&gt;Android Logcat&lt;/em&gt; and from there we are able to customise the color of the logged messages from &lt;em&gt;Logcat&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NlLlTKeL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2A1uhT_AyT4bBsgsQ6" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NlLlTKeL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2A1uhT_AyT4bBsgsQ6" alt="" width="640" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  When and what to log?
&lt;/h3&gt;

&lt;p&gt;It is recommended to create different build flavors depending on the available server environments. For example, you could have a dedicated flavor for dev, QA, pre-prod, prod. Based on this classification also the logging strategy is changed.&lt;/p&gt;

&lt;p&gt;On the test environments is ok to log many details in order to make sure everything is working properly. In the production environment, it is recommended to log only the most relevant info in order to not affect the performance. Also, you should take care not to log sensitive data like emails, phone numbers, personal ids, and so on.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;If you want to learn more about logging you could check a dedicated episode on the &lt;a href="https://fragmentedpodcast.com/episodes/191/"&gt;Fragmented Podcast&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enjoy and feel free to leave a comment if something is not clear or if you have questions. And if you like it please share!&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2020/10/19/logging-in-android/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on October 19, 2020.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>logs</category>
      <category>androidfundamental</category>
      <category>android</category>
    </item>
    <item>
      <title>7 Steps to Technical Leadership</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Sat, 12 Sep 2020 09:00:00 +0000</pubDate>
      <link>https://forem.com/magdamiu/7-steps-to-technical-leadership-2noo</link>
      <guid>https://forem.com/magdamiu/7-steps-to-technical-leadership-2noo</guid>
      <description>&lt;p&gt;I work as a Technical Leader since 2016. During these years the most important lesson I learned is that as a servant leader my main focus should be my team because everything it’s about them, it’s not about me. Actually, my main responsibility is to set up my team members for success.&lt;/p&gt;

&lt;p&gt;The success of a product is a team effort and my role is to build, train, and lead engineers. Awesome teams build awesome products. In order to achieve this objective, it’s necessary to combine tech skills with people skills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_aEHWmT9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A3EkLL_QwI8R1otsL" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_aEHWmT9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A3EkLL_QwI8R1otsL" alt=""&gt;&lt;/a&gt;Book vector created by pch.vector — &lt;a href="http://www.freepik.com"&gt;&lt;/a&gt;&lt;a href="http://www.freepik.com"&gt;www.freepik.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recently, I found a definition about leadership on a Mozilla wiki page: “ &lt;em&gt;leadership is a refactoring job&lt;/em&gt; “. Since I used to be a full-time individual contributor as an Android developer for more than 6 years I realized that this metaphor of “refactoring” offers a really nice abstraction on defining my role. And just like when we start to work on a new project, also in leadership we should follow a process, always improve it and learn from the experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hiring
&lt;/h3&gt;

&lt;p&gt;If we are in the situation to build our team from scratch or if we must hire new members on the team a clear process should be set in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;identify the profile that you are searching for by focusing on skills, level of experience, values, team matching criteria&lt;/li&gt;
&lt;li&gt;collaborate with the HR in posting the new job and searching relevant candidates&lt;/li&gt;
&lt;li&gt;define a hiring process that is transparent for all the people involved: an interview with HR over the phone, technical interview, a project to implement at home, cultural fit interview&lt;/li&gt;
&lt;li&gt;make sure the candidate knows all the stages of the interview, the time that he/she must allocate, and update him/her about the current status and what and when should happen the next stage of the process&lt;/li&gt;
&lt;li&gt;at the end of the process offer relevant feedback and if the answer is positive and the candidate was accepted make sure he/she knows the next steps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Onboarding
&lt;/h3&gt;

&lt;p&gt;The onboarding of a new hire should start before he/she will join the team. Make sure you know when the new team member will start to work in your team and prepare an onboarding checklist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;desk and hardware setup: make sure you have an empty desk (for the offline onboarding) and relevant hardware equipment (laptop, keyboard, mouse, cables, headphones, etc). If the new team member will work remotely make sure to ship the equipment in advance&lt;/li&gt;
&lt;li&gt;access to the internal apps used by the company and used inside of the team (accounts to access the intranet, VPN access, licenses for different tools, etc)&lt;/li&gt;
&lt;li&gt;call the new hire with a few days before he/she will start to work with you in order to make him/her feel welcomed&lt;/li&gt;
&lt;li&gt;send a welcome email and an email with the agenda for the first week, with a focus on the first day&lt;/li&gt;
&lt;li&gt;setup an onboarding buddy to make the experience smooth&lt;/li&gt;
&lt;li&gt;have regular 1:1s with the new hire to check the mood and the status&lt;/li&gt;
&lt;li&gt;get feedback about the onboarding process from the new hire&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Standout performance
&lt;/h3&gt;

&lt;p&gt;Google did a research in order to discover what makes a team effective. The project was called &lt;a href="https://www.inc.com/michael-schneider/google-thought-they-knew-how-to-create-the-perfect.html"&gt;Project Aristotle&lt;/a&gt; — a tribute to Aristotle’s quote, “the whole is greater than the sum of its parts” (as the Google researchers believed employees can do more working together than alone).&lt;/p&gt;

&lt;p&gt;The standout performance or team effectiveness is correlated to affirmative answers to the next questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Structure and clarity&lt;/strong&gt; : are goals, roles, and execution plans on our team clear?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Psychological safety&lt;/strong&gt; : can we take risks on this team without feeling insecure or embarrassed?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meaning of work&lt;/strong&gt; : are we working on something that is personally important for each of us?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependability&lt;/strong&gt; : can we count on each other to do high-quality work on time?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact of work&lt;/strong&gt; : do we fundamentally believe that the work we are doing matters?&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Coaching
&lt;/h3&gt;

&lt;p&gt;Is about asking powerful questions, actively listening, trust and focus on finding a solution that will help the team member to gain awareness and clarity, and to be committed to obtaining results based on an action plan. This process could happen during the 1:1s meeting.&lt;/p&gt;

&lt;p&gt;Different conversation models could be applied in a coaching process:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/GROW_model"&gt;&lt;strong&gt;GROW Model&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;G&lt;/strong&gt; oal&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What do you want to achieve?&lt;/li&gt;
&lt;li&gt;Make sure that this is a SMART goal: one that is Specific, Measurable, Attainable, Realistic, and Time-bound.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;R&lt;/strong&gt; eality&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the current context?&lt;/li&gt;
&lt;li&gt;What is happening now?&lt;/li&gt;
&lt;li&gt;What have you done until now in order to achieve this goal?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;O&lt;/strong&gt; ptions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What options are available?&lt;/li&gt;
&lt;li&gt;What are the advantages/disadvantages of each option?&lt;/li&gt;
&lt;li&gt;What are the impediments?&lt;/li&gt;
&lt;li&gt;What would you do if there are no impediments?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;W&lt;/strong&gt; ill / Way forward&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What will you do now, and when? What else will you do?&lt;/li&gt;
&lt;li&gt;How will you measure the progress?&lt;/li&gt;
&lt;li&gt;When do you need to review progress? Daily, weekly, monthly?&lt;/li&gt;
&lt;li&gt;What will keep you focused on your goal?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.worthlearning.co.uk/oscar-coaching-model/"&gt;&lt;strong&gt;OSCAR Model&lt;/strong&gt;&lt;/a&gt; is an enhancement of the widely used GROW model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;O&lt;/strong&gt; utcome — help the team member to clarify their outcomes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S&lt;/strong&gt; ituation — gain clarity around where the team member is right now&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C&lt;/strong&gt; hoices and consequences — generating alternative choices and raising awareness of the consequences&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A&lt;/strong&gt; ctions — clarify the next steps forward and taking responsibility&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;R&lt;/strong&gt; eview — ongoing process of review and evaluation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.abintus.co.uk/the-fuel-coaching-model/"&gt;&lt;strong&gt;FUEL Model&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;F&lt;/strong&gt; rame the conversation — set the context for conversation by agreeing on purpose, process, and desired outcomes of the discussion&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;U&lt;/strong&gt; nderstand the current state — explore the current state from the coachee’s point of view and work to determine the real coaching issue&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;E&lt;/strong&gt; xplore the desired state — articulate the vision of success in this scenario and explore multiple options before prioritizing methods of achieving this vision&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L&lt;/strong&gt; ayout a success plan — identify the specific, time-bounded action steps to be taken to achieve the desired results and determine milestone for follow up and accountability&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Regular 1:1s
&lt;/h3&gt;

&lt;p&gt;Other than applying coaching models make sure you organize regular 1:1s meetings (at least one per month) with each team member and prepare yourself for them. Have a clear agenda and invite the team member to contribute to it.&lt;/p&gt;

&lt;p&gt;The main purpose of the 1:1 meeting is to uncover potential issues, to learn more about your team member, and there are different types of 1:1s:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to address concerns and issues&lt;/li&gt;
&lt;li&gt;to give feedback about performance&lt;/li&gt;
&lt;li&gt;to outline a career direction&lt;/li&gt;
&lt;li&gt;for personal connection&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Motivation
&lt;/h3&gt;

&lt;p&gt;I read a book that changed entirely my perspective about motivation. The book is called &lt;em&gt;Why Motivating People Doesn’t Work: The New Science of Leading, Energizing, and Engaging&lt;/em&gt; by Susan Fowler.&lt;/p&gt;

&lt;p&gt;Inspiring and motivating people are key aspects of leadership that are as critical as they are elusive. People are always motivated. The right question we should ask is not if they are motivated, but &lt;strong&gt;what&lt;/strong&gt; motivates them? So, the real secret to motivation is creating an environment where people are optimally motivated to perform at their highest level.&lt;/p&gt;

&lt;p&gt;What truly motivates them is having three core psychological needs met, collectively known as  &lt;strong&gt;ARC&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A&lt;/strong&gt; utonomy — people need to understand that they have choices and their actions are of their own decision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;R&lt;/strong&gt; elatedness — people need to feel connected to others and that they are contributing to something greater than themselves.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C&lt;/strong&gt; ompetence — people must feel able to overcome challenges, take opportunities, increase their skills over time, and experience growth and achievement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Feedback
&lt;/h3&gt;

&lt;p&gt;Teamwork involves collaboration and communication. And especially by working in an agile context all the time it’s about improvement: what could we do differently in order to improve ourselves as a team, as a product, as a process.&lt;/p&gt;

&lt;p&gt;An important skill in this improvement process is the ability to give and receive feedback. This skill is a challenging one. It takes time, courage, and involvement in transforming it into a habit, but this skill will help you and your coworkers to improve job performance, trust, and also to meet important goals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Positive feedback&lt;/strong&gt; or &lt;strong&gt;continuous recognition&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Is a powerful driver of engagement. Also is important to learn more about how each team member enjoys receiving recognition.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Institute peer-to-peer =&amp;gt; when employee achievements are consistently recognized by peers&lt;/li&gt;
&lt;li&gt;Establish clear criteria =&amp;gt; recognize people for actions and results&lt;/li&gt;
&lt;li&gt;Share recognition stories =&amp;gt; newsletters or company blogs&lt;/li&gt;
&lt;li&gt;Make recognition frequent and attainable&lt;/li&gt;
&lt;li&gt;Celebrate success&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Constructive feedback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Helps to increase our self-awareness, self-perception, and inspires us to be more open. It is difficult to formulate this kind of feedback and we, as leaders, should stop being nice in order to avoid difficult conversations because this decision will have a negative impact in the future. Instead, we should focus on doing our best, to be honest, rigorous, and consistent and most importantly to encourage our team to do the same. It’s a 2 ways street: you should give and also receive feedback from your team.&lt;/p&gt;

&lt;p&gt;In terms of using this kind of feedback, I find very useful a model defined by Lara Hogan which is called “ &lt;a href="https://larahogan.me/blog/feedback-equation/"&gt;Feedback Equation&lt;/a&gt; “&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NQHyAWDK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/623/0%2ATCzTa-DXVzI54de2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NQHyAWDK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/623/0%2ATCzTa-DXVzI54de2.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;p&gt;Leadership involves trust, communication, emotional intelligence, collaboration, achieving objectives, focus on priorities, commitment, and many more. From my perspective, the main idea is to love what you are doing, to promote and increase your team’s brand, to do your best to improve yourself, and to learn more about these skills in a conscious and organized way.&lt;/p&gt;

&lt;p&gt;All the time we should evaluate where we are and what should be improved or changed. And yes, there is not a clear recipe for being an awesome leader, and yes I’m still learning a lot of things, and yes I made mistakes but only by thinking and evaluating if we are doing the things right, it means that we care. Have courage and remember &lt;em&gt;“If you want to go fast, go alone. If you want to go far, go together.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2020/09/12/7-steps-to-technical-leadership/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on September 12, 2020.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>coaching</category>
      <category>team</category>
      <category>leadership</category>
      <category>technicalleadership</category>
    </item>
    <item>
      <title>Generics in Kotlin</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Sun, 21 Jun 2020 08:06:39 +0000</pubDate>
      <link>https://forem.com/magdamiu/generics-in-kotlin-4k5m</link>
      <guid>https://forem.com/magdamiu/generics-in-kotlin-4k5m</guid>
      <description>&lt;p&gt;Generics means we use a class or an implementation in a very generic manner. For example, the interface List allows us for code reuse. We are able to create a list of Strings, of integer values and we will have the same operations even if we have different types. So the list wraps a common functionality for each implementation.&lt;/p&gt;

&lt;p&gt;Kotlin allows you to use parameters for methods and attributes, composing what is known as parameterized classes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kK-i2vMB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AlwIr3SMpTNUmEok2" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kK-i2vMB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AlwIr3SMpTNUmEok2" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1️⃣Type vs Class vs Subtype
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Type&lt;/strong&gt; describes the properties that a set of objects may share.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Class&lt;/strong&gt; is just an implementation of that type.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;subtype&lt;/strong&gt; must accept at least the same range of types as its supertype declares.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;subtype&lt;/strong&gt; must return at most the same range of types as its supertype declares.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tmWqYTuC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AcUEPJcxdwwh2D5KC" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tmWqYTuC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AcUEPJcxdwwh2D5KC" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2️⃣Variance
&lt;/h3&gt;

&lt;p&gt;Variance refers to how subtyping between more complex types relates to subtyping between their components.&lt;/p&gt;

&lt;p&gt;Conventions: E = element | T = type | K = key | V = value&lt;/p&gt;

&lt;h4&gt;
  
  
  👩🏻‍💻Code sample
&lt;/h4&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  3️⃣Covariance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If C is a generic type with type parameter T and U is a subtype of T, then C&lt;u&gt; is a subtype of C&lt;/u&gt;
&lt;/li&gt;
&lt;li&gt;Example: List is a subtype of List because Int is a subtype of Number.&lt;/li&gt;
&lt;li&gt;Applies to types that are &lt;em&gt;“producers”&lt;/em&gt;, or a &lt;em&gt;“source”&lt;/em&gt; of T&lt;/li&gt;
&lt;li&gt;T only appears only in “out” position, i.e., the return type of a function&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yssxTLk5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AHVkRnidOFnpUbGby" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yssxTLk5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AHVkRnidOFnpUbGby" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  👩🏻‍💻Code sample
&lt;/h4&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  4️⃣Contravariance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If C is a generic type with type parameter T and U is a subtype of T, then C is a subtype of C&lt;u&gt;&lt;/u&gt;
&lt;/li&gt;
&lt;li&gt;U subtype of T ⇒ C subtype of C&lt;u&gt;&lt;/u&gt;
&lt;/li&gt;
&lt;li&gt;Example: Function1 is a subtype of Function1 because Int is a subtype of Number.&lt;/li&gt;
&lt;li&gt;Applies to types that are &lt;em&gt;“consumers”&lt;/em&gt; of T&lt;/li&gt;
&lt;li&gt;T only appears only in &lt;em&gt;“in”&lt;/em&gt; position, i.e., the type of a function argument&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E7bf7DaF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AD6DE8s1FECfn8Nv5" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E7bf7DaF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AD6DE8s1FECfn8Nv5" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  👩🏻‍💻Code sample
&lt;/h4&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  5️⃣Invariance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If C is a subtype of C&lt;u&gt;, then T = U&lt;/u&gt;
&lt;/li&gt;
&lt;li&gt;Example: Array is invariant in T&lt;/li&gt;
&lt;li&gt;T appears in both &lt;em&gt;“in position”&lt;/em&gt; and &lt;em&gt;“out position”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Type is both a &lt;em&gt;producer&lt;/em&gt; and &lt;em&gt;consumer&lt;/em&gt; of T&lt;/li&gt;
&lt;li&gt;To remember: Lambdas are contra-variant in their argument types and covariant in their return type&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1XwIBIx---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AuEfqGAHx_j3dLW2C" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1XwIBIx---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/0%2AuEfqGAHx_j3dLW2C" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6️⃣Type projections
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A type projection is a type that has been limited in certain ways in order to gain variance characteristics using use-site variance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  👩🏻‍💻Code sample
&lt;/h4&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  7️⃣Star projection
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;They come in handy when we know nothing about the type argument, but need to use them in a safe way.&lt;/li&gt;
&lt;li&gt;The safe way here is to define such a projection of the generic type, that every concrete instantiation of that generic type would be a subtype of that projection.&lt;/li&gt;
&lt;li&gt;Instead of using C or C, you can just use C&amp;lt;*&amp;gt;. It produces the same effective interface as the other two approaches:&lt;/li&gt;
&lt;li&gt;So then, we have three ways that we can accept any kind of a generic:&lt;/li&gt;
&lt;li&gt;in-projection — &lt;/li&gt;
&lt;li&gt;out-projection — &lt;/li&gt;
&lt;li&gt;star-projection — &amp;lt;*&amp;gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  👩🏻‍💻Code sample
&lt;/h4&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  8️⃣Type erasure and reified type parameters
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Java has limits on what types are considered &lt;em&gt;reifiable &lt;/em&gt;— meaning they’re “completely available at run time” (see the &lt;a href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.7"&gt;Java SE specs on reifiable types&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;The type safety checks that Kotlin performs for generic declaration usages are only done at compile time. At runtime, the instances of generic types do not hold any information about their actual type arguments.&lt;/li&gt;
&lt;li&gt;Enforcing type constraints only at compile time and discarding the element type information at runtime.&lt;/li&gt;
&lt;li&gt;The type of information is said to be erased.&lt;/li&gt;
&lt;li&gt;In the case of &lt;strong&gt;reified&lt;/strong&gt; type parameters in Kotlin, we can compare types and get Class objects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reified&lt;/strong&gt; types parameters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Work only with functions (or extension properties that have a get() function)&lt;/li&gt;
&lt;li&gt;Work with those functions that are declared to be inline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Advantages of using reified types parameters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;type checks with is&lt;/li&gt;
&lt;li&gt;casts without unchecked cast warnings&lt;/li&gt;
&lt;li&gt;assign class objects by appending:class.java to the parameter name. For example: val a = T::class.java&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  👩🏻‍💻Code sample
&lt;/h4&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  &lt;strong&gt;📚 Learn more&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Reified type parameters &lt;a href="https://kotlinlang.org/docs/reference/inline-functions.html#reified-type-parameters"&gt;https://kotlinlang.org/docs/reference/inline-functions.html#reified-type-parameters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Generics &lt;a href="https://kotlinlang.org/docs/reference/generics.html"&gt;https://kotlinlang.org/docs/reference/generics.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoy and feel free to leave a comment if something is not clear or if you have questions. And if you like it please share it!&lt;/p&gt;

&lt;p&gt;Thank you for reading! 🙌🙏😍✌&lt;/p&gt;

&lt;p&gt;Follow me on:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/MagdaMiu"&gt;https://twitter.com/MagdaMiu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2020/06/21/generics-in-kotlin/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on June 21, 2020.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>genericsprogramming</category>
      <category>androiddev</category>
      <category>generics</category>
      <category>kotlin</category>
    </item>
    <item>
      <title>Kotlin Coroutines</title>
      <dc:creator>Magda Miu</dc:creator>
      <pubDate>Mon, 27 Apr 2020 17:00:00 +0000</pubDate>
      <link>https://forem.com/magdamiu/kotlin-coroutines-1kb9</link>
      <guid>https://forem.com/magdamiu/kotlin-coroutines-1kb9</guid>
      <description>&lt;p&gt;&lt;a href="https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/index.html"&gt;Coroutines&lt;/a&gt; are officially part of the Kotlin standard library starting with version 1.3 and they are very helpful in creating concurrent non-blocking code. They simplify async programming. Coroutines are actually lightweight threads.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oMl9p2__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2Al3UVFLeVaD1NIOjQ" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oMl9p2__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2Al3UVFLeVaD1NIOjQ" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FELSH4DY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2A8Re1Eo11FD4-9C2K" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FELSH4DY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2A8Re1Eo11FD4-9C2K" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sequential execution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TTccZPtg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2ASMRM5Oq6gT8lK_2n" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TTccZPtg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2ASMRM5Oq6gT8lK_2n" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parallel execution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X0zLQojQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2AiEjXmzzMSrKgYEWq" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X0zLQojQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2AiEjXmzzMSrKgYEWq" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Concurrent execution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HdSb_-y3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2A8VyFubG8F3bPeLDV" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HdSb_-y3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2A8VyFubG8F3bPeLDV" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📌Coroutine Scopes
&lt;/h3&gt;

&lt;p&gt;A coroutine should run in a scope. The scope is used in order to track the lifecycle of the coroutine. Also it is a way to bind the coroutine(s) to an app specific lifecycle.&lt;/p&gt;

&lt;p&gt;Behind the scope there is the concept of &lt;a href="https://kotlinlang.org/docs/reference/coroutines/basics.html#structured-concurrency"&gt;structured concurrency&lt;/a&gt;that helps us, the developers, to avoid leaking coroutines which can waste the resources (disk, memory, cpu, network).&lt;/p&gt;

&lt;p&gt;Structured concurrency is related to three main things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep track&lt;/strong&gt; of the running coroutine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cancel work&lt;/strong&gt; when it is not longer necessary to run it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notify errors&lt;/strong&gt; when something bad happens to a coroutine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every coroutine builder is an extension of &lt;a href="https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-scope/index.html"&gt;CoroutineScope&lt;/a&gt;and inherits its coroutine context in order to propagate context elements and cancellation.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⛏️Coroutine Builders
&lt;/h3&gt;

&lt;p&gt;Coroutine Builders are extension functions of CoroutineScope used to build and manage the execution of the coroutine.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔖run()
&lt;/h3&gt;

&lt;p&gt;Function definition&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lambda with a receiver&lt;/li&gt;
&lt;li&gt;return type is whatever the lambda returns&lt;/li&gt;
&lt;li&gt;there is also a non-extension version of this function&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Start task1 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task1 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Called task1 and task2 from Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔖runBlocking
&lt;/h3&gt;

&lt;p&gt;Function definition&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runs a new coroutine&lt;/li&gt;
&lt;li&gt;Blocks current thread interruptible until its completion&lt;/li&gt;
&lt;li&gt;Could set a name to the coroutine for debug purposes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;runBlocking(CoroutineName("pink-coroutine"))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Start task1 | Thread Thread[main @coroutine#1,5,main]&lt;/p&gt;

&lt;p&gt;End task1 | Thread Thread[main @coroutine#1,5,main]&lt;/p&gt;

&lt;p&gt;Start task2 | Thread Thread[main @coroutine#1,5,main]&lt;/p&gt;

&lt;p&gt;End task2 | Thread Thread[main @coroutine#1,5,main]&lt;/p&gt;

&lt;p&gt;Called task1 and task2 from Thread[main @coroutine#1,5,main]&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔖launch()
&lt;/h3&gt;

&lt;p&gt;Function definition&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extension function of CoroutineScope&lt;/li&gt;
&lt;li&gt;Launches a new coroutine&lt;/li&gt;
&lt;li&gt;Does not block the current thread&lt;/li&gt;
&lt;li&gt;Returns a reference to the coroutine as a Job&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Job&lt;/strong&gt; class represents a cancellable task that has its own lifecycle and it can also have children.&lt;/p&gt;

&lt;p&gt;The states of job’s life cycle:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VoLhKq7e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2AiPQhD45lZgubxAFn" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VoLhKq7e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/640/0%2AiPQhD45lZgubxAFn" alt=""&gt;&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Called task1 and task2 from Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task1 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task1 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔖suspend functions
&lt;/h3&gt;

&lt;p&gt;Function definition&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Suspend the execution of the current task and let another task execute&lt;/li&gt;
&lt;li&gt;Could be called only from within a coroutine&lt;/li&gt;
&lt;li&gt;There are 2 functions that could help us to achieve this behavior:&lt;/li&gt;
&lt;li&gt;delay() =&amp;gt; pause the currently executing task for a specific time (milliseconds)&lt;/li&gt;
&lt;li&gt;yield() =&amp;gt; let other task to be executed&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Called task1 and task2 from Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task1 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task1 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔖async / await
&lt;/h3&gt;

&lt;p&gt;Function definition&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;async()&lt;/strong&gt; is an extension function of CoroutineScope&lt;/li&gt;
&lt;li&gt;If we want to execute a task asynchronously and get the result, then we should use &lt;strong&gt;async()&lt;/strong&gt; instead of launch() function.&lt;/li&gt;
&lt;li&gt;async() creates a new coroutine and returns its future result as an implementation of Deferred which has an await() function very helpful in order to get the status of the coroutine.&lt;/li&gt;
&lt;li&gt;The call to await() will wait for the coroutine started by async() to complete.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Awaiting the sums&lt;/p&gt;

&lt;p&gt;Start sumOf2&lt;/p&gt;

&lt;p&gt;Start sumOf3&lt;/p&gt;

&lt;p&gt;Total is 10&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  ⛓️Coroutine Context and Threads
&lt;/h3&gt;

&lt;p&gt;CoroutineContext defines the context in which the coroutine will run.&lt;/p&gt;

&lt;h3&gt;
  
  
  Specific Context
&lt;/h3&gt;

&lt;p&gt;When we want to run our tasks on a dedicated thread pool the solution is to use the proper dispatchers from the Dispatchers classes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dispatchers.Default&lt;/strong&gt;  — Different thread (if possible). It is backed by a shared pool of threads on JVM =&amp;gt; CPU&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dispatchers.Main&lt;/strong&gt;  — Platform specific main thread (if exists) =&amp;gt; UI/Non-blocking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dispatchers.IO &lt;/strong&gt; — Thread designed for offloading blocking IO tasks to a shared pool of threads =&amp;gt; Network and disk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dispatchers.Unconfined&lt;/strong&gt;  — Always uses the first available thread (most performant dispatcher).&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Start task1 | Thread Thread[DefaultDispatcher-worker-2,5,main]&lt;/p&gt;

&lt;p&gt;End task1 | Thread Thread[DefaultDispatcher-worker-2,5,main]&lt;/p&gt;

&lt;p&gt;Called task1 and task2 from Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Custom pool of threads
&lt;/h3&gt;

&lt;p&gt;When we want to run our tasks by using our own custom thread pool we apply the asCoroutineDispatcher function on Java’s ExecutorService.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Executors.newSingleThreadExecutor()&lt;/li&gt;
&lt;li&gt;Executors.newFixedThreadPool()&lt;/li&gt;
&lt;li&gt;Executors.newScheduledThreadPool()&lt;/li&gt;
&lt;li&gt;Exectors.newCachedThreadPool()&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An important thing to mention here is that the Executor should be closed because if we don’t do it our program may run infinitely. So when the coroutine(s) completes then the executor must be closed. An easy and clean way to implement this behavior is by using the use() function.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Called task1 and task2 from Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task1 | Thread Thread[pool-1-thread-1,5,main]&lt;/p&gt;

&lt;p&gt;End task1 | Thread Thread[pool-1-thread-1,5,main]&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Change the CoroutineContext
&lt;/h3&gt;

&lt;p&gt;If we want to run a coroutine in one context and then change the context midway the solution is to use the withContext() function.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Starting in Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;Start task1 | Thread Thread[DefaultDispatcher-worker-1,5,main]&lt;/p&gt;

&lt;p&gt;End task1 | Thread Thread[DefaultDispatcher-worker-1,5,main]&lt;/p&gt;

&lt;p&gt;Ending in Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;

&lt;p&gt;Start task2 | Thread Thread[main,5,main]&lt;/p&gt;

&lt;p&gt;End task2 | Thread Thread[main,5,main]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  ❌Cancelling coroutines
&lt;/h3&gt;

&lt;p&gt;Coroutines can be cancelled. A coroutine is cancelled only if it is currently in a suspension point.&lt;/p&gt;

&lt;p&gt;In order to cancel an asynchronous process running in a coroutine we could apply one the next solutions:&lt;/p&gt;

&lt;p&gt;is an interface that has the following states (&lt;a href="https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-job/"&gt;*&lt;em&gt;Job *&lt;/em&gt; source&lt;/a&gt;):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8dfbrTWd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/497/0%2AcITDxajfoheFKu9h" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8dfbrTWd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/497/0%2AcITDxajfoheFKu9h" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-supervisor-job.html"&gt;&lt;strong&gt;SupervisorJob&lt;/strong&gt;&lt;/a&gt; creates a supervisor job object in an active state. Children of a supervisor job can fail independently of each other.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔖cancel()
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cancels the Job&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔖join()
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Suspends the coroutine until the current job is complete&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔖cancelAndJoin()
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cancels the job and suspends the invoking coroutine until the cancelled job is complete.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔖withTimeout()
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Helpful to use it when a job might be taking too long&lt;/li&gt;
&lt;li&gt;The function runs a suspending block of code inside a coroutine and throws a TimeoutCancellationException if the timeout is exceeded&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔖withTimeoutOrNull
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Runs a given suspending block of code inside a coroutine with a specified timeout and returns null if this timeout was exceeded.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Code sample &lt;strong&gt;cancel/join&lt;/strong&gt; or &lt;strong&gt;cancelAndJoin&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result 👇&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start main&lt;/p&gt;

&lt;p&gt;Job is waiting 0…&lt;/p&gt;

&lt;p&gt;Job is waiting 1…&lt;/p&gt;

&lt;p&gt;Job is waiting 2…&lt;/p&gt;

&lt;p&gt;Job is waiting 3…&lt;/p&gt;

&lt;p&gt;Job is waiting 4…&lt;/p&gt;

&lt;p&gt;Job is waiting 5…&lt;/p&gt;

&lt;p&gt;Stop waiting. Let’s cancel it…&lt;/p&gt;

&lt;p&gt;End main&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Code sample &lt;strong&gt;withTimeout / withTimeoutOrNull&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  ✨The magic behind the scenes…
&lt;/h3&gt;

&lt;p&gt;Under the hood when we use coroutines we actually work with Continuation objects. This class contains the results of the partial execution of the function so that the result can be sent to the caller by using the Continuation callback.&lt;/p&gt;

&lt;p&gt;The compiler empowers the continuations to implement the mechanism of the coroutines, to switch the context, the threads and to restore the states.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚Learn more…
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Official &lt;a href="https://kotlinlang.org/docs/reference/coroutines/coroutines-guide.html"&gt;documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;I created this &lt;a href="https://www.youtube.com/playlist?list=PLaC2ibKkxGSIBdPn7QYDN5yP3pX4IpHoF"&gt;playlist&lt;/a&gt; on YouTube&lt;/li&gt;
&lt;li&gt;Android Developers Medium articles&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/androiddevelopers/coroutines-on-android-part-i-getting-the-background-3e0e54d20bb"&gt;Coroutines on Android (part I)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/androiddevelopers/coroutines-on-android-part-ii-getting-started-3bff117176dd"&gt;Coroutines on Android (part II)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/androiddevelopers/coroutines-on-android-part-iii-real-work-2ba8a2ec2f45"&gt;Coroutines on Android (part III)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/androiddevelopers/coroutines-first-things-first-e6187bf3bb21"&gt;Coroutines: First things first — Android Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/androiddevelopers/cancellation-in-coroutines-aa6b90163629"&gt;Cancellation in coroutines — Android Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/androiddevelopers/exceptions-in-coroutines-ce8da1ec060c"&gt;Exceptions in Coroutines — Android Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/androiddevelopers/coroutines-patterns-for-work-that-shouldnt-be-cancelled-e26c40f142ad"&gt;Coroutines &amp;amp; Patterns for work that shouldn’t be cancelled&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check my previous articles about Kotlin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/@magdamiu/hello-kotlin-774b44cd9df0"&gt;Hello Kotlin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/magdamiu/kotlin-basics-ln0"&gt;Kotlin Basics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://proandroiddev.com/kotlin-functions-are-fun-8fdcd4e85a5"&gt;Kotlin functions are fun&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://proandroiddev.com/classes-in-kotlin-9cf584556431"&gt;Classes in Kotlin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://proandroiddev.com/collections-in-kotlin-a2bd8649f697"&gt;Collections in Kotlin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoy and feel free to leave a comment if something is not clear or if you have questions. And if you like it please share!&lt;/p&gt;

&lt;p&gt;Thank you for reading! 🙌🙏😍✌&lt;/p&gt;

&lt;p&gt;Follow me on:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/magdamiu"&gt;Magda Miu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://magdamiu.com/2020/04/27/kotlin-coroutines/"&gt;&lt;em&gt;http://magdamiu.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on April 27, 2020.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>threads</category>
      <category>coroutine</category>
      <category>learnkotlinfromgde</category>
    </item>
  </channel>
</rss>
