The Inertial Measurement Unit (IMU) was designed to measure Schiaparelli's inertial velocity, but it fed bad data to the guidance computer because of a glitch. The computer believed the lander was already on the surface, or very close to it, and did not fire the braking thrusters for a sufficient amount of time. As a result, Schiaparelli, which was still a whopping 3.7 km above Mars, impacted the surface at approximately 150 m/s.
But what led to the IMU's glitch? That was the purpose of the investigation. The board quickly ruled out an internal malfunction -- the component worked as it was designed to. Instead, the board's report says, "The high dynamic phenomenon experienced during the parachute deployment phase was not due to the failure of a specific subsystem or component but rather due to a natural phenomenon caused by a combination of various parameters, which were not properly predicted/expected before flight."
It's not necessarily human error, because the system was designed to handle modeled conditions and functioned properly. The problem was the supersonic conditions were more severe than anything scientists had predicted and the IMU simply could not cope.
The report concludes with recommendations to avoid this problem for the ExoMars 2020 lander: more modeling, a more robust design and more rigorous testing and standards for hardware.
Nothing is easy when it comes to space flight. Scientists and engineers can test and retest every component, but when you're dealing with the unknown, even the highest standards may not be enough. All you can do apply what you've learned from these costly errors to the next project, and hope they don't happen again.