10 Tips for Working With Software Developers

10 tips for working with software developers

If you have ever done or been involved in a software development project, you will agree that software developers are essential. It is therefore important to be able to get on with them as one.

To make it easier for you and increase the chance of a successful project, I share 10 tips for working with software developers below.

1. Nothing is impossible, but everything has a price

Some things are damn near impossible, but when it comes to software development, almost anything is possible.

But that statement comes with a caveat: nothing is impossible, it just might take more time than you have, cost more money than you can afford, or require more developers than you currently employ. In all likelihood, it's a combination of the three.

The same goes for achieving ambitious goals in software, but it won't happen overnight and you may have to spend more money than you thought.

It's not that something can't be done; some things are just not practical.

2. Don't ask developers why software has bugs

That's like asking a writer why typos exist.

That's like asking Lionel Messi why he misses 100% chances every now and then.

Nothing and no one is perfect. Software developers are no exception.

3. Software developers are smarter than you

It could be that you have an IQ of 147, but then I hope you're not wasting your time reading this. I hope you're somewhere saving the world.

In all likelihood, the software developers you work with are smarter than you. And that's okay.

Don't let it affect your ego or how you do your job. Resign yourself to it. You may have been at the top of the class all your life, but when it comes to software, you are on their playing field and they are the experts.

4. Respect the people who build the software

Software developers are not robots. They don't sit behind their computers waiting for your commands.

Although their work often involves people asking them to do things, that doesn't mean they enjoy people barking orders at them.

In addition to treating everyone with respect, no matter who they are, you should actually be nice to the developers you work with. You shouldn't be respectful just because their skills are incredibly sought after or because a good developer is worth their weight in gold.

You should be respectful because what they can achieve is real and amazing.

If you respect them it will make your life easier, it will make theirs easier, and you might even learn a thing or two.

5. Listen to the developers you work with

The developers you work with know the ins and outs of the platform they built and they know when something is extremely difficult to do. Whether that determines how you work is up for debate, but it is necessary that everyone is on the same page.

You can try to fight for what you want, and you might win, but even the most informed non-technical people probably only see 10-15% of the landscape as to why something should or shouldn't be done from a technical standpoint.

Invariably, business needs and the technical side of things will intersect and dictate certain courses of action. That's a fact. But make sure you are flexible and talk to the developers before you promise the world and fail to deliver.

Remember: the developers are the ones who ultimately bring these promises to life. They better agree to whatever is promised.

6. A five-minute conversation can save major problems in the long run

Don't assume something is easy to do. Don't assume that because a previous project worked a certain way, the next project will do the same.

Communication is your friend.

I can't tell you how many times a five-minute conversation could have prevented major problems and made everyone's lives easier.

You need to communicate 100% of whatever it is you are discussing. Not communicating 80% and assuming that the other 20% is implicit or that the other 20% is not a problem. I have been surprised by the fact that something I thought was simple or implicit is not simple and was not implicit.

7. Estimations are an inexact science, and things will take longer if specifications change mid-project

For obvious reasons, one of the first things software developers are asked to do at the start of a new project is to estimate how long it will take to complete it.

But if project deliverables and specifications are not set in stone, it can be nearly impossible to provide an accurate estimate.

In cases where the correct information is available, keep in mind that complications always arise. Estimates are called estimates for a reason. It's a best estimate of how long things will take, based on what is known now.

But if the project specifications change six weeks later, you can bet the estimate will change too.

Making changes to what the developers are building halfway through a project is like telling an artist you want them to paint an apple and then when they're halfway done painting the apple, changing their mind and asking if they can paint it instead want to paint a BigMac.

They're both paintings of food, right? What's the problem?

Wrong. It's a very big problem.

Things happen. There are miscommunications. People change their minds. People make mistakes. But expecting changes to the project won't impact timelines is naive and a great way to piss off developers.

8. If you can get developers excited about a project, do it

I hope this doesn't come as a shock to anyone, but here goes:

developers will be more interested in writing code if they are excited about what they are working on.

As far as I've been able to tell, writing code is no different than any other job in the sense that if you're motivated, you'll generally do better work.

At the risk of repeating myself; the developers you work with are not robots. It is very different for them to be mindless than to work on something challenging and interesting.

The nature of what they are working on and the overall team morale around a project can make a huge difference. You'll be surprised how quickly things get done when people are really excited to work on something.

(A quick note on this point: if a project isn't exciting, don't try putting lipstick on a pig. Go back to #3. Software developers see through any disingenuous attempt to get the team behind something no one really cares about)

9. Software development is not magic

When you use the perfect app or surf a beautifully designed website, it really feels like magic.

But for every app or website that feels magical, there are thousands of lines of code written by a human. It's easy to see the finished product and think that the software developers are magical wizards who just snap their fingers and make beautiful, functional things appear. But be real.

The first few builds of an app or website will be rough. It will take time. There will be bugs. There will be regressions. As it's all part of the process. The end product may feel magical, but everything up to that point almost certainly won't be.

10. Enjoy the process from first draft to final product

By the time the product launches, everyone is probably exhausted and it may be a small miracle that everyone involved can still be in the same room. But no matter how difficult it was during the development process, don't forget to take a step back and appreciate what has been built.

The fact that a lot of ideas and sketches are now something you can touch and carry in your pocket is a small miracle. Enjoy it and enjoy the fact that you are working with great developers who played a huge role in making this possible.