We are team of two: I am sole developer and there is another person doing sales, support, training and all the rest of stuff.
We are team of two: I am sole developer and there is another person doing sales, support, training and all the rest of stuff.
- running Paradox in network is quite difficult. Whole database was written in 80s before things like tcp/ip was thought as a good thing and all the networking part was hacked inside and it shows. Because of weird architectural choices made 20+ years ago I am not able to migrate out to sane database without rewriting whole application. (250+k lines of code)
- BDE could be quite unstable in various scenarios and you spend quite a lot of time fiddling with memory space, memory size and other variables to make it work.
Can this functionality be separated out into a different process, or called from a DLL compiled using Visual Studio?
The big problem with legacy software without huge user base and limited space for growth is that it just don't make sense to invest huge amount of time and money in it.
Reports are added as an afterthought. Then the resulting spaghetti code patterns are replicated cut & paste, where they then slowly melt into surrounding code in a way that makes them impossible to extricate. After some years, it then becomes obvious that reports are the primary driver of value for those clients.
My big problem is I have so many code paths that I can’t fully test the interactions between the different modules and functions (there are over 10^25 different possible paths). I am not sure what can be done about this given the functionality of the software is critically dependent on this flexibility. The best I have been able to come up with is testing 99.99% of the most popular paths and building in a lot of error recovery code.
Interesting. Have you considered the pros and cons of writing a custom fuzzer for your app, and whether it may help?
But don't all those paths depend on the inputs, ultimately? Trying to understand this here. Can a fuzzer that generates lots of different inputs, not be used to exercise all those paths?
How big is the EXE?
Currently I am also doing some freelancing (iOS apps) and run my other tiny software company.
Starting this partnership is actually funny story: one day I seen an ad which says "Looking for programmer" and there was no other information or text, no company info nothing. At that time I was product manager with big team reporting to me and I feel quite unhappy, missing my days as a programmer, waking up at 5 am to do some coding for fun. I seen it as a sign, so I just replied, quit my job and the rest is history.