Our customers often have no experience in running IT-systems and have no understanding of basic principles of systems we produce, what hardware and software platforms can be used, what functionality and features our software offers.
Let's make things clear. Our systems make use of client-server interaction model when data is stored and processed server-side and then displayed and post-processed (mainly rendering functions) client-side.
Any type of computer can be used as a client terminal. The only requirement is installed web-browser which plays part of client software.
Nowadays most popular operating systems Windows and macOS by default offer built-in web-browser. Also one can download for free and install software from such companies as Mozilla, Google, Yandex. All data between server and client is sent through secure (encrypted) connection.
Thus we can create a distributed information system with the only requirement to connect user's workstation to the internet. You don't need to install any additional(in case of Windows or macOS) software.
In software engineering companies while developing complex information systems besides technical issues there may be difficulties in interindividual communication of customer's employees and developers. Sometimes it looks like they talk different languages! Good development-company must employ business-analysts who will consider customer's business specifics and even so it's important to make sure that customer is understood correctly. Misunderstanding at the stage of development of the technical task can lead to serious difficulties in using the software, and cause financial and reputational losses.
To provide vivid visualization of business-processes and to model customer's data we use ARIS software and methodology (Architecture of Integrated Information Systems). It allows to visualize processes and data structures by means of specialized diagrams (notations) and unified object-oriented modelling language UML. Using ARIS at information system prototyping stages significantly simplifies and boosts development. It allows to easily model and document the area being automated and provides visual interpretation of processes and data structures. Thus customer and developers can achieve better mutual understanding.
In result you get complete technical design specification required to achieve definitive business-application comprehension by both the programmers and ordering party.
Besides things we already mentioned in 'how it works' client-server architecture makes use of server-side database management system which stores application data on a centralized basis. To summarize all said the development process can be observed from two points: server-side part (back-end) and client-side part (front-end). Design of database structure should be also considered as server-side development.
We use PHP as primary programming language for our systems which is well-known in web-development and MySQL (supported and supervised by Oracle corporation) relation database system for application data storage. MySQL is a high-performance RDBMS distributed under free software license (GNU General Public License).
Client-side application code makes use of the following technologies stack:
All programming languages and software platforms we use for web-development are also provided under terms of free software. To further speed-up development process we use software frameworks which allow to reuse code blocks common for many systems.
We use these products and best practices of our own as bricks (or puzzles mentioned in our company title) to quickly build software product of high quality required by our customer.
When talking about information system development the word design has a much wider meaning than for instance when discussing website's art-design. Website's design is more about how pages look at the same time information systems must provide convenient user experience, clear navigation, correct sequences of steps in common operations. All this is often named as usability.
Thus we would define information system design as user interface design (UI design) and user operations convenience (user experience - UX).
Not paying enough attention to UX can cause users to refuse working with the system and fail it's incorporation. To avoid such situations we model user interface and important input-output forms at early engineering stages. When the prototype is ready our professionals work out final design of the information system.
During beta-testing stage we analyze user experience of the entire system by technical means (correct / incorrect users' clicks while operating) as well as communicative ones (user polls and questionnaires) to further improve UX component of target information system.
Data security and fault tolerance is one of the most vulnerable aspects of client-server applications which use internet as data transfer environment. We pay much attention to ensure security of our software (automated systems). We always implement the following techniques: