S3M developers apply the Unified Process and best practices of software engineering into our ModularS3M™ Approach
Use Component Architectures
Deliver modular systems
Continuously Verify Quality
Strengths of the Unified Process:
Provides a common lexicon for all workers on a project
Increases project outcome predictability
Reduces project risk
Weaknesses of the Unified Process:
Many disciplines, roles, tasks and artifacts
Implementing all of the Unified Process may take years
What do we implement first?
While we fully build on the strengths, we counter the weaknesses by:
Working with a reduced set of roles and artifacts, adhering to agile principles
Only applying process implementation there where it is needed (no blanket approach)
Through the output driven approach of ModularS3M™, our analysts and project managers can rely on integrated best practices from the start and expertise at their disposal through our Competence Centers.
Instead of building a large, closed system that could take a year to complete and may be outdated by the time of launch, we follow modular design principles, allowing parts of the solution to be available for testing, training or even made fully operational.
This allows testing teams and stakeholders to gauge response to partial site deliveries, beta test ahead of launch, and respond very quickly and efficiently to market and industry changes and trends.
We call this the ModularS3M™ approach.
||Delivering modules in software development can be an advantageous approach, but not if it is modular development on an island, based on monolithical specifications and all-encompassing expectations from a testing department. |
That is why ModularS3M™ is an approach which integrates all disciplines involved in the lifecycle of a technology solution coming to life; from initial ideas, stakeholders, senior management, project management, analysis, design, development, testing, deployment, training and operations.
Initial ideas are clearly grouped and structured along objectives, fitting into an overall architecture.
Stakeholders and Senior management are involved and aware of the approach, its benefits and its specific effects. Some parts may become available, partially or completely finished, while other functions are not yet deployed. Steering and deciding needs to take these inherent design choices into account at all levels, thus empowering the team to succeed with this approach.
Project management plays an important role in the orchestration of the different tracks, at times moving at different speeds on different modules, with a high level of parallelism, an elongated involvement of analysts, and an earlier start of testing and releases. Visual management and lean principles aid in keeping all stakeholders on the same page.
Analysis is the pivotal point between “the business” and “the techies”, and through ModularS3M™, are also drivers for the focus of the testing team and quality of the test results. Freed from having to think about everything all at once, a modular approach allows them to deepen and purify functionalities providing solutions to the needs of the internal or external customer and user.
Design of a modular system has many advantages that span the full lifecycle of the end product. From easier deployment, independent maintenance, scalability of each component separately, migration capabilities, integration with existing technologies, upgrades and updates, and more. This approach also dictates the overall picture not only to exist (sounds trivial, but the complete architecture is often simply non-existent!), but to be clearly understood by all parties involved, and to be present continuously, providing clarity on the relation between the modules, and also the areas which have not yet been completely detailed.
Development is freed from too many dependencies, and is allowed to deliver iteratively, by module, while staying within boundaries set out by an overall architecture. Within the development team, and depending on the nature of the project, rapid application development, extreme programming, or more traditional methods may be followed, and an overview of status and progress by module is made available for communication and transparency.
Testing benefits greatly from this increased transparency. Through earlier involvement of testing teams, and the longer involvement of the analysts, testing activities can gain focus and cruising speed at an earlier stage, which offsets one of the more frequently occurring challenges in testing: project delays. When a project incurs delays along its timeline, invariably, it is the period of testing which risks being compressed. Less time, late involvement, and after the fact changes negatively impact test quality. In ModularS3M, testing takes place over a longer portion of the project’s timeline, and focuses on requirements and test plans by module.
Deployment and operations are kept leaner, and involve fewer systems, thus creating less dependency. Through more frequent deployments of smaller portions of the solution, expertise is also gained which benefits maintenance. While the release calendar may be more elaborate to manage, the risk is reduced that solutions are deployed containing unspecified or undesired functionalities. In the event of a rollback, more of the system already in place is unaffected, and the rollback itself will have less drawbacks. Separate modules can be independently activated, deactivated, taken offline, restarted, scaled or migrated, facilitating the operability of the overall system.
Training is more efficient due to the fact that more frequent (repetition), but smaller chunks (attention span) of information need to be processed, while the target audience may at times be reduced, because not everyone needs to be present on the training for every module. Knowledge and awareness starts to spread earlier along the timeline, and end-user feedback is available while the analysts are still actively involved.