We develop software for you.
SW development includes programming and requirements identification.
We develop software for you.
We provide our services in agile or multi-agile environments such as Scrum, SAFe or Kanban. Regardless of our customers’ project environments, our SW consultants are not only certified, but also experienced. By the way, also in classical methods like waterfall, V- or phase models.
This is also true for our requirements engineers. As former SW developers or SW architects, they are certified process analysts with empathy and a sense for relevant issues.
Native speaker as communication interface to the customer
We know that our customers’ employees can also communicate wonderfully in English. Nevertheless, project efficiency decreases when communication takes place exclusively in a foreign language. This has been proven by numerous studies. Therefore, we offer our customers in our home countries DACH, USA, Georgia and China project communication in their native language. One face and native language to the customer.
Locations for our software development services
Before Corona came into all of our lives, we believed that our services were best delivered at the customer’s site. Short physical face-to-face communication channels and meetings were always our arguments for delivering our services at the customer’s site.
However, the Corona situation has shown us that communication via video conferencing, messenger and project management platforms is no less personal and effective. As a result, we now often deliver our software development services virtually. The time saved as a result can even be invested wisely in our customer projects. In addition, the environment is also spared through reduced travel. However, we now know that getting to know each other in person, especially at the beginning of customer projects, fosters rapid mutual trust.
Software development service is something we deal with on a daily basis. In this area it gets a bit technical. We would like to briefly present to you, as an IT manager or IT contact, our experience and knowledge from a technical perspective.
We provide software development services internally to HighPots as well as for customers. Software development services is our everyday business. We have been developing software on behalf of customers since the end of the 80s. On behalf of our customers and partners we develop software professionally, fast and economically.
We support you in choosing the right project organization and project management method. Multi-agile, agile, hybrid-agile or classic – we know most of them. Our consultants are on the road in several environments and methods on a daily basis. E.g. in Scrum, RUP, Kanban, MSF, Hermes, Waterfall, V- and Phase Model, Prince2, etc. Also in different process environments such as CMMI.
Business Analysis – Requirements Engineering
Everything starts with the definition of requirements, which we develop together as a basis for further steps. The result is, for example, UML-standardized use cases, flowcharts, user stories, sequence diagrams, class diagrams, etc. created via Enterprise Architect. Of course, we do not forget requirements such as performance, data security, data protection, runtime behavior, license management and maintenance intervals.
Based on the requirements, our software architects and SW engineers design the appropriate architecture for your business and IT world. Of course, this not only creates the basis for programming and software developers. We also take into account cost-efficient maintenance, testing and error management. Of course, we also define the deployment processes for test and production environments as well as the release management for you.
Correct definition of the data models and the database models
The definition of the appropriate database model for a future-proof data space is essential. We will be happy to explain when a classic database for structured data makes sense and when a NoSQL database should be used. Often we see NoSQL databases like MongoDB or Cassandra in use unnecessarily.
In many projects that HighPots had taken over from other service providers, it turned out during the revision of the technology that the consistency of the data would have been more important than the performance.
We also often see that document-oriented NoSQL databases such as MongoDB are used for graphs instead of more suitable NoSQL databases such as Neo4J. We are also very happy to support you in selecting the right data space and its architecture and harmonization.
Software development and programming
The programming of the individual software takes place in the defined project environment with the frameworks, server components, databases, programming languages and their IDEs defined by the software architects. Regardless of whether front-end or back-end, we have the right SW developers for your project.
Testing is an important task and is carried out using test documentation and test plans. Test automation, unit tests, functional tests, load tests and end-to-end test procedures are carried out according to ISO standard and/or according to ISTQB.
It’s a well-known cliché that software developers don’t like to document. We are lucky to have technical consultants who like to document. We take care of documentation in code as well as documentation for your data protection officer, your IT administration and DevOps and of course for your support.
Good requirements engineering not only reduces project costs, but also makes project feasibility transparent at an early stage. In addition, good requirements engineering significantly increases the probability of project success. Building IT infrastructures and software that meet all requirements can only be done on a good foundation.
Precise questioning technique
To understand the needs and requirements from the business, asking precise questions and also questioning is essential.
Empathy and sympathy
An unsympathetic person is reluctant to give answers. Empathy is an essential skill that a requirements engineer must have.
Presentation of requirements and needs
All affected stakeholders must understand the project. This requires clear communication verbally, in writing, and especially in diagrams. Regardless of whether process flow diagrams, user stories, epics, use cases, sequence diagrams, object and class diagrams, activity diagrams, etc. are used. The ability to clearly structure, logically abstract and represent requirements and needs is another skill a requirements engineer must have.
Requirements Translate from business to technology
A translator excels in mastering the languages of the sender and receiver (and vice versa). An interpreter must even provide this capability in real time. A requirements engineer who has no practical experience in software development and comes exclusively from the process world is a risk. It’s the same the other way around. For this reason, we at HighPots rely exclusively on requirements engineers who bring practical and years of experience from both the business and the technology worlds.
The ability to be at home in both worlds is an important building block for success. Experience in technology should not only include programming, but also software architecture and IT infrastructure. A requirements engineer at HighPots is therefore an experienced generalist who is both psychologically, technologically and linguistically experienced and trained, and who is also proficient in business process management.
Individual software makes it possible to stand out from the competition and makes you independent of standard software from the major manufacturers. Individual software involves risks, but also great opportunities.
Individual software developments (custom software) map internal company processes better than standard software. In the age of digitalization, this is an important competitive advantage. However, the setup of release and support management involves more effort.
Individual software development services
Custom software development frees your company from arbitrary licensing, security and release policies of software vendors; because many software vendors today are either multinational corporations for whom your needs are not important, or they are small companies with resource problems.
But custom software also has disadvantages. You will find these in a structured way further down this page. When considering the pros and cons of custom software development, we at HighPots have tried to be objective.
Development more expensive than using standard software?
Customized software is no more expensive in the medium term than purchased standard software. This has been proven by relevant studies (e.g. by the Fraunhofer Institute DOI23/45 of 15.02.2021). In the studies, the total cost of ownership costs are taken into account. Including those costs that are incurred when the software is to be removed from the organization again.
Can HighPots as
service provider for individual software
be objective at all?
Our objectivity is not compromised, because we ourselves use standard software HighPots-internally. E.g. from SAP, Microsoft or the Typo3 Association. Therefore we know the effort for customizing the standard software as well as the license costs and change policy of the big providers of standard software.
We also regularly customize standard software on behalf of our customers. Thus customizing of standard software is an important pillar at HighPots, as well as individual software development. Therefore we are able to give objective arguments for and against standard software.
Definition of individual software and standard software
Standard software is understood as a “prefabricated product for a clearly defined area of application”. Custom software is software that has been developed specifically for use in a particular organization.
Standard software is divided into:
Disadvantages of standard software:
In fact, we have already noticed that there is already a great deal of code legacy among the manufacturers of standard software. This cancels out the advantages of standard software.
canceled out. In addition, the manufacturers of standard software constantly have to make compromises in the development and provision of their software. After all, the software must fit all customers and industries and cannot be tailor-made per customer.
It is often argued that the customizing options of standard software would negate the great advantage of individual software: namely, the customization options for the different process worlds of different companies.
However, this argument does not reflect reality. This is because the customizing options of standard software are limited.
It should also be noted that the code developed for customization must be adapted frequently, e.g., for new releases of the standard software. Code frameworks for individual software are also subject to release cycles, but the decision as to whether and when the release should be implemented can be freely chosen.
Decision support for individual software or standard software
Criteria to help you make a decision:
individual software development
Where does your company earn the most money? In which areas does your company’s know-how lie? Where does the value creation lie? Once you have answered these questions, answer the second question: How much does the software influence the value creation of your company? The greater the dependence of the company’s success on the software, the more intensively and sensitively you should discuss the following 2 questions:
Of course, you could now argue that the risk of failure is lower when standard software is introduced. Or that the competition working with this or that standard software has expanded.
In addition, you could also argue on the second point that with custom software development, there is also a dependency on the software service company that develops the custom software.
However this argument can be invalidated with a good project resource planning. In which you integrate own developers into the individual software development project. So that the individual software development does not become too expensive, you can use components usual in the market. For example, widely used programming languages, common software architectures and IT infrastructure components not only facilitate the procurement of technical personnel, but also a possible later familiarization with the code.
Conclusion: Individual software or standard software manufacturer
With standard software, you reduce the risk that the implementation will fail as part of an IT project. However, the probability that the standard software will cost more money over time for customization and maintenance than individual software is high. Also, you may not be able to avoid using cloud services – trust in the standard software vendors becomes a prerequisite. You are also at the mercy of the licensing policy of the standard software manufacturers. If your competitors are also working with the same software, it becomes more difficult to develop a digitization edge.
With custom software and a trustworthy service provider, you have a better chance of outsmarting the competition and saving costs.
Selection of the service provider for individual software development
The software development service provider should fit your corporate culture. If you have a startup culture in your company, a custom software development company that is active in banking and insurance may not be a good fit for your company.
Knowhow in the area of requirements engineering or requirements management
However, it is much more important that the service provider is authentic and experienced. He must listen well and be able to estimate the effort well in order to provide you with a suitable offer. He should understand exactly what you need. This requires a lot of experience and knowledge in requirements engineering. It is important to precisely document and outline your requirements. This includes your internal process environment, the processes that the future custom software should map, as well as communication with other systems and reporting. But also the non-functional requirements, performance, security, etc. should be recorded by the service provider.
Unnecessarily complicated requirements and processes should be simplified. Experience from similar projects should be incorporated. See also our consulting portfolio in the area of software strategy.
Technological implementation or technical realization
The service company developing the custom software should work with proven modern technologies and software architectures. The custom software development should be innovative and stable in the end – it does not have to be “hip”.
You would only end up losing customers and be dissatisfied. Therefore, it is important that the custom software development company is realistic and honest.
Also, the service provider developing the custom software should agree to have developers from your company working on the project. The service provider should understand that you do not want to become completely dependent.
If possible, widely used standardized and well-documented technologies and programming languages should also be used. So that, if necessary, you can replace the developers with as little additional financial outlay as possible. Or be able to counteract potential personnel fluctuations.
Data analytics experience at the service provider should be a prerequisite for custom software development
Today, software can no longer be developed independently of databases and data analysis requirements. Software developers need experience in what data analysis will be possible. Even if the customer requirements may contain only few elaborate reports. The field of data is developing rapidly for all enterprise customers, so that today’s requirements will no longer be valid tomorrow. Therefore the software architecture, database structure must already be aligned with the future during the realization of the individual software. The service provider for custom software development should have knowledge and experience in the area of data, data rooms, data analyses and data analytics.