Transition to agile development
ISPadmin has been developed for 15 years, since its spontaneous start with one programmer to the present state of 10+ programmers. And many things have changed - from technology to the requirements for availability and quality of information systems (IS). Significant organizational and procedural changes were needed to produce better results, especially in the following areas:
- Code quality
- Meeting deadlines
- Incorporating new features
- Contact with customers and support
Everything starts and ends with your request – it is a closed circle. We are not a telecommunication service provider, so if we want to develop a tailor-made information system, which will work for you the providers as expected and save your time, then close cooperation with you is essential.
We have successfully implemented a code review by integrating GitLab into the development process. Basically, it is a process that should ensure that the resulting code is not "ugly", it is legible and safe from the point of view of corporate policies. In particular, its aim is to minimize incorrect procedures and the resulting errors.
The quality of the future code is formed in the analysis phase, in which one of our software architects suggests a suitable solution to the given request and completes the details for the task. It is then taken over by a programmer that starts writing. The new code is created entirely in a separate branch from the production code, which the updates are made from. This branch is continually commented by leading developers, so a review is underway.
The process is also supported by using PhpStorm, the market leader among developers for programmers. So many things are looked after when writing the code (for example, duplicates, function hints, code formatting, etc.).
Writing the test for the currently created function, which is then used in automated continuous integration (CI) tests, is only a routine matter.
Good code creates the required stability, speed and security.
A neglected topic in the past. The reality is that in today's accelerated time no developer, including us, can do without testing if the developer, a provider, and an end customer want to sleep peacefully. No regards to the fact that testing is often more time consuming than development itself.
Why is it so important? The whole system of the Internet, hardware and software is going through an unbelievable boom that also brings many difficulties. The biggest burden so far has been the headless hunt for security, starting with system package versions, certificates and, last but not least, various frameworks, tools, and third-party APIs, and so on. At the same time, the demands for stability and speed are growing. This growing diversity of systems and the increasing demands on IS is leading us to thorough testing, which does not provide 100% guarantee, but at least eliminates human errors and reduces the possibility of recurring errors in the program. If the bug is fixed and completed with a test, it will not happen again.
Currently we have been using the mentioned CI tests and traditional manual user control. If something is wrong, we immediately see what went wrong and we can fix it before releasing the code into the production version, which then gets to you.
There is a tendency to combine the networks where one ISPadmin installation controls more and more end clients and network elements. Unfortunately, there are only two starting points: either to strengthen the server or to optimize the code, which can save considerable funds for purchasing new machinery.
Over the past 3 years, we have been able to completely rewrite the entire code into the last Nette framework, which takes full advantage of the PHP 7.2 speed potential, which is estimated to be 5x faster in code processing and it has about half the memory requirements. We already know from our practice that parameters affecting speed are more and so you will not feel the acceleration everywhere. The big speed obstacle has also been dividing the main area into two frames, where there is the menu in one and in the other one there is the content. This limitation is no longer needed with the release of version 5.05 beta1 and the frontend (the part of the app you see) reacts much faster.
Another improvement is the transition from the storage engine MyISAM to InnoDB, including the upgrade to the optimized version of MySQL 5.7, which is used by giants like Facebook or Google. The InnoDB format does not suffer from the locking of whole tables in competitive registration, as was the case with MyISAM, thus the bottleneck of the entire system has been removed.
The existing SQL queries that have been evaluated as slow are being overwritten and optimized gradually.
Finally, we got our capacity free after a demanding and long transcription. We currently have an entire 2019 plan, whether it's a helpdesk, new charts, better HW monitoring and management, a process manager, GPON, etc. There is a compliance deadline, so we have complete information on the development status.
Our vision and goal are to supply you with the most desirable features at a given time without unnecessary delays.
Incorporating new features
We strive to keep up with the latest versions of OS from MikroTik and Ubiquiti, but we also keep in mind the reported vulnerabilities, API interfaces, QR codes, usability, GPON, IPTV services and many other technologies. In recent months, we have created several tools to help manage MikroTics and identify infected devices - see https://wiki.ispadmin.eu/en/changelog/ispadmin-5-02 and https://wiki.ispadmin.eu/en/changelog/ispadmin-5-01 .
One of the major innovations was the redesign of the SledovaniTV implementation, which brings enhanced functionality and new setup options. For more information, visit https://wiki.ispadmin.eu/en/changelog/ispadmin-5-04/5-04-beta1 .
Contact with customers and support
First of all, we want to meet you more often. This is the only way to ensure that ISPadmin serves you well and meets your expectations. We have also extended our support team, so the reaction time is to be shorter and support more effective. We have also introduced three levels of technical support - BASIC, PLUS and PROFI - to provide quality support for operators of all sizes according to their preferences.