Hardware and Software Project Management Best Practices for Small Satellite Systems