Should I build one system or system of systems in order to fulfill enterprise needs?
I had that argue with one of the people that I’m working
with. He claim that in order to create software solution
to fulfill enterprise core business needs it’s better to
create just one system (combine from several sub-systems)
while I arguer that I think it better to split the
solution to several systems. Every system should be
responsible for certain enterprise need and probably
export services to other systems as well. All of that
systems, in the end of the day, serve as one system from
the user point of view (it some sort of expansion of the
Presentation-Abstract-Controller (PAC) architecture
pattern). Part for arguing that following my line will
result in more complex development process (which I don’t
agree) I can’t figure out what are his claims against
System Of Systems (SOS) approach. But I just want to
mention the points that I mentions on behalf of SOS. I
hope I’ll hear some claims against SOS from my blog
readers….
1 – Splitting complicated problem to smaller and simpler
parts is core idea in the software industry. So why not
follow this idea and split our complex solution as set of
independent solutions.
2 – Splitting the solution into systems enables us to
create the global task (core business) in stages.
Therefore that splitting enables less risk in development
process.
3 – several systems with predefine interfaces which are
black box one to each other enables changes in one system
without touching other systems.
4 – the idea of creating several systems that serve as
one system enable us to easily add new systems to the
current system, with minimum chances to existing
systems.