The reverse engineer oxymorons

Expensive is cheap

We make expensive software that will be cheaper than anything you've ever had.

Simple is hard

A succesfull piece of software is always the simplest solution to a given problem.

3 > 100

In software development, three sufficienly qualified workers are worth more than 100 underqualified workers.

Divide and be conquered

The famous phrase "divide and conquer", that applies in many fields (mathematics, algorithms, politics), is completely unapplicable to software development projects.

Having fun is more important than working

The best software developers are persons who enjoy the perfection of their work, not those who work just for the money.

Phd's are dumb

Academic excellence is not sufficient to guarantee that a person is a good techie.

A brief explanation

Expensive is cheap

Software must be well-designed in order to function at all. Over the years, we have seen many companies making the expensive mistake to think that software development is an easy task. Paradoxally, this mistake is often made by more intelligent people (Data Scientists in industry, Quantitative Analysts in Banks or Actuaries in Insurance companies). These persons usually understand how code executes on a computer, so since they are able to create small patches of software that work once on one computer, they tend to grossly underestimate the complexity of making IT services that can work 24/7 on distributed servers or in the "cloud".

"I don't care if it works on your machine! We are not shipping your machine!" - Vidiu Platon.

Simple is hard

A succesfull piece of software is always the simplest solution to a given problem. Finding that simple solution is an incredibely hard task, and requires a lot of experience in algorithm design and a good knowledge of modern software and hardware characteristics. A good design for software is usually very hard to create such that it is easily maintained and changed when needed.

"A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away." - Antoine de Saint-Exupery

3 > 100

Unlike many other types of work, productivity in software development can be orders of magnitude higher between persons. This might seem unintuitive to many people, but we have seen small startups compete with large companies, just because they have the right people creating the tech. In skill of software development, all men are not created equal whether we like it or not. A key to success is to be able to detect these persons and hire only them. Others will most likely be marginally useful, and at worse, counter-productive.

"The best programmers are not marginally better than merely good ones. They are an order-of-magnitude better, measured by whatever standard: conceptual creativity, speed, ingenuity of design, or problem-solving ability." - Randall E. Stross

Divide and be conquered

The famous phrase "divide and conquer", that applies in many fields (e.g. mathematics, algorithms, politics), is completely unapplicable to software development projects. Traditional business-sector corporations have tried to cut and divide software development in many small, single-purpose jobs, in order try to standardise the software development process, and impose a predictable, priceabe business structure. This is actually the worse mistake of all, and ensues: large teams of low-qualified analysts, developers, infrastructure and devops guys, database admins etc. of whom no-one knows the entire business chain any more, nor the software design. This can quickly lead to negative working environments and failing projects.

"You can’t have great software without a great team, and most software teams behave like dysfunctional families." - Jim McCarthy

Having fun is more important than working

The below quote from the guy that created the probably most-used piece of software in the world summarises this axiom quite well.

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program." - Linus Torvalds

Phd's are dumb

A final common mistake, is to look at academic excellence to find the best software developers. This is, however, a grave mistake. Passion is the only factor that matters in tech. The required learning curve to become a great full-stack software engineer will take years of full-time work, plus off-time "hobby" coding and experimenting. Only passion will drive people to do that. Moreover, the academic grading system also creates people who are good at memorizing and reproducing things only, while not understanding them fundamentally. Or to make people think that their specific field rules them all and try to apply their models to all problems. This can lead to improper modelling of real-life problems.

"In theory, theory and practice are the same. In practice, they’re not." - Yoggi Berra

What we do.

At reverservices, we don't just design or implement software.

First, we listen. We listen to you, because you know your business, we don't.

Then, we listen. We listen to you, because usually, you already tried to digitalize your business, but you failed. We need to understand why.

Afterwards, we talk. Usually, you need to make difficult decisions regarding the current situation, because as our first oxymoron states, we are expensive on the short-term, cheap only on the longer term. Maybe you already invested money with poor results, so you will need to cut a project, this is usually hard and if you're out of luck, you are critically dependent on that project.

Finally, if we think we can help you, we propose a solution, a time-frame and a price. If at that point, you are interested, you pay 50% of that price and we start working. Usually, at the end of the time-frame you are very satisfied, and you pay the resulting 50%. We have not had a single project that ended up the other way for now.

After that, we live happily ever after.