 The idea behind this is to create more than two different programs that have the ability to behave similarly to each other.It is also possible that this means of developing a cross-platform application will result in more problems with bug tracking and fixing, because the two different "source trees" would have different programmers, and thus different defects in each version.Another approach that is used is to depend on pre-existing software that hides the differences between the platforms—called abstraction of the platform—such that the program itself is unaware of the platform it is running on.