How to participate in software enhancement discussion and suggestion?
Genius Vision welcomes all kinds of software improvement suggestions. As a software developer, it is our goal to make the software more and more useful to people within our abilities. However, how we do this, is a very big issue.
Like normal software developers, we used to discuss software enhancement suggestion with paid customer "in private". However, after a long period of time, with scientific evaluation, we find this method simply "does not work", so we were gradually abolishing this practice in the past few years. From our perspective, this can be caused by following reasons:
- Commercial or competitive bias. It means the discussion is not really centered on GV's product, but rather is on the interests of a specific customer. When recentered back to GV, the enhancement is not really beneficial or sometimes even harmful (to a majority of users).
- Not economically viable. The customer often underestimate the hidden software maintenance cost, so in the end it's actually not cost effective.
To remedy this, we have chosen to completely abolish the practice of "discussing software enhancement in private", starting from this year. The new practice is still under development, mainly to create a public forum or community to engage in such discussion. The forum has already been operating for several months, as anyone can join by this link, or alternatively you can use the "Dropbox Paper" collaboration platform to contribute/organize your idea at this place.
We're in the process of establishing a moderated community that can offer us a more objective perspective. It means every software enhancement suggestion should be discussed publicly, and got 2nd or 3rd opinions before we actually put into my list. This will relieve us from a very big issue that we used to face, that to "listen only to a single person" to make a change that affects all users. The decision process must at least go through something resembling "collegial".
Since the process is still under development, everyone is welcomed to join the discussion, maybe also contribute your idea about how this should be done.
For now, please refrain from discussing software technical issues in private Email, we wouldn't know how to respond it. For whatever technical issues, please go through the public forum, and we will address that in the forum, unless there is an explicit and obvious reason that is inappropriate to do so (such as "license code problem").
Effective testing environment and sampling
The first practical topic toward community-driven software enhancement is
We need to establish a group of effective testable environment.
A group (multiple) of testable environment will allow flexible R&D scheduling and diversity. Often when we fix a problem in an environment, actually creates another in many other environments. So we need more "samples" to verify any modification.
We also need a group of "active users" who can contribute testing environment or help verifying development builds. We need a system that is somewhat fault tolerent, and will allow me a flexible schedule. Also, of course, allow flexible schedule for contributors. That means not single source, but "multiple source".
Through all the years, Genius Vision seem to have created a large community users of Genius Vision NVR. However, we would like this community to become somewhat self sustaining or self organizing to certain degree.
IP Surviellance Software is extremely complicated. Even when we did thorough test inside the company lab, it might not even cover 0.01% of actual scenario. IP Surviellance Software is not just a piece of software. It's the central piece of a very large and complex system. Often combined in heterogeneous manner. Meaning it's not possible for one single company to exhaust all kind of system combination. We need help from a great comunnity to facilitate the future development direction.