Be sure you understand and can prove the following (check Rotman's book under "minimal normal subgroups", for example):

== Every finite groups has non-trivial minimal normal subgroups (mns's)

== Every mns is either simple or a direct product of mutually isomorphic simple groups

== if N is a normal sbgp. of G and f: G --> N is a retract (this is what you defined in your question), then G = NK, where K = ker f, and this in fact is a direct product since K is a normal complement of N)

So choose some non-trivial mns N of G (if N = G then G is simple but then it is either abelian of prime order and we're done or else it is non-abelian simple, which is impossible since then the condition isn't fulfilled since G then has no non-trivial homomorphism because it has no non-trivial normals sbgps.!).

From the above we can write G = N x K. Now take a mns N1 of K, then N1 is normal in G (can you see why?) and again we have a normal

complement K1 of N1 in G, so G = N1 x K1 but since N 1 < K we in fact get K = N1 x (K /\ K1) ==> G = N x N1 x (K /\ K1).

Continue as above now with K2 = K /\ K1 and etc.