When you move from designing closed systems to designing open systems, you have to work to a higher standard. In a closed system you can get away with fudging your definitions, writing indecipherable documentation, and cheating the specification. Often you can compensate for a bug in the main device with a workaround in the control panel. You can indulge in a lot of bad habits simply because no one will really know but you.
If you are singing in the shower, who knows that you are off-key?
But with open networks, it's like singing on a stage in front of thousands. If you are off-key, you'll get tomatoes thrown at you. If you fudge the spec the system might not work predictably - and you will be found out. If your documentation is wrong, your customers will send you the bill for the time they wasted as a result.
It only takes a little bit longer to get these things right. The payoff comes with less time and money wasted in the later stages of implementation. It's the difference between being an Engineer and just a "board jockey". Open systems demand professionalism.