System analysts convert your requirements into a high-level design. The client approves the design and the development team implements it.
Project managers "run" the development team. They make sure the developers are following the requirements and gap-fill requirements when necessary.
A lot of software developers are introverts. A computer, 8-hour work days, and the ability to focus are key ingredients to a developer's success.
In terms of software development, a designer's focus is centered around allowing the user to discover and intuit the software's features in an efficient manner.
Initial conversations about a new project generally involve a Project Manager and System Architect. It's also important the client is represented by someone who can discuss requirements. During this phase the project manager and System Architect will organize the clients requirements and determine feasibility, timing, and costs. This discussion starts with a phone call but will generally encompass several planning sessions and the exchange of design documents. Depending on the project, a designer might also be involved at this stage. The end result of this phase is to produce an information architechure document (software blueprint), which will include cost and a schedule.
As development begins, the workload shifts to the project manager and one or more developers. Interaction with the client is generally via the project manager, but occasionally a developer will converse directly with various staffmembers at the client company. Depending on the client and the size of the project, these meetings can be standardized or on an as-needed basis. Topic will include status updates, demoing key functionality, and necessary specification changes.
One the custom software is near complete, the Project Manager will work with the client staff to set a target date for beginning Quality Assurance testing. Unless specified in the original contract, the client is responsible for Quality Assurance testing (this can also be considered Acceptance Testing). Vazkor Technologies tests all software to a reasonable degree to confirm that the functionality is working when the software is used in a typical fashion. However, it is near impossible for one individual to test all the possible usage-scenarios. The Project Manager can help the client managers come up with testing plans that should involve multiple end users putting in a good deal of time "beating up" the software.
Once the software has had all the bugs "exercised" out, and the Beta Testing is completed, an implementation date is set. The Project Manager sticks close to the phone during this period, and will often be onsite.
After the custom software "goes live" and is in use, the the lines of communication stay mostly the same. The client will get reports in from the end users on problems or suggested changes, and will compile lists that are then communicated to the project manager. After a certain free maintenance period for the software, services are billed on a hourly per-need basis. Changes outside of the original specs, however, are always billed on an hourly basis, or a separate flat fee proposal is created.