Excellent article! I will certainly make it suggested reading for future clients. There are a few points I would like to add.
To my mind, there are two very distinct phases of development for MQL4/5 [ and most types of software development for that matter ] -- Prototype and Production. For a lone trader in a very controlled environment, a prototype will often suffice. For an EA or Indicator destined for a broader market, a much higher level of quality is required. Not only should this 'industrial strength' product be able to anticipate and handle a myriad of exceptions, errors and environments, it should also pass a rigorous testing process. Many 'commercial' offerings on the market today for MetaTrader are no more than Prototypes. For the programmer and the trader, it is very easy to get excited by the results from a prototype and consider the project complete. Then the friction begins as the odd hiccup occurs -- the trader considers he has paid for an industrial-strength product, and the programmer is very clear about the fact he delivered a prototype.
The transition from Prototype to Product can be a long and painful process, and it is quite understandable that the importance is sometimes understated.
Another observation from my IT background is the importance of thorough testing. As the complexity of the driving algorithms rises, so too does the testing requirement, exponentially so in some cases. And it is not reasonable to assume that the programmer can cover all the possible combinations and permutations. Ideally this task is passed to a separate test-team for feedback.
As the author of the article points out, specification-quality can make or break a project. A technique I have employed with some success is to put the cart before the horse, and have the trader attempt to produce the specs as if he was writing the user-manual. Can work amazingly well given the right circumstances. In addition, it is important to emphasize the iterative nature of any co-development between coder and trader. Rarely will a trader have the experience to think ahead of all the ramifications of what he sees as a simple implementation. All contracts I enter into, either written or implied, make provision for 'unexpected' iterations.
BA [ Developer -- ForexGridMaster ].
![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
New article How to Order an Expert Advisor and Obtain the Desired Result is published at mql5.com:
Author: Andrey Khatimlianskii