What are the two main causes of turbulent flow

The two reasons are ,
Any onstruction or sharp edges such as in taps creates turbulence by imparting velocities perpendicular to the flow
Also the speed with which a fluid moves relative to a solid body is increased beyond a certain critical velocity , the flow becomes unstable 

In both the cases, secondary motions cause fluid particles to cross and recross the actual direction continously and the orderly streamlines break up into vortices resulting into turbulence.