HadronZoo: Bespoke Software Developers
The HadronZoo Bespoke Programming Service
For Linux Servers

Our Methods

HadronZoo Bespoke Software provides high levels of security, impressive performance and favourable functionality to cost ratios, however there are important caveats. The service is fully remote so no visits, ever! And we stay with what we know. We are real time Linux C++ developers so the core of whatever we produce on your behalf, will be written in C++, use real time techniques and run under Linux. In addition, we use the HadronZoo C++ Class Library as the main framework and Dissemino for any web functionality. We know developers must be on the same page as the client so we do realize we will not be everyone's cup of tea. C++ is not everyone's favorite language and not everyone will like our methods. This isn't flexible but it is organic. If we were to be more flexible, we would have no unique selling point and could not excel. But by focusing on clients whose thinking naturally coincides with our own, we have and we can.

So what are our methods and how might they differ from whatever is the norm? Well for backend number crunchers, data rationalization programs, automated web scrapers and other such workhorses, there probably won't be much difference between our solution and that offered elsewhere. However our database is in-built and Dissemino never calls server side scripts. All web functionality is either in-built and commanded by configs, or it is provided by application specific C-interface functions. In most cases, the in-built functions suffice so there will be no C-interface functions and no need to use C++ in the web components. Pretty much any web developer would be able to take over the project. The C-interface functions are only for complex functionality that would not be easy or cheap to develop in any language, even a scripting language. Where these are deployed, the web developer will need C++ skills. The upside of this unorthodox approach is better security and performance. The downside is that it may narrow your choice of alternative developers.

If you are still reading this page and are looking for website development services, the Dissemino Web engine Manual, should tell you pretty quickly if it is worth putting in more time! For those who do know C++, the HadronZoo C++ Library Manual should give a good insight into the code and the thinking behind it.

Incremental approach

In our experience, projects only become a journey from A to B on the final approach to B. Prior to this stage, they are a journey from A to an estimate of B, a subtle but important difference. It's the human factor. Ideas come to people more readily than the detail needed to realize them. For an idea to become an objective and thus a project, it must continue to appeal but above all, it must be feasible. Not only possible, but a goal you could realistically attain and derive some benefit from so doing. However much detail you might need to determine an idea is feasibile, you will need more to implement it. We have all had bright ideas we know we can do, only to find when we sit down to do them, the first word that comes to mind is "ah". We get past this point by settling on a first task to focus on, then in small, often experimental increments, we go on to cross all the bridges. We get there in the end and when we do, we say things like "If only we had known how complicated it would be!". Almost always the finished article is a significant evolution from the origional vision.

As a business with an objective in mind, you will need to know if the investment makes sense. It is sort of important to know the total cost and how soon it can start to repay! Not much room in that for any lack of foresight. It might surprise you then, to learn that HadronZoo insists on an incremental and experimental approach. Why? Because in spite of false starts and blind alleys, it is cheaper, quicker and a lot more reliable than any guess at detail, no matter how educated that guess might be.

It is not easy to think more than a few moves ahead. People who can write detailed system specifications in advance are expensive, and those with any noteworthy talent for it, very expensive. They are not particularly quick either. A specification can take weeks rather than days. Nor is there any guarantee that the specification is accurate or complete. Using UML helps but that is all. Communication is not straightforward. The system designer needs input from the client. If all you want is a single page that says "Hello World", it would be difficult to get that wrong. But things don't have to be a lot more complicated than that before they become difficult to convey. People ususlly know their business, but tend to be better at conducting it than they are at describing it. And some people really don't know their business. They live in an ivory tower and have little clue about life on the shop floor.

We can't tell you up-front what your system will cost but within a week and from around $500 to $2,000, we can provide something that will go a very long way towards answering this question: The first iteration: A 'stalking horse' comprising a working set of screens. Whilst the more detail we have to start with the better, we can get to this point with only a crude understanding of the eventual system. Responses to ths first iteration usually include the phrase "What we actually meant was ...". Often it becomes apparent that screens are missing. None of this is a problem. Yes a lot of the early work is thrown away, but before the second iteration begins, we are a lot closer to the eventual description and thus the eventual price.

Development of the system proceeds as a series of further iterations. Each iteration is fixed price and usually small, one to two weeks work. And in the last iteration, your system is delivered. Throughout the process, the evolving system itself serves as design aide. If anything goes in the wrong direction, it will be apparent much quicker than anyone could notice an ambiguity in a boring design document! Prevention is always better than cure of course but design alone, does not always serve to prevent.

The Contract, the Costs and What is Delivered

The iterative approach massively simplifies the contract between ourselves as supplier and you as client. You pay per iteration, half at the start, half on delivery. Some projects require multiple developers, others only one. Lone developers are usually work shadowed as an insurance policy, which adds 25% to total time spent. The rates are comparable to directly hiring staff to carry out the work so the standard fees are $250 per person per day. Discounts of up to 20% are automatically applied after the first 10 days.

HadronZoo emphasizes independence. We are happy to work with whatever packages the client prefers, EXCEPT those that pre-process and hide source code. It should be noted that most of what we produce, does not depend on packages. In particular, we are aiming to deliver a tar file that you can copy to your machine, position in a directory that makes sense to you, untar, make and run - completely independent of whatever else is going on. We avoid like the plague, installation nightmares in which a package assumes all sorts of other programs are in place.

Greenfield vs Legacy and the Wherewithal to Deliver

When procuring bespoke programing services an obvious consideration is the wherewithal of the supplier to deliver. What league are they in? How big are their projects? Can they run a long distance race? We are not aiming for massive projects and up to a point, the incremental approach sidesteps the issue. But to get an idea of league, consider the download as a project. That took approximately 10,000 man hours of work. You may decide for yourself if that constitutes reasonable progress but it does show a degree of staying power. We can go the distance but we are wary of the terrain. We are very confident with greenfield development, complete re-writes and parallel development projects as these are all cases that start with a blank sheet. Less can be promised with legacy systems as these usually involve steep learning curves and can be poorly documented.

Another obvious consideration is the level of ongoing support. Alhough our software development services are structured to maximise client independence, for the benefit of clients who prefer to outsource the hosting and administration of their applications, we offer a Hosting and Support Services.

Please use the 'contact us' form to describe your project requirements