Best-Practices-1200x303
How you work with your team will make or break your company.

In this series, we’re taking a look at the best practices that Progress employs throughout engineering, product management and support. I’ve interviewed nine of the people behind Progress’ DevTools/Telerik/Kendo UI products to learn about the philosophies that guide the development of our software.

In Part 1, we looked at understanding the problem you’re trying to solve before you start coding a solution. In Part 2, we learned about the value of listening to your customers. At the tail end of that post, we started to consider how our team’s happiness directly affects our products, and therefore our users’ happiness. Today, we’re hearing more about the role of the team.

Teamwork Is Essential

What has been evident throughout my interviews with the Progress team is how open everyone is to learning opportunities, and how much they trust and value the team around them.

Communicate Clearly and Openly with Your Team

Time and again I heard about the importance of sharing about your work, asking for help, offering ideas and listening for input. There’s no time to waste on pride.

Tsvetomir Tsonev—Distinguished Engineer; Web Components & Tools

Tsvetomir-TsonevI believe that you should be open about your work and share what you’re doing and what problems you have. Rarely do things go perfectly smoothly over long periods of time. Just not being honest with your peers prevents you from getting the help you need.

There’s a lot of work that has been done before you came around, and even if something looks suboptimal or not the way you’d do it, you still need to take the time to figure out why it’s done in this particular way before you go and start something new. Being too confident can get you into an unpleasant situation, or the next person to come along behind you.

Carl Bergenhem—Product Manager, Principal; Developer Tooling PM & PMK

Carl-BergenhemOne best practice is clear communication about what you’re doing, and how that’s affecting either the evolution of the product or something related to it. We handle that a lot through objectives and key results (OKRs), which are pretty popular within a product management kind of role. OKRs allow us to clearly communicate with other departments what we’re working on over a period of time, telling them, “OK, here are some of the key results that we’re trying to hit.” That kind of transparency and clear communication across the organization ensures we are all on the same page, working toward a common goal.

Pavlina Hadzhieva—Senior Manager, Software Engineering; Web Components & Tools

Pavlina HadzhievaOne lesson I’ve learned over the years is to listen carefully and to respect other people’s opinions. I always know what I think, what I want to happen. But it's critical to hear and understand other people’s perspectives on the matter, no matter what. And people should know that their opinion is respected.

Likewise, you should also be open and share your ideas—not only to get ideas from others, but when you have one, to share it. It’s about teamwork over individual brilliance. The team and its well-being and engagement are the key to successful products. Teams are more likely to succeed when you can share knowledge, discuss new ideas and help each other to develop faster.

My role here challenges me and interests me, but being part of this team is one of my favorite things about my job. The people here are amazing, and it’s great to work with them. They’re great professionals who are always willing to help and share knowledge with everyone. I’m eager to start work every day to work alongside these great people to learn something new and meet new challenges together. I really love my job.

Help Each Other

We’ve worked to establish a place where collaboration is a given.

Petya-SotirovaPetya Sotirova—Senior Manager, Technical Support; Developer Tooling Product Development

We have people on the team who are very experienced. And another probably unique thing about our culture is that everyone is very open to providing feedback and answering questions and helping you out if you need that.

Maria-VeledinovaMaria Veledinova—Product Manager; Developer Tooling PM & PMK

Team collaboration and quality team interactions—nothing can beat a well-bonded, empowered team. No framework, technology or anything else can stand in their way. I think one of the principles to follow is to interact as much as possible, not just with customers, but within the team as well.

Todor-MitevTodor Mitev—Software Engineer, Principal; Unite UX

The cooperation between the colleagues from different departments is great. This helps us to achieve our goals faster in a better way and to deliver more than expected.

The cross-team and cross-functional collaboration within the organization really helps everyone to see and understand what and why a given feature, or even a new product, should be built—to get deeper into the problem, to get the bigger picture.

Look for Opportunities to Improve—Your Work and Yourself

Growing and bettering yourself and your skills seem to drive everyone I talked to. There’s no sitting back and assuming you know everything.

Petya Sotirova—Senior Manager, Technical Support; Developer Tooling Product Development

Never be afraid to question the status quo.

In every job at Progress, but in particular in support, we are doing a process of conversations and reviews that aim to improve our service even further. Even though we already take pride in delivering quality support, we are trying to improve on that. And I’ve seen that in my peers, in all the engineers that I’ve worked with, that we tend to not be afraid to receive feedback. To understand it, to address it and to be better.

Rossitza-FakalievaRossitza Fakalieva—Director, Software Engineering; Developer Tooling Product Development

Our Telerik and Kendo UI product lines have three major releases in the year, and after every release we have a retrospective meeting to discuss what happened—what went well, what went not so well, and we discuss the process. We are very team driven, changing the process when needed with input from the team.

Maria Veledinova—Product Manager; Developer Tooling PM & PMK

Challenging the current situation also means continuous improvement. Continuously asking ourselves: What can we do better? What feature can better serve our customers? How can we do things faster, better than the competition, better than the way we did them yesterday?

Tsvetomir Tsonev—Distinguished Engineer; Web Components & Tools

Mostly I would say we learn a lot through trial and error, but it’s not exactly that. It’s more like observation and reflecting, because you don’t need to try everything. You can observe what other people are doing, especially if you think they’re good at it, and you can learn something. I’ve had a lot of such role models throughout the years. These are usually the people who care most about the project. These people have a lot of experience to learn from. And if you take the time to observe them, you can probably learn something from them, even if they’re not specifically trying to teach you at the moment.

Pavlina Hadzhieva—Senior Manager, Software Engineering; Web Components & Tools

Keep learning and improving yourself every day. I’ve passed through several positions, and the most important thing is that you realize that there are lots of things you don’t know, and you should keep learning in order to continue doing your job well.

Code Reviews are an Opportunity to Grow

One specific way our teams drive improvement is through code reviews.

Rossitza Fakalieva—Director, Software Engineering; Developer Tooling Product Development

Every piece of code when it’s going to production should be reviewed from someone else—at least one other person. This is kind of teamwork ensures all the code practices are met.

There is a trend that developers should be responsible for their own code—and they should be—but peer reviews provide a built-in quality assurance role.

Todor Mitev—Software Engineer, Principal; Unite UX

Code reviews help you grow and get better real quick. Real quick. It’s just a good practice. It’s one of the best things that people in a team can do. Code reviews are just mandatory.

Carve out Time Free from Distractions

Blocks of time to focus can make a huge difference in your progress and your peace of mind.

Genady-SergeevGenady Sergeev—Director, Software Engineering; Developer Tooling Product Development

Creative work requires avoiding any distractions and it requires uninterrupted blocks of time. So instant messaging, Zoom or Teams calls—these can be an unproductive way of communicating with peers if you are a developer. Developers should be very mindful with their time. They should not stop what they’re doing to answer a colleague who writes them. They should allocate time to work in four-hour blocks of time. Otherwise you can never get into the zone—the high productivity zone that you need to get into in order to really deliver.

Wrap-up

When a team is open to give and receive feedback, to understand where someone is coming from or why a practice is in place, and constantly looking for ways to improve, that team will succeed and grow.

Next time, we'll talk about doing things differently and having fun.


Mandy-Mowers
About the Author

Mandy Mowers

Mandy Mowers (rhymes with Powers) is the acquisitions editor for the Telerik blogs, which means she gets to work with writers and developers from around the world to provide content to help other developers and readers learn about relevant topics. Reading, writing and editing are some of her passions. Some of her favorite ways to spend time are playing with her dog and playing video games, though she hasn't figured out how to do both at once.

Related Posts

Comments

Comments are disabled in preview mode.