Inheritance of features
Given my recent combining of Tracks and Shuffle. An interesting thing happened. Something that happens when you combine two products so that they inherit features from each other.
On Shuffle’s issue list there are a few items currently regarding repeating tasks, and the ability to hide a task for a period of time. Tracks has these features, since Shuffle can synchronize with Tracks, Shuffle now also have these features. That is if you choose to synchronize with Tracks.
I’ve done a few integration projects thus far. And the ones that are truly successful are when they take the aspects and features of both applications into consideration, to create a win-win scenario between the two applications.
Here is another recent example. At RemoteX, we recently integrated a system that handles the ordering of materials, goods, equipment etc. In essence this integration feature means that you can go to a retailer, order goods, specify the order they should tag the invoice with. End result, RemoteX automatically adds the goods to the application and if possible attaches a copy of the invoice to the case. Ready to be billed to the customer. Since the other system has integrated with almost all resellers of service equipment in Sweden, the daring customers running this set-up can, at least in theory, eliminates the need for keeping stocks of equipment or goods in house.
If you understand where these synergy effects can show up you can also align the integration so that both applications maximizes the gain of integrating with the other system. This is important to think of when designing an integration, how do we achieve the maximum win-win?
Hi! I also think that systems should benefit from eachother, but as an evolution interested person, I have problems with using the word inheritence. While thinking of this, I started thinking more in the line of synergy, the mutual benefits.
But then I realized that there are also the parasitic applications, those which thrives on others. I was mostly thinking about integrated systems where one has poor quality, and this is spilled on to the integrated systems. In the worst case, the users blame the wrong system for the malfunctions.
But is there a specific reason for using the word inheritance instead of synergy?
Well, no. Se Evolution is inheritance combined with the algorithm to prune out bad inheritance (natural selection). It is not equivelent to inheritance, evolution is a much bigger concept. You also have bad inheritance, in the human world there are cases right now where different kinds of cancer and even obecity are “blamed” on inheriting bad genes.
The evolutionary process combines mutations, adapation and inheritance combined with elimination applied on all creatures, removing those branches whom have produces unfavourable results for our given environment.
Also, I see synergy as something else. In the Track + Shuffle case on of the synnergi effects they recieve is that they can reach eachother’s target audiences.
Similar in the case of the RemoteX integration the two parties can reach new target audiences. But there is a difference here, where RemoteX inherits features the other system doesn’t benefit in terms of features. They benefit from increased market reach only. Which isn’t in any way bad, infact it is as they want it.
So yes, there is the posibility that an inherited feature causes the other features to break down. This is not a sweet-spot for software integration…
http://en.wikipedia.org/wiki/Synergy
http://en.wikipedia.org/wiki/Evolution
http://en.wikipedia.org/wiki/Inheritance_%28object-oriented_programming%29
Given the last wikipedia entry it is easy to see that you can see each application as a “class” and features as inherited features. Difference here is that the features inherit in both directions. So yes, the fit is not exact either. But it fits better than Synergy.