3 Principles to Triumph Your Software Project

Practical experience that shapes billion dollar enterprise

Image for post
Image for post
Photo by Helloquence on Unsplash

TL;DR

  • Thinking and operating in lean and agile principle helps us stay focus and iterate mindfully.
  • Communicate to align as much as possible.
  • Frustration in the team is normal and humane. Acknowledge it and work on it collectively.

I have been very fortunate to take a part in important topics at trivago. We have brought to live groundbreaking changes in accommodation search to empower all our users to discover and to book their stays naturally and freely. It was clear right away that our data-informed approach is the foundation to our innovation. So for the past two year, I have been dedicated to contribute to our tooling within the organization to ensure the integrity of our framework and explore new possibilities to understand the needs of our users.

I have the privilege to work in a cross functional team with a group of amazing people. Talented and driven. We have undertook major projects in the landscape of wide-ranging operational and analytic topics that impact the company’s business trajectory.

Along the way, we have embraced software development methodologies and principles like Scrum and Lean Development. However, we have also realized that the best practices in the industry is not a guarantee to successful execution. We noticed a few things:

  • Very often, we fall back to waterfall mentality.
  • Development velocity and quality can vary noticeably.
  • Frequent challenges and pushback from stakeholders.

These observations are common but they got us to think if we could smooth out the obstacles to increase our productivity. We did, and we learned a few things. I want to share with you our learnings, and hopefully, it will be helpful to you and your team.

Lean and Agile Starts with Mindset

Image for post
Image for post
Photo by İrfan Simsar on Unsplash

Being lean and agile does not mean trimming down features or iterating fast for us. It means how frequently we can learn and how fast we can identify the next focus area.

The best way we found to stay lean and agile is to always refer to audience needs. One at a time. Find a focus, deliver, and iterate on incremental improvements.

The concept is simple, but understanding it and withstanding adversity as a team takes time to develop. It is natural that everyone has a different idea of what goes into a MVP and everyone has a different understanding towards completion in iterations. If not careful, so often we found ourselves develop a bulk of features and derail from the mission. The cost was significant because we not only increased the risk in waste of resource and time, but also prolonged the Time to Market.

The longer it takes to deliver, the more opportunities we are missing out on testing and validating our assumptions. It leads to higher risk of skew decision for the next step of your project.

So it is very important for us to come up with a consensus in thinking lean. It is everyone’s responsibility to remind and challenge each other to act lean and stay focus. Once we are able to stay focus, we give ourselves a chance to remain agile. Rework is a great book to refer to when it comes to lean operation. The authors tell stories about their entrepreneurship journey and illustrate how far we can go with the lean principle.

Do Everything You Can to Form Alignment

Image for post
Image for post
Photo by JOSHUA COLEMAN on Unsplash

Communication is the key to success. We have learned that it requires proactive effort to align our expectations in every aspect. For product owners, communicating timeline and features to stakeholders and users is critical. Finding the right channels and articulating the right messages not only help the audience understand the messages, but also set out clear parameters for the team to deliver successfully. For design teams, expressing design concepts using appropriate medium and language to present helps everyone on the team to see and think the same vision. The less free interpretation from individuals, the easier it is to manage risk of skewing from timeline. We learned to adopt Behavior Driven Development(BDD) to define user interactions for all our features to align with all parties and significantly reduce development defects and regressions. For Engineering teams, it is important to speak out intuitions and concerns to be at the forefront of the Design Thinking process and innovation. We have learned that engineers have in-depth insights of products. They often could identify the short coming in designs, processes, and products. It helped us to pin-point road blocks early in the iteration cycles so we can make timely adjustment.

By promoting communication, we also found ourselves slowly fostering a culture based on candor. We value opinions from everyone on the team and we trust that all comments come from the drive for the product to succeed. We have noticed that healthy exchanges not only allow us to iterate more effectively, but also increase team moral and product quality.

Your team has mood swings. Acknowledge it

Image for post
Image for post
Photo by Ian Schneider on Unsplash

Frustration can come out of no where very quickly. The key is to not let it build up.

We have seen time and time again that we allow emotions to build up by not saying anything when somethings frustrate us. It could have damaging effect toward team moral and the product itself. Looking back, it all make sense. By not saying anything, we stopped communicating. We stopped doing the most important thing in the culture that we fostered ourselves: Communicate with candor. Without it, we stopped identifying road blocks, we stopped sharing the same vision, and we stopped having focus. We confused our stakeholders and users.

When sensing tension or low moral, the best way we found to resolve the situation is to acknowledge it immediately. Acknowledge it, talk about it, and let it resolve itself. There are three essential components to make it work:

  • It is okay to be emotional and show your emotions. We embrace it.
  • Understanding that it is a safe environment for anyone to express oneself and we are all here to understand and relate to you. Not judge.
  • Believe in the team. We are going to work our way out collectively.

I have a strong believe that what we have done right for our group was to cultivate

  • how we think,
  • how we communicate,
  • and how we face adversity within.

I hope these learnings can serve you and your teams in a positive way. Thank you so much for reading through. If you have thoughts, feel free to drop a comment below, or connect with me on twitter!

I write about my learnings in web development as well. I am passionate about sharing aspects of development that people don’t talk about. I list just a few of my articles below and I would love to hear your thoughts on them!

Cheers!

Write for developers. Documenting web technology, coding patterns, and best practices from my learnings. Software engineer @trivago.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store