Understanding the audience and building for their specific needs is crucial for the success of any engineering project.
This is no easy task - but with the right principles in place, it’s much easier to achieve truly customer-centric design.
Ian Tien, CEO and Co-Founder of Mattermost, talks about these core principles and their impact on his company. He highlights the importance of customer obsession, self-awareness, transparency and earning trust, just to name a few.
This blog post summarizes the main points of episode 91 of the Level-up Engineering podcast hosted by Karolina Toth. Make sure to check out the full interview through your favorite podcast platform or Youtube.
This post covers:
Understanding the user base is vital in every project, especially in the open source community. When transitioning to commercial models, it's essential to cater to a broader audience, which may have different needs. This customer-centric approach ensures that solutions meet the specific requirements of each user group. For instance, while developers may prefer open source flexibility, IT professionals often seek additional features for compliance and administration.
By tailoring engineering projects to user preferences, developers can deliver maximum value. This principle applies across domains, emphasizing the importance of understanding the audience's perspective. Whether serving open source enthusiasts or addressing the needs of IT professionals, prioritizing user needs drives successful outcomes and boosts user satisfaction.
At Mattermost, the principle of customer obsession drives development decisions. This principle underscores the importance of direct communication between engineers and end-users for significant features. By involving engineers in conversations with end-users, costly misunderstandings can be avoided. For instance, what may initially seem like a complex request, such as adding a new table, often simplifies when examined more closely. When engineers grasp the technical and business context directly from users, they can streamline solutions, ensuring that resources are used efficiently.
This approach isn't about involving engineers in every detail but focuses on critical, high-impact features. By encouraging direct engagement between engineers and end-users for substantial projects, Mattermost ensures that solutions align closely with user needs, leading to more effective outcomes.
Self-awareness is a key principle guiding product development. This involves actively seeking feedback from users through direct, quantified questions to gain insights into areas for improvement. By understanding both qualitative praise and quantitative ratings, the team can address issues effectively.
We also prioritize earning trust through various means, including open source code, documentation, and user guides. This commitment to transparency and reliability builds confidence among customers and end-users. Moreover, the principle of focusing on high-impact tasks ensures that resources are allocated efficiently.
Our approach to hiring and development revolves around transparency and cultural alignment. Our open source model serves as a testament to our commitment to transparency and quality. By openly showcasing our development processes on platforms like GitHub, we attract engineers who value collaboration and openness.
Many of our team members come from open source backgrounds, where they're accustomed to transparent workflows and collaborative practices. Additionally, a significant portion of our team has previous experience at Microsoft, which brings valuable insights and principles to our culture. Through a deliberate hiring process focused on cultural fit and values alignment, we consistently maintain and grow the high quality of our team.
Our operational rhythm is defined by rigorous release management processes and established team cadences, ensuring a smooth monthly release cycle. An important component of our workflow is the concept of operating reviews, which center on analyzing key metrics related to quality and delivery velocity. While these metrics serve as vital indicators of performance, we recognize the importance of contextualizing them to fully grasp their implications.
For instance, variations in pull requests per engineer may be attributed to external factors like team offsites or seasonal events. To facilitate productive discussions and decision-making, we employ the GNN framework—assessing what's Going Well, what's Not Going Well, and determining Next Actions. This structured approach allows us to celebrate achievements, address challenges, and strategize for continued improvement.
During our monthly operating reviews, we establish a culture of transparency and accountability, encouraging team members to share insights and propose actionable solutions. By systematically evaluating our performance and identifying areas for enhancement, we ensure that our processes remain adaptive and resilient. Ultimately, this commitment to continuous improvement empowers us to deliver high-impact outcomes and drive organizational success.
Self-awareness is key, and I've learned this lesson firsthand. During my time at Microsoft, the release of Windows Vista highlighted the consequences of overlooking this principle. Built on powerful desktops, Vista struggled on laptops, exposing a blind spot in our understanding. A similar scenario happened at Mattermost, where we spotted performance issues due to developers using high-powered Macs. Recognizing the importance of self-awareness, we took action, providing developers with secondary machines to experience user issues firsthand.
Enabling individuals to grasp the user experience supports proactive problem-solving and reduces the need for top-down management. Whether in a corporate giant like Microsoft or a growing company like Mattermost, focusing on self-awareness empowers teams to navigate challenges independently.
It's not just about having lots of managers. It's more about what these managers do. In our engineering and product teams, we prefer having managers who understand the technical side of things. Some of them might still code themselves while also managing others. Others focus more on managing a larger group of engineers but may not be as hands-on with the technical work anymore.
But there's a challenge with figuring out career paths for people who don't want to become managers. Sometimes, really good engineers get promoted to managers, but that might not always be the best idea. It could end up making things less efficient because the manager might spend more time managing than actually doing the work. So we're trying to come up with different career paths that don't necessarily involve managing others.
One idea is to have roles like architects, who focus on making sure our technology is up-to-date and working well. Another idea is to have people like field CTOs, who go out and talk about our company and products to others. And then there are those who are like a one-person army. They're really good at one specific thing, like AI or database optimization, and they can do amazing things on their own.
So instead of just thinking about how many managers we have, we're trying to figure out what each person's role should be based on what they're good at. This way, we can have a good mix of people who manage, people who lead technically, and people who excel in their own specialties, which helps our team work better together and grow as a company.
When we were just starting out as a company, we took time to figure out what really mattered to us. It was me and my co-founder Corey, and we'd gather our small team for discussions. We talked about our core values, which are basically the important beliefs that guide how we work together. These values can change over time as we grow and learn what's most important to us.
We also talked about what it means to be a top performer in our company. What makes someone really stand out? We looked for patterns in the behavior of our best team members and tried to capture those qualities in our values. For example, a few years ago, we noticed some issues with the quality of our work. So we came up with the idea of earned trust. Instead of just focusing on quality, we wanted to earn trust from our customers and our team by delivering reliable, scalable, and complete solutions.
This process of defining our core values and principles is ongoing. It's something that founders and early team members spend a lot of time on, continually refining and adjusting as the company grows. We want to make sure that our values reflect the excellence we strive for every day and guide our behaviors in everything we do.
Great companies are always changing and improving. We never reach a point where we say, "That's it, we've learned everything we need to know." Our values and principles are always evolving as we learn more and as our needs change. For example, we used to have a principle called high standards. It was important when we were struggling with quality issues early on. But as we improved our quality and introduced other principles like earned trust, having high standards started to cause confusion.
High standards were sometimes in conflict with our other values. For instance, it clashed with customer obsession when we needed to release features quickly. It also conflicted with high impact when we focused too much on polishing things instead of delivering important changes. So, we decided to remove high standards from our principles. We realized that its role could be filled by other values and that it was causing more confusion than clarity.
This shows that our values aren't set in stone. We're always willing to reassess and make changes when needed. Our goal is to create a culture that meets the needs of our team and our customers both now and in the future.
I think it's important for both IT professionals and developers to explore different open source technologies. There's a misconception that you have to choose between proprietary and open source, but there's a new category called commercial open source that combines the best of both worlds. Companies like Elastic, HashiCorp, and GitLab offer strong commercial versions while still keeping their core open source.
For those used to proprietary software, commercial open source provides transparency and trust. These companies are public and provide financial disclosures, and their code is available for scrutiny. On the other hand, for those who lean towards pure open source, commercial open source offers professional-grade solutions for enterprise and critical infrastructure needs.
So, whether you're more inclined towards proprietary or open source, consider exploring commercial open source. It offers the openness of open source with the reliability and support needed for enterprise environments. It's a new and exciting category of tools that can benefit both developers and IT professionals alike.
Ian's career began in Microsoft Engineering before co-founding a video game company during his college years. In 2015, he initiated the open-source project Mattermost, which has since evolved into a leading collaboration solution. Today, Mattermost serves critical sectors such as defense, government, and financial services, reflecting Ian's entrepreneurial spirit and ability to identify market opportunities. In his free time, he enjoys socializing with friends and making new ones.
You can follow Ian’s work through his LinkedIn or by visiting Mattermost’s website and their GitHub.
At Apex Lab, we're experts in end-to-end digital product development. Our remote-first company operates with a flexible schedule, allowing us to help clients tackle difficult challenges worldwide.
Want us to build your next idea or upgrade your existing product? Our experts cannot wait to work with you. Get in touch with us and let's make this happen. π‘π