You should start by reading the material at
https://www.cubesat.org/
IMO one of the largest difficulties for Cubesat creators is that passive spring deployment of antennas and other facilities is not allowed, because of the difficulty of inserting them correctly in the P-pod and the potential for them to jam the P-pod, and prevent the satellites behind them in the P-pod from deployment. Your antenna can't just pop out as your satellite exits the P-pod, it has to be actively released afterward. So, for release of these things a contrivance of nichrome wire and monofilament fishing line is mainly used - the line is melted and this releases whatever spring device there is.
And surprise, a lot of satellites don't have their antennas deployed, perhaps because this fails. And thus they have weak-signal issues, etc. This also gets in the way of solar panel release, etc.
Second IMO is the use of standard AX.25 packet at 1200 or 9600 Baud as a communications protocol. Karn has said why this is inappropriate, and contributed a satellite modem that can stand fades an appreciable fraction of a minute long. A lot of satellites are never contacted after launch, IMO because the radio is inadequate.
And then we get to components and designs being inadequate for space, between vacuum, temperature extremes, the loss of convective cooling resulting in components overheating once in vacuum, mechanical stress during launch, etc.
And finally, it's too expensive to test adequately.