Let's Talk Software

Even if you're not looking for custom software development, we're happy to chat about agile processes, tech stacks, architecture, or help with your ideas. Enter your contact information below and a member of our team will contact you.

    Clients who trust us to deliver on their custom software needs.
    Tonal Logo
    Aquabyte Logo
    More Cashback Rewards Logo
    MasterControl Logo
    Little Passports Logo
    Mido Lotto Logo
    home

    How We Learned to Embrace Continuous Improvement

    By Hai Huynh
    Share this article:

    The term “continuous improvement” (CI) has become something of a catchphrase in the software industry. Pretty much every organization says that they practice CI, but in reality, very few companies take full advantage of the practice.

    What is Continuous Improvement?

    The concept of continuous improvement (or “kaizen”) was developed in the mid-twentieth century in Japan, where it was largely responsible for the miraculous Japanese industrial and economic post-war boom.

    Some of the tenets of kaizen are:

    • If there’s a problem, fix it before it festers. If anyone in the organization sees a manufacturing defect, they immediately pull the “rip cord” which stops the assembly line from continuing. Everyone immediately gathers, figures out the problem, and fixes it before the line starts up again.
    • Root cause analysis. When there is a problem, try asking “the five whys” in order to get to the root cause.
    • Great ideas can come from anyone. Employees at all levels should feel free to speak their minds. If they don’t feel comfortable speaking up in front of senior management, then consider breaking into small groups.

    The general idea of continuous improvement is that you can always find ways to make your products, processes, and people better. It’s about constantly learning from feedback, data, and experiments, and making small but impactful changes that add up over time. It’s about empowering people at all levels of the organization. Most importantly, it’s about listening to your customers and other stakeholders.

    How does it apply to the software industry?

    Software development is a complex and dynamic process with many unknowns and hurdles. Requirements change, technologies evolve, markets shift, and customers demand more. Software companies must be nimble and adaptable in order to survive and prosper in this climate.

    Continuous improvement assists software firms in accomplishing this by allowing them to:

    • Deliver better products that meet customer needs and expectations
    • Reduce waste and inefficiencies in their processes and workflows
    • Increase productivity and quality of their teams and individuals
    • Foster a culture of learning and collaboration among their employees
    • Gain a competitive edge and grow their business

    Do we use Continuous Improvement at CodeStringers?

    We like to think that we do. About 5 years ago, we started a product called Ella Learning, which is a new kind of Learning Management System (like Canvas, Schoology, and Google Classroom) which aims to help students develop better study habits that will help them achieve more in school and in life. This is a passion project for us. It’s what we want to be known for and remembered for after we’re gone. It’s our opportunity to take all the skills we’ve learned over the years and apply them towards doing something good for the world.

    However, it has been far from straightforward. We’ve had almost a perfect storm of challenges; e.g., COVID, internal personnel changes, financial constraints. Furthermore, the first version of the software that we put out turned out to be too challenging for teachers and students. We made some overly ambitious assumptions about our customers that turned out to be incorrect.

    Fortunately, we used that time to develop a culture of Continuous Improvement. For example:

    1. We tightened our Agile-based development process and incorporated the voice-of-the-customer. This seems like common sense, but, in fact, it’s a subtle difference from what we were doing before. Originally, we had asked the customers what they wanted in focus groups and surveys, and then we built our product based on what we thought that they had asked for. However, we discovered that this feedback loop was too slow. In response, we moved to a truly Agile approach in which we release new features every 2-3 weeks, and ask for customer feedback at the end of each of these development sprints.
    2. We embrace lean principles for our product development process. We followed the build-measure-learn cycle, which helped us validate our assumptions, test our hypotheses, and learn from our experiments. This helps us clearly define what features our customers and users really want. Instead of “copying” existing features of similar software, we focus on developing features that are really useful for users. We are willing to remove or hide features that are not really useful. As a result, we save significant software development time, costs, and our products become leaner and easier to use.
    3. To do the above and maintain it for the future, we established a culture of open feedback and constructive criticism at all levels of the company. Everyone encourages to share their ideas, opinions, and suggestions. We look for this personality trait when hiring and we nurture it in our everyday work. It is considered an honor when someone at the “worker bee” level is able to talk our executives, or even the client, out of a bad idea.
    4. We also create opportunities for learning and growth, such as training sessions, workshops, and retrospectives. Since our product is education based, we bring in former educators and ed-tech professionals to speak to the entire team in order to educate them about how secondary education works and what challenges they face.
    5. Perhaps most importantly, we set measurable goals and make sure everyone on the team knows what the goals are and keeps them in mind when making decisions. For example, Ella’s goal, for now, is to increase the homework turn-in rate. Customer research shows that improving this area attracts teachers, parents, and administrators to license our product. When prioritizing features or efforts, we focus on what’s most likely to enhance our measurable goal.

    Conclusion

    As I mentioned before, I’m sure this seems like common sense to the majority of readers. Every organization probably thinks they do most, if not all of the Continuous Improvement activities that I just mentioned. I can assure you, however, that this is not the case. I’ve worked for and with several major corporations in my career, and in the vast majority of cases, the company culture actually discourages CI. How many Fortune 500 companies do you think would encourage an entry-level engineer to try to talk the CEO out of making a bad decision?

    Please understand that we’re not trying to boast or self-promote with this article. We are far from perfect and have faced our share of challenges. It took us more than three years to develop a product that ideally could have been completed in half that time. Our aim here is solely to share the lessons we’ve learned from tackling these obstacles, with the hope that it can provide you with a competitive edge and a smoother journey.

    Embracing continuous improvement has been a game-changer for us. I encourage other business owners and leaders to adopt this mindset and watch how it makes a positive impact on your results.

    Let’s commit to never settling for “good enough” and strive for excellence in all we do!

    Christian Schraga

    Share this article:

    About the author...

    Hai Huynh is oversees software development for CodeStringers including product management, engineering and quality assurance.

    Scroll to Top