Uniscale Method
The Uniscale method is a structured approach to collaborative software development. It leverages domain-driven AI to ensure efficient problem validation and cost-effective implementation. This method guides you through essential development steps; from understanding user needs to building and validating prototypes and the final product.
'Ten carpenters problem'
To understand the essence of the Uniscale method better, we use an example that we call the ‘ten carpenters problem’. It compares software development to building a house:
Imagine you’re building a house and the contractor you hired suggests constructing it incrementally without a complete plan – simply employing ten carpenters and starting to build.
Most people would find this approach irresponsible and immediately seek a different contractor. For the same reasons, we shouldn't accept this approach in software development either. When a business owner pulls in ten developers to build software without having a clear plan, we should be as critical as while building a house.
Two crucial phases ensure success while building a house: problem validation and construction. First, there is the need to validate the design to ensure it meets the requirements. Only then does the expensive construction phase begin. The Uniscale method emphasizes the importance of this initial validation in software development.
Am I producing value?
Within Uniscale, problem validation is essential. It motivates every team member to reply to ‘Am I producing value?’ with ‘Yes’. The only valid answers come from
1. the end user, who can confirm the solution improves their daily tasks and
2. the financially accountable party, who ensures the solution is cost-effective.
Uniscale breaks down software development into two distinct phases: abstract problem validation and concrete implementation. Initially, the focus is on understanding the problem within the domain, specifying user behaviors, and creating UI mocks to validate the solution with end users.
Once validated, the next step is building the front-end to allow users to interact with the prototype, ensuring it meets their needs before investing in full system development.
Key Steps in the Uniscale method
Abstract problem validation
Understanding the domain
Grasp the problem space, ensuring a thorough comprehension of user needs and business requirements.
AI for Describe
Enhance functional specifications with the help of AI by removing any ambiguity and using recommended structures.
Specifying user behaviors
Detail how users interact with the software to solve their problems.
Creating UI mocks
Develop user interface mockups to represent the solution visually.
User validation
Feedback collection
Present UI mocks for feedback to ensure the solution meets all stakeholders’ needs.
Iterative refinement
Refine the UI and behavior specifications based on feedback until validation.
Concrete implementation
Front-end development
Build the front-end application to provide a functional prototype for interaction.
System requirement mapping
Architects define the back-end requirements aligning with the validated front-end.
Service linking and definition
Functional flow definition
Outline how different services interact to fulfill the functional requirements.
Service boundary specification
Define the boundaries and responsibilities of each service within the system.
Integrated specification
Single source of truth
Maintain a comprehensive, evolving specification that includes all functional and technical requirements.
SDK generation
Generate software development kits (SDKs) to facilitate seamless integration and implementation.
Technical implementation
SDK implementation
Use the SDK in your code editor to implement software changes.
Uniscale Develop plugin
Maximize the benefits of AI assistance in developers' workflows.
Uniscale integrates all project roles into a single specification that evolves throughout the project lifecycle. This approach prevents the common pitfall of disjointed specifications and assumptions. By maintaining a single source of truth, Uniscale ensures that all decisions and knowledge are preserved, avoiding the need for costly rewrites.
Adapting the Uniscale method to your organization's needs
The Uniscale method enables problem validation, aligns stakeholders, and ensures cost-effective and efficient software development. Organizations can confidently produce commercially viable software, knowing they have validated and aligned their solutions with end-user needs and financial constraints.
However, the Uniscale method is not a one-size-fits-all solution. We firmly believe in the benefits of the method and see the success with users. Still, individual structures and processes can make the application of the Uniscale method look different in practice.
How you start using Uniscale can vary depending on whether your stakeholders have a commercial or more technical background. Generally, most Uniscale users follow this overall onboarding process:
Software functions and objectives
Technical details and service modeling
Auto-generated SDKs and AI-assisted code
While most users start with the ‘software functions and objectives’, others focus at the beginning more on the ‘technical details and service modeling’. This highly depends on each company's structure because Uniscale does not break existing processes but seamlessly integrates into the existing collaboration framework.
Additionally, usually, one team initiates the implementation of the Uniscale method and starts using the tool – depending on if this is a more commercial or technical team, this area will get a bigger focus in the beginning.
Regardless, all key stakeholders involved in the development process will go through ‘functions and objectives’ as well as ‘technical details and service modeling’. They will end up with the ‘auto-generated SDKs and AI-assisted code’.