S3M developers apply the Unified Process and
best practices of software engineering into our ModularS3M™
Approach
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually
Deliver modular systems
Continuously Verify Quality
Manage Change
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.
|