Highedge Soft is a company founded by two software developers who had a direct contact with their clients from our very first day at work.
Our experience grew in small teams and on a long term projects. Small teams exposed us to all the outcomes of our own decisions. Simple coding mistake which breaks production site in the middle of a day or a poor understaind of requirements leading to unwanted results - in most cases we were getting feedback almost immediatelly and directly from our users. Staying on a project for a long time, we have also learnt hard that having no problems for a few months isn't a guarantee that we did our job well. Finding that a recently reported issue which interrupts normal business is a result of our own decision made a year or two ago is painful but valuable experience that has formed our understanding of what we should be doing and how.
As a software developers, we remember that:
- We solve a problem of your business, not directly translate your requests into code. Every time we receive a task, we will first understand what kind of business issue it is expected to resolve. Should it be a new project or a modification to existing one - we make our best to understand real world problem behind it. Task received is never set in stone. If we think it is necessary, we will propose a modification to whatever part of the task we think is not optimal. At the same time, we beleave that you are the best person to know what is good for your business. Before anything is implemented, we will make sure that you are aware of what we are going to do and let you choose. Your word is final even if your decision does not look optimal to us.
- We produce code, but it is always just a tool, not a final goal. We like our code to be "good" or even "perfect". At the same time, we understand that code is only valuable if it solves people's problems and is available when it is needed. We know that poorly designed code can cost a lot few years later (yep, we saw that on our projects) and we do our best to do a good code. At the same time, we accept that tradeoffs are unavoidable when something must be delivered "for yesterday".
Never approach tasks thoutlessly, always look for a better option. Keep your code in the best shape possible, but remember that ideal code delivered too late is useless. Don't be shy to ask questions and propose your ideas, but trust your customer's experience in his business. That is what we do by ourselves and what we demand from our developers.