As for development,the task accomplishment, roughly speaking, requires two smaller problems being solved: firstly I should design a Rubik's Cube representation for storing and modifying tha state of the toy in line with player's actions and secondly I need to introduce routines for showing the Cube in an appropriate state on the screen. I haven't started writing graphics-related code yet, but I feel I'm almost finished with the first stage - that means I have developed a couple of classes representing the puzzle which provide convenient ways for performing any required in-game operation on the toy (e.g. rotating one of the cube's faces).
The above quote suggests that to understand something one needs to have a simple model of the thing in mind - only possessing such a model one can explain something - that is share the model - and the explanation will be simple only in case the model is. In fact having a complete model of some object or process means understanding it - and vice-versa - so the only way to understand something is to study or design a model of the thing. A task of designing a model is usually a hard one and requires a lot of work to be done. Such a design process involves overcoming numerous problems which actually help the developer to form a better understanding of the entire object or process being described. Obviously it is difficult to design either a simple model of an object or a sophisticated one, but surprisingly the former are usually much harder to discover and develop. That means one often needs to do much more work, to face much more problems to achieve a goal of designing a simple but workable model - that is precisely one of the reasons why simpler models correspond to a better understanding.
However we actually don't design all the models we use ourselves - we tend to take ready ones and use these for our purposes. In this case one can't directly benefit from the difficulties connected with developing a simple model, though one benefits from the model's simplicity itself and really understands the things better than in case he would use a large and sophisticated one. That's because our mind's power is finite, hence it may be quite difficult for our brain to handle a sophisticated thing - roughly speaking it may fail to 'cache' a complex model completely with all of it's numerous although important details. I suppose we tend to unconsciously simplify the model if one is too sophisticated for us to handle, but in case our mind is not familiar with the model such a simplification may result in losing some important details which are just cut away and eventually this will lead to mistakes.
In this way simple models really produce better understanding through representing corresponding objects in a complete and convenient (particularly for our mind) manner. Moreover such models have another advantage over the complex ones: if your model is simple it is easy to share it because it can be explained simply.