We are often asked which industry we specialize in. My answer is always: "None." This sometimes raises skepticism. However, we believe it’s beneficial and correct to engage in cross-industry IT projects. Why?
Software Development Lifecycle
In times of increasing digitalization (yes, I am going that broad), the situation in companies often looks similar: There's an existing process that is essential for daily business. Sometimes this process is manual or relies on paper-based data transfer, and sometimes there’s a partial software solution that still has room for improvement or lacks features. The approach to updating or replacing such a solution is almost always identical:
- Analysis of core process requirements (with stakeholders and end-users)
- Analysis of user groups (with stakeholders and end-users)
- Planning the initial scope (MVP)
- Iterative implementation
- Validation & testing
The Software Development Lifecycle (SDLC) isn’t new and has been standard practice in software projects for years. This clarifies that we initially think about the requirements and later (hopefully iteratively) focus on implementing the solution.
Domain Knowledge and Specialization
As mentioned earlier, we firmly believe it’s important and correct that we are not experts in our customers' industries. This impartiality helps in analyzing requirements. During analysis, stakeholders and users usually describe what they know and how they currently operate. However, the goal is, as described above, to identify the core process. What does this mean in practice?
- Distinguishing core processes from edge cases: How frequently does a particular scenario actually occur?
- Breaking core processes down into subprocesses: Which subprocesses should be viewed separately or even reused? (Did someone mention Domain-Driven Design?)
- Distinguishing user groups from real-life practice: What differentiates the "car salesperson" from the "SUV specialist" in terms of their workflow?
- Identifying data sources: Which data is essential for the core process?
- Identifying the suitable user interface: Desktop, Mobile, Chat-Agent?
Quality Requirements
Now it's clear how we derive and jointly implement functional requirements. But this alone doesn't guarantee good software. The ISO/IEC 25010 standard addresses the quality model for software products. Correct implementation of functional requirements is just one aspect. We see it as our responsibility to ask the right questions during requirement analysis, covering other model areas like efficiency (performance), security, and reliability, to name just a few.
In software development, these aspects are referred to as quality requirements. Considering them early makes software projects successful and sustainable. Ignoring them, however, leads to increased costs and risks.
AI
So, how does all this change with modern technologies such as generative AI, large language models, and agents taking over parts of our business processes?
Not at all!
Applications integrating AI are primarily distributed applications composed of multiple components, each needing separate setup and operation while communicating through interfaces. We've known this since the surge of microservices and serverless architectures. However, today’s world is significantly more advanced regarding the operation and monitoring of such solutions. Moreover, sufficient lessons learned from these applications help us ask the right questions during requirement analysis (indeed, this completes the circle).
So, are all projects the same?
No. Each project differs significantly from the previous and the next one in terms of content. Stakeholders and end-users bring their domain expertise to the project. Our expertise lies in understanding, deriving, and prioritizing requirements together with our project partners. Our technical focus on proven as well as cutting-edge tools such as Microsoft .NET, React, and TypeScript allows us rapid implementation, giving our project partners quick validation opportunities.
Curious? Get in touch, and let's find out together how we can get your project started.