Hiring great software engineers for your company can be a real challenge. There is a big difference between needing a new team member and aptly hiring the right team member. This is especially true of high-level specialists.
Whatever the particular driving force may be, you face a choice. Hire new employees who are only needed for a short time or for a particular project, or bring on board temporary workers who have the required skills.
The people in charge have first to accept they can have them. As a result, they will be able to catch themselves when they incur in a given mistake and take action. However, until they develop a particular leadership skill set, you will have to rely on somebody coaching them.