What is the best thing that your software company can do? I believe the best thing any company can do is establish a collaborative culture. Collaboration is very important within software development. Having a culture that increases that, makes it easier to promote innovation and increase morale.

ETA employees collaborating in Richmond, VA

ETA employees collaborating in Richmond, VA

Accepting collaboration at first can be very difficult. Software teams are comprised of people from different backgrounds, values, personalities and coding techniques that usually are not all the same. So how do you get a team of software engineers to collaborate without causing discord between the team?

There are several tools that are used to track time but what tool is used to track your collaborative culture? What I’ve found useful is something called ESLint. Out of the box, ESLint is a tool for static code analysis. This looks at your code and performs checks that doesn’t adhere to a certain style guide.

We found it so useful that as a team, we created our own ESLint configuration. Our configuration, eslint-config-eta, can be downloaded and used in your javascript codebase. What this did for our collaboration culture is allowed us to create a set of standards that we agree on to ease collaboration. Now we can switch between projects and expect the coding style to be a certain way.

Collaborating isn’t for you, but for your team

If I can go into a codebase and expect code to be a certain way that we are used to, it will not take long to find bugs, add tests, or even refactor unoptimized code.

The biggest misconception with software engineering is that it has to be hard to read. One of the biggest and most egotistical things I remember saying learning to code was, “It should be hard to read, it was hard to write.”

This doesn’t help your team and puts you at a disadvantage when it’s time to fix bugs with code you don’t understand. What you want to impress upon your team is that clean code will help you more than anything. A quote from Brian Kernighan says, “Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it?”

Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?

Brian Kernighan

Our collaborative culture allows us to mentor junior developers easier by creating a space for understanding implementation all the way down to why we use certain tools. This culture will help any company, so why not take advantage at whatever tool you can use to implement that.