Software consultants: Who are they and why might you need their service?