The Software Engineer
Weeks of coding can save you hours of planning
A Software Engineer is a programmer who has enough experience and expertise to understand the benefits of planning. Instead of jumping right into a project and pumping out code, they take time to understand your requirements, consider the correctness of their solution, and produce high-quality results. They will take a little longer to get started than a Programmer, but the quality difference is worth the wait.
The Software Architect
If you are failing to plan, then you are planning to fail
Having a Software Architect on staff means that you have someone who cares about the long-term success of your project. A Software Architect is able to examine your project's requirements and create a plan to turn your vision into a reality. An Architect may do this with written documents, diagrams, and charts; and is responsible for making sure that the development team is set-up for success. A good Software Architect helps prevent mismatches between Software Engineers, resulting in a more coherent and maintainable project. Their code will work because the project was designed to work.