In the space of Software Architecture, the “Big Ball of Mud” represents “natural growth” – or the system that just adds and changes without ANY planned architecture. (More on the Big Ball of Mud here.) While we hear about it, and sometimes run into it as we have to solve project problems, how do you spot a software product in that mode?
Side note… while traditionally a Big Ball of Mud is discussing gradual changes to a system or program, we also see a Big Ball of Mud in enterprise architecture in unplanned natural growth of the addition of various systems and technologies, and interfaces and interconnections between them. While dealing with spaghetti code is tough, dealing with spaghetti connections and systems is extremely expensive and risky – but is all too frequent.
Here’s a software product conversation I had this week…
Please wait for a site operator to respond. You are now chatting with 'Randy'. Your Issue ID for this chat is LTK1219208815693X
Randy: Welcome to Unnamed Product Corporation Sales Support. My name is Randy, how may I help you today?
Akiva: Hello Randy. I wish to sync Outlook between my Outlook, which is on my office network and exchange service, and an Outlook that's on an isolated (no internet connection) secure network. So my questions are:
1 – is Product the tool for this (I actually only need to sync calendar)?
2 - will I be able to install it without an internet connection (since the sync computer is on a non-internet-connected network)?
(isolated computer does have a normal USB)
Randy: Product has a feature to synchronize Outlook with a USB stick. But to install Product Internet connection is necessary.
Akiva: would seem to reduce the value of a USB sync. (In other words, WHY IN THE WORLD would you sync by USB stick if you have an Internet connection?)
Randy: Could you please clarify your two computers are connected to the same network?
Akiva: no they are not. Computer 1 is a normal internet connected laptop, connecting to an exchange server in office 1. Computer 2 is on a disconnected private network with a private exchange server, with no external network connections.
Randy: In this case the only option to synchronize your Outlooks is USB stick profile (great, this is what I want to do), but to install Product is necessary Internet connection.
Akiva: Can you please confirm that? Your download page as a link that says "Full Standalone Installation* *Internet connection is not required during installation"
Randy: Just a second. I just talked with our technician, he confirmed that you are able to install Product without an Internet connection, sorry for the mistake.
Akiva: It's ok. However, I’m trying it – it says it requires a particular KB patch to .Net 4.0 as a supporting component - which it tries to download. and of course fails - the computer has no internet. I'm now trying to download and pre-install that component. (So tell your tech you were 1/2 right.)
Randy: You are able to download Product trial version which has 14 days trial period and try it.
Akiva: Ok, important question for the tech. When I buy it, does it require an internet connection to verify/certify/check the license id you provide?
Randy: Internet connection is required to activate your license. Also to renew it.
Akiva: So, to confirm, you can install it stand alone but not buy it and use it that way. You have a stand alone install, but it requires an internet component to download. So... the product CANNOT be used on a stand-alone computer for sync.
Randy: Yes, you are right. May you have more questions for now?
Akiva: Well that's just frustrating. Kind of makes the USB sync feature useless. Oh well, thanks anyway.
So what happened here? This company developed a non-network based sync option, then later developed an internet based licensing requirement that invalidates the non-network based sync option – basically making the product useless. I wonder if they actually sell any of these, or sell them and have people demand refunds since it effectively is useless now. Bad planning, no overall architecture to understand the impact of one feature set on the rest of the system.