I have been working remotely for more than 20 years, initially as a developer and now as a manager. Things have changed drastically over the years, and I feel lucky to work with amazing people for so long.
Flexcode Software is my small software development shop. We mostly do web and mobile development, but we are flexible. We tend to follow the concept of Think before you do, so we don't rush things.
A small list of things I (think) we figured out after doing this for so long
Every person you add to the team makes it exponentially complex.
Some people play nice until they don't.
Have bullet-proof legal documents.
That has bitten us. It hurts, and that's how we grow.
Hiring the right people is hard.
Most people don't like what they do. That's because they never got close to achieving mastery of any kind.
Give them space to do it.
Evaluate what they are doing with this space.
Don't be cheap on tools. Pay for what's needed to run your company.
More than that: Don't be cheap on people. Pay for what's needed to run your company.
We don't do fixed-priced projects.
The rationale is that the provided estimate is merely an attempt to quantify several decisions that can take more (or less) time than initially expected -- not even accounting scope changes and new requirements.
With this in mind, setting a price for the entire project is unfair to the company and the client. It subverts the idea of spending the required time to craft excellent code. It also closes the door to anything not previously scoped out (and converts new features conversation into business negotiations to determine the price of each one of them).
Quality code takes time and effort to be done, and setting a fixed price goes against this. Even if the engineers are super ethical, let's be honest — they would make the same money for well-thought-out or rushed code.
We work hard to avoid hiring engineers with this mentality here, so the ones with us expect to take their time and have time to think before they do.
In the long run, the one who will suffer most with a fixed-price project is the client — because it will cost more when they need to hire someone to add new features or keep the application running.
Last updated: March 22nd, 2023