⏩ Introduction
💡 To succeed and stay relevant, software developers must cultivate a mindset that embraces learning, innovation, and self-improvement.
🚀 This is what we call the growth mindset.
The growth mindset, popularized by psychologist Carol Dweck, revolves around the belief that our abilities can be developed through dedication, effort, and persistence. It is the idea that intelligence and skills are not fixed traits but can be nurtured and expanded over time. By adopting a growth mindset and embracing the principles of continuous improvement, you can take responsibility for your personal and professional growth to maximize your talent.
🌟 Are you ready to take your skills to the next level? Let's explore the transformative power of continuous improvement fueled by a growth mindset.
🎨 Mastering the Art of Growth
This is the “enhanced version” of this old issue: since I lately improved my newsletter issues and gave this newsletter a lot more structure, I thought that the issue of continuous improvement deserved a version 2.0 🙂
✨ So, how does a growth mindset impact continuous improvement in software development? It sets the stage for a transformative journey, allowing you to overcome challenges, embrace new technologies, and adapt to changing requirements with enthusiasm. With a growth mindset, failure becomes a learning opportunity, setbacks become stepping stones, and curiosity becomes the driving force behind your development journey.
🎯 This translates into some practical advice like setting clear goals and creating a supportive learning environment to leveraging resources and seeking feedback.
🔧 By adopting a growth mindset and embracing the principles of continuous improvement, you can navigate the ever-changing landscape of software development and embark on a path of personal and professional growth.
To make this clearer, let’s compare the definition of a growth mindset opposition to a fixed one:
Fixed mindset: a person with a fixed mindset believes their basic qualities, like their intelligence or talent, are simply fixed traits. They spend their time documenting their intelligence or talent instead of developing them. They also believe that talent alone creates success—without effort.
Growth mindset: a person with a growth mindset believes that their most basic abilities can be developed through dedication and hard work—brains and talent are just the starting point. This view creates a love of learning and resilience that is essential for great accomplishment.
If you stick to a fixed mindset, your growth and learning experience will be negatively impacted, for example giving up when you can’t solve a problem and admit defeat.
A positive mindset is a difference between a student giving up because they’re “not a math person” and a productive struggle that yields growth. But a growth mindset isn’t just about effort. In the fixed mindset, everything is about the outcome. If you fail—or if you’re not the best—it’s all been wasted. The growth mindset allows people to value what they’re doing regardless of the outcome. They’re tackling problems, charting new courses, and working on important issues. Maybe they haven’t found the cure for cancer, but the search was deeply meaningful.
The point is: do you believe that professional sports players like Michael Jordan or Cristiano Ronaldo are all about talent? They are not. With the correct approach to learning and practice, everyone can improve and become great at something - talent is “just” both an advanced starting point and an accelerator - but it’s not enough.
🤔 Why is continuous improvement important for a Software Developer?
Continuous improvement is strongly related to growth: it is the practice of continually reviewing and refining processes and practices in order to improve efficiency, effectiveness, and quality. It is a proactive approach to problem-solving that involves regularly identifying and addressing areas for improvement in order to achieve long-term success.
There are several reasons why continuous improvement is important for developers:
-
Improved efficiency: By continually reviewing and refining processes, developers can identify and eliminate waste and inefficiencies, leading to more efficient development.
-
Enhanced quality: Continuous improvement helps developers identify and address quality issues early in the development process, leading to higher-quality software.
-
Increased collaboration: Continuous improvement encourages collaboration and communication within teams, helping to identify and address issues and improve processes.
-
Enhanced flexibility: Continuous improvement allows developers to quickly adapt to changing requirements and priorities, which is particularly important in today's fast-paced business environment.
Studying new technologies daily is important for developers in order to stay competitive, improve skills, adapt to changing needs, and discover new possibilities. The field of software development is constantly evolving, and new technologies are being introduced all the time.
By studying new technologies daily, developers can stay up-to-date and competitive in the job market. Additionally, this can help developers improve their skills and become more proficient in their work, leading to greater job satisfaction and career advancement.
As the needs of organizations and clients change, developers may be required to work with new technologies. By staying current on new technologies, developers can be better prepared to adapt to these changing needs.
Don’t make the mistake that most do: this is your responsibility as a professional developer, not the company's; while it's very important for companies to allow time and budget for developers to favor their learning and improvement, the truth is not every company will do it. If your company does not, complaining about it is useless: see the company time and/or budget as an additional benefit, but don't base your improvement on it; take your time for learning because your career depends on it!
Remember, in the world of software development, the journey never ends. It is through continuous learning and improvement that we become the architects of innovation, shaping the future one line of code at a time.
Until next time, happy coding! 🤓👩💻👨💻
Dan’s take 🙋🏻♂️
We all have been caught in the “talent” trap, at some point.
I love football, I played it since I was 8 and still play - and even if I couldn’t become a professional (I was close enough actually - in my best years I played in the higher non-professional league existing in Italy) I always approached them very professionally, because I love the game. When I grew up, dreaming to win the World Cup, I realized I would not be one of them, but everyone around me just said: “They have more talent”.
While this is true for sure, I think most people oversimplify the growth of professionals in any field and overestimate the importance of talent while underestimating the impact of good daily practice.
Talent is an accelerator, but to become one of the greatest in your field you need to be dedicated to it and approach it with a growth mindset; a small step every day will bring you 365 steps ahead of today in a year, so do not underestimate the value of small daily improvements.
I had to face this misunderstanding also in my growth as a Software Engineer: I always had a growth mindset naturally, but I gave too much importance to talent and I only cared about taking care of my talent (or what I thought my talent was). For example, for some reason during my school years I was convinced that I wasn’t very good at studying theoretical stuff while I was great at learning by doing with a practical approach, so what I did to grow was investing time in doing practical exercises on new technologies, for example.
This was making me grow, but I struggled a lot in making my point of view clear: a lot of times happened that I had an idea and tried to expose it, and it didn’t seem very good - then, a couple of minutes later, someone else exposed something very similar to what I was thinking, but he was better in explaining it so it was considered good.
You may think this is only a matter of communication, but it’s not: since I didn’t know the theory and the whys behind those good ideas, I wasn’t able to communicate - even if I was better at communications, I wouldn’t have had enough to say because I lacked knowledge.
This struggle was my power and, with the help of a couple of very Senior developers, I was able to find my way through learning also theoretical stuff - learning why some things work better than others, why they make sense, etc - so that it actually became only a problem of communication because I actually had a lot more to say to expose my ideas and support them with whys.
This was so powerful I probably became a bit addicted to that 😃 today, while I try to be emphatic with someone struggling to communicate for similar reasons, I try to make them understand that if you want to listen on technical stuff, you need to understand more of what’s beneath.
🎨 What I did
As I said, I struggled a lot so I want to try to make it easier for all of you - while I don’t think that reading this can help you to make a mental shift (living things is so much more powerful than reading about them), I hope this can give you some help once you decide to improve your growth skills.
-
Find your study methodology ➡️ One of the things I had to learn was which study approach works for me; I started by taking short notes on Post-it, for example, but then I felt a bit too limited so I moved to a longer form of resume of the content, on paper at first, and now totally digitalized on Notion. I typically enjoy a small chunk of the content (1/2 page at most if it’s a book, for example), then I re-read it quickly and take notes of the most important things. But I had to experiment to find the best approach for me, and it still evolves so be experimental on that. Another good idea is following the Feynman technique: when you explain things to others, you learn more - so find some colleagues to share learning sessions with, or create content online!
-
Find the best media for you ➡️ Not everyone learns in the same way with all content. For me, books end up being the best content ever: I think they are the best for quality content, and they also allow me to easy adapt my pace and notes taking to the difficulty of the content: if the book is full of information I want to take notes, it is less tiring for me to read it a couple of times - while with videos and podcast, I found it boring. The experimental approach is helpful also here!
-
Schedule some time for learning ➡️ In the best companies, they typically allow for 3 to 8 hours dedicated to learning, with both self-learning and session setup from the company/team. Not all companies allow this anyway, and this is so important for your career that you cannot depend on the policy of the company because then if you lose that for some reason, you are done. I typically scheduled 4 to 8 hours weekly of free time for personal learning, some in the evenings and some on Saturday morning - and any time allowed by the company becomes an extra for me, but I don’t depend on it.
-
Focus on one thing at a time ➡️ - contrary to what most people believe, multitasking is not productive at all, and focusing on one thing at a time typically increases a lot your outcomes; the same happens with learning: focus on one technical topic at a time, like a language or paradigm, and one methodology at a time, like TDD or DDD - this is already challenging enough, there is no need to overcomplicate it! In fact, you should consider sticking to only one topic (technical or methodological) if you feel that it’s too much: remember that one step forward is still progress, no matter how big that step is.
-
Finds out what kind of developers you want to be ➡️ I think that in the first 3/5 years, it’s a good idea to try to be more “full-stack” as possible, meaning that you should make your hands dirty with everything you can; this has a double positive effect: you become more skilled, but you also understand what you like the most and what you dislike. At some point, I believe more in specialist than a generalist, so my suggestion is to find out the topic you want to become a specialist in and focus 70% of your learning content on that topic in order to ensure you reach your goals!
These were 5 simple tips on how to improve that really helped me to boost my career growth: remember that we are not all the same, so instead of just copy-pasting those tips, use them to question yourself: what’s the best for me? Then make some tests, and find out what works for you! 🙂
The path of continuous improvement and growth is very personal, so you have to make tests and try different approaches to figure out what works best for you - it can be hard at first, but I can ensure you that this mindset will put you above the average of professionals and will make the difference in your path.
Go Deeper 🔎
📚 Books
-
The Growth Mindset Workbook - The Growth Mindset Workbook offers essential skills grounded in cognitive behavioral therapy (CBT) to change the way you think about your own talents and abilities. Based on the core principles outlined by Carol Dweck, this workbook will help you shed unhelpful and self-limiting attitudes and beliefs, and replace them with a growth mindset that can increase resiliency, boost self-confidence, and form the foundation of a meaningful, values-based life.
-
Effective Continuous Improvement - This short book gives you a step-by-step guide to getting the most out of continuous improvement. It shares approaches and ideas on how to best use CI for your business. Quick start templates are also provided so you can get started straight away with these methods.
-
Practice Perfect - In this book, the authors engage the dream of better, both in fields and endeavors where participants know they should practice and also in those where many do not yet recognize the transformative power of practice.
-
Atomic Habits - No matter your goals, Atomic Habits offers a proven framework for improving--every day. James Clear, one of the world's leading experts on habit formation, reveals practical strategies that will teach you exactly how to form good habits, break bad ones, and master the tiny behaviors that lead to remarkable results.
📩 Newsletter issues
-
Why failure is essential for Growth Mindset [10x Growth Mindset Club from Chetan Yallapurkar]
-
Strategies for Cultivating a Growth Mindset in Your Organisation [The Curiosity Catalyst from Kevin McDonnell]
-
How to develop a growth mindset [The Author Mindset from Jon Reed]
-
Do You Have a Growth Mindset [Grow with James from James Hudnall]
-
Kaizen: The Japanese Art of Continuous Improvement [Live Well, Choke People from D.G. Alix]
📄 Blog posts
-
6 Tips to Starting and Sustaining Your Continuous Improvement Efforts - a very practical post from The Lean Startup
-
What is Continuous Improvement? - introduction article from Kanbanize
-
5 Benefits of Continuous Improvement - an analytics post from The Lean Startup
🎙️ Podcast episodes
👨🏻🏫 Online courses
-
The Growth Mindset (Coursera)