What Makes for a Great Development Culture

For many employees, the culture of growth and development is no longer viewed as simply “nice to have.” Plenty of hires would reject a job simply because it doesn’t give them sufficient learning opportunities, no matter how well it pays.

But putting “growth opportunities” on a job description and actually having a great development culture are two very different things. How do you actually tell the difference and choose the company that will give you what you seek?

That’s what I’m going to talk about today. I’ll cover the key aspects of building and maintaining a great development culture. Many of these tips come from the experience of our product teams at Railsware. From the early days, we made development culture the core of our business. It paid off big time, both with employee retention and the quality of our projects. Stay with me to see how we’re doing it.

Why is a development culture so important?

There are many reasons why millions of employees around the world put so much value on development opportunities in the workplace. Many of these reasons are just plain selfish, and that’s perfectly fine.

As an employee, you probably seek a place that will move you forward. You’ll be more competitive in the job market, you’ll have a better shot at getting a promotion and a higher paycheck. With multiple strengths on your resume, you’ll have more flexibility in choosing the path you want for yourself.

For many engineers, marketers, product managers, ops and others, it’s simply the motivation coming from constantly moving forward that’s a driving force. You enjoy your daily routine more, you’re more engaged and approach your daily tasks with more enthusiasm. You find creative ways of solving problems and take satisfaction from doing so.

Without realizing it, you spread your enthusiasm onto the entire team, boosting their performance as a result. Smart managers and business owners immediately spot that and will find a way to reward you.

Key aspects of a great development culture

Let’s talk now about what really makes a great development culture. If having one is vital to you, this may be a good indication of what you should be looking for at your future workplace.

Quantity < Quality

If you ask people why they joined Railsware, you’ll often hear the word ‘quality’ as one of the core reasons. And many of them have some pretty compelling stories to justify this choice.

For many companies, an engineer’s performance is assessed by the amount of code they can ship. So developers tackle long lists of tasks and ship tons of features, sprint by sprint. They hardly have any time to think about the big picture or try a different, potentially more successful approach.

Similar things happen in other professions. Employees are constantly told to deliver more, to work faster, to always meet the monthly quota (and preferably, to exceed it). These numbers are often the sole factor impacting their salary and promotion possibilities. As a result, employees deliver just what they’re asked for and move on. They end up getting frustrated.

In my previous jobs, we were often aiming for 80/20 quality. We wouldn’t have time to do the proper refactoring. Overall, code was good but it had weaknesses here and there. This resulted in a tech debt that we had to pay down when it became a roadblock.

During my first project at Railsware I was told to slow down and think about the best solution I could find. I had time to reflect on a feature, discuss it with colleagues and pick the best and most suitable solution for a product. This allowed me to gain a deeper understanding of products and architecture. It inspired me to deliver my best work and helped me grow a lot in the process!

Anton portrait

Anton Sivakov

Full-stack Engineer

Working remotely

Many successful companies are built by world-class specialists who know exactly what their peers seek. As a result, these companies don’t just push for the highest results. They also aim for the highest quality of work and give people the time they need to get there.

This creates an environment where everyone is striving to not just deliver the job but to deliver it well. The organization benefits, and when challenges are tackled, the employees’ engagement is also on the rise. It’s a win-win for everyone.

Artur portrait

Artur Hebda

Full-stack Engineer

Working remotely

I no longer need to wonder if spending an extra hour or two polishing a solution is the right thing to do. At the end of the day, with smarter planning and a pursuit of the right approaches, we’re constantly able to deliver on time without sacrificing even a tiny bit of quality.

Want to work in such an environment? Apply for one of our open positions.

Freedom to choose how you want to grow

Traditional workplaces often rely on sequences of formal training that employees undergo, whether they want to or not. These are still instructor-led, classroom-style trainings that many employees view negatively and treat as a necessary evil.

They make a lot of sense from the company’s financial standpoint, but I bet they’re far from the type of learning you seek in the workplace.

A great development culture focuses on your individual learning needs, allowing you to choose how you want to grow and offering many options to do so.

As an example, if you’re a Ruby developer, you may want to pick up some frontend skills or get familiar with a new library. Or maybe you’re up for some UX expertise. Perhaps some product management knowledge would greatly contribute to your skillset. There are endless possibilities, and the last thing you need is an employer choosing the development path for you.

Working in a single context was never enough for me. While I started as a recruiter, I quickly found marketing to be incredibly interesting! As a result, I got to grow in several new areas that I didn’t know much about before. We’ve launched the Railsware Academy Youtube channel, where I mastered my skills in education, video production, marketing, and community management.

Anastasiia portrait

Anastasiia Avramenko

Community Manager

Working from Kyiv office

When you have many projects going on, a bit of technology can help. At Railsware, we’ve built an internal tool to gather every aspect of the company’s every project. Each is represented with a single node. There are more than 100 to choose from.

Each Railswarian can review the entire list and for mark their level of interest for each node. Then, when the need arises, a project leader can immediately access the list of folks who want to get involved. They can get them on board and give them the exact opportunity they signed up for.

This is how many marketers, recruiters, engineers or product managers got involved in completely new contexts—internal events, community building, or office hacks, to list just a few of the many examples.

By the way, we are hiring. Check out our job openings.

For all of this to work, the company needs to have mature, self-driven employees on board. That’s what we also focus on when recruiting engineers. They need to be capable of mindfully setting their goals and consistently pursuing them.

At the same time, they’re not on their own. More experienced colleagues are actively involved and help their teammates set and monitor goals. This kind of guidance, in our opinion, is the key to quick, efficient development.

Oleksandr portrait

Olexander Paladiy

Full-stack Engineer

Working from Krakow office

I began as a full-stack developer working on one of the client’s products. These days, I’m a product manager for Coupler.io, our own product. Suddenly, I get to do marketing, data analysis, team process management and can help with the recruitment of analysts.

Learning in and out of the office

There’s an abundance of learning opportunities freely available today. Some people love going to conferences, others will harvest tons of knowledge from books or online courses. Many employees would rather spend their free time with families or friends and find learning outside of work to be difficult.

Smart companies encourage learning both in and out of the office, giving their employees the means to do so.

This means covering participation in conferences with a dedicated budget. Each Railswarian, for example, can use 400 USD every year to cover the conference fees. As a result, some travel even 2-3 times a year to events of their choice and bring ample knowledge home. They’re also encouraged to share what they’ve learned with the community and, when an opportunity arises, speak at conferences and represent the company this way.

But conferences are just one thing. Some companies give their employees the flexibility to choose how the development funds will be spent. Books, courses, workshops or mentoring sessions—they believe that no one should be forced to choose how they want to grow.

These days, there are many online learning platforms, and some give you access to the very best courses. For instance, a learning hub like edX partners up with top-notch universities around the world and then allows their audience to access some of their courses for free. A big plus with edX is that you can not only level up your coding but also improve your English networking skills.

You don’t need to have a big budget as even $20 per month can greatly contribute to the culture of growth and help to keep an employee around for much longer.

Having so many different opportunities doesn’t make me look for new ones outside of the company. A person can never “outgrow” a company. There will always be something new to learn.

Aleksandr portrait

Aleksandr Kunin

Full-stack Engineer

Working remotely

Learning during working hours is also important. At Railsware, we allow our staff to spend half of their Fridays working on another project. It could be contributing to this very blog, writing some hack to make the office more interactive, or consulting on a project that is completely different than their daily work.

Many side projects grow, new perspectives are shared and everyone appreciates a chance to evolve in a new domain.

The culture of experimentation is embraced, not criticized

In general, the culture of startups and tech companies comes with a lot of uncertainty. There’s just no obvious way of doing things and even if there is, it might not be the best for your company.

Smart companies encourage their employees to figure out solutions to problems rather than giving them lists of tasks to complete. And they do it for a reason.

Many (if not all) of the best employees thrive in uncertain conditions. They love challenges and find joy in tackling them creatively. And they learn a lot in the process. At the same time, they get frustrated when they’re blocked by procedures, finances or decisions that are not theirs to make.

The role of a company in such an environment is to simply empower their employees—to give them all the tools and permissions they need and encourage them to experiment with their bold ideas. And even if something doesn’t work out, the company must appreciate the efforts and teach employees how to learn from their mistakes.

Experimentation is basically the bread and butter of our product teams. Since we don’t have managers to create tasks for team members, everyone’s responsible for a certain area or feature. The entire team decides what needs to be done, but it’s up to each individual team member to figure out how exactly it will happen.

Of course, employees can get the help they need from teammates and can consult more experienced Railswarians, no matter the current project. But at the end of the day, they’re responsible for delivering the job, and it’s up to them to know how to do it.

Sharing and learning from each other is key

How would you prefer to learn a new skill—from a long, detailed tutorial or from a senior colleague that knows it inside out and can help you get there, too? With the abundance of knowledge available online, you can learn virtually anything with hardly any effort. Yet each person we talked to said they would pick the latter every single time.

Smart companies embrace this situation. They recruit open-minded engineers who are willing to contribute to their colleagues’ development. And they give extensive opportunities for spreading valuable knowledge throughout a company.

Aleksandr portrait

Aleksandr Kunin

Full-stack Engineer

Working remotely

The crucial thing for me was to surround myself with people I can constantly learn from. This way, I can quickly catch up and improve myself by working with them every day.

And let’s face it, there’s a lot of knowledge worth sharing. It could be an innovative approach to a problem, a valuable resource someone found or just a piece of news that colleagues should find useful (or amusing). Findings from a failed experiment can also make for a pretty compelling knowledge base.

Sharing can happen in many forms, from internal training to talks headed by different team members. It can be a pair-programming or mentoring session that more experienced teammates have with newcomers. It can be simple updates posted bi-weekly or monthly, letting everyone catch up and adopt new ideas.

At Railsware, we have dedicated Slack channels for each of our in-house crafts. Everyone can freely venture to #craft-design, #craft-product-marketing, #craft-html-css, #craft-react or the general #craft-engineering. There, they’ll find several discussions, opinion exchanges, resources, and inspiration. Everyone’s always welcome to chip in with their own findings with the knowledge that they will be appreciated.

And if Slack isn’t enough, you’re always welcome (and encouraged) to write a Wiki tutorial for our knowledge base or a post for our blog.

A feedback culture is essential

For a development culture to really work, the company needs to be built on feedback. And it can’t be just a buzzword that might attract talent but is hardly present on a daily basis.

I’m talking about the joint commitment to support and help each other grow, no matter one’s position or amount of experience. This is a culture where no one is afraid to share feedback and is eagerly waiting to receive it. Feedback is the foundation of growth, after all, and many engineers look for places that genuinely live by these rules.

At Railsware, we implement feedback on many different aspects of our employees’ work. There are one-on-ones where teammates share their thoughts with each other and can thus resolve issues. There are regular retrospectives that allow a lot of feedback to be shared and discussed, helping improvements be made on the spot.

A lot of feedback is given casually, while working together or reviewing each other’s work. It can be a quick Slack message or a brief watercooler chat in the kitchen. No matter the form, you can be sure that your feedback will be taken into consideration. This encourages people to share more constructive thoughts without the worry of being misunderstood.

I love the fact that I can publicly share my thoughts on virtually anything going on in the company and know it will be appreciated. Getting challenged this way by people working on completely different projects guarantees diverse inputs and often leads to a better outcome.

Artur portrait

Artur Hebda

Full-stack Engineer

Working remotely

And during the annual retreat, we gather everyone’s thoughts on the company’s current path, working in groups to create actionable points to all the feedback we’ve accumulated. Everyone is welcome to speak up and many great ideas are born this way, year by year.

Wrapping up

These are, in my opinion, the key aspects of a great development culture that I think we have managed to build at Railsware. Of course, there is still much to learn and introduce, and we’re already looking forward to this year’s input from our colleagues.

If you’re interested in some more insights into how things work at Railsware, our article about Holacracy should be a valuable read. Also, check out how remote work culture works so well for us.

That’s it, until next time!