If you have been wondering what happens in a software company; who communicates to who and about what, then this blog article might be of interest for you.
It shows a simple overview of the communication processes between several players in a middle sized software company (around few hundred employees).
It does not represent all software companies as they vary in sizes and the way they set up their organization might be different.
It is not uncommon to find small companies having an employee do different functions like a programmer writing technical documents and doing the testing as well.
Also note that not every job has been mentioned here.
Jobs like UX-designer, graphical designer, system support and many more are left out for convenience.
With no desire nothing would happen.
The desire of the customer triggers the chain in the business of software production.
A customer wants something that meets his needs, this then leads to the purchase of a product.
What does a customer need? Here the product manager comes into play.
He investigates the market to introduce product(s) that meet the needs of the customer.
That could be simply adding small additional features to changing or adding the whole functionality / product.
The product manager decides what comes into the product.
The sales person communicates and sells the product to potential customers.
Promoting the product at seminars, trade fairs is a way to attract new customers.
This might end up in signing a contract.
Let’s say the sales person has managed to let the customer sign a contract.
Then the consultant comes into play.
The consultant communicates with the customer about the implementation of the product.
Also responsible to give the customer training in how to use the product.
When there is a need for customization of the product, a Customer Request (CR) will be created.
This contains the requirements for the product.
The consultant communicates with the programmer using this CR as the basis for development work.
The programmer uses the CR to make an estimation on how much time it will take to build the functionality.
This is then communicated back to the consultant which in turn communicates it with the customer to come to an agreement.
After the approval, the programmer builds the functionality.
The tester tests the product to find out any bugs and any missing functionality which is required based on the CR.
The tester communicates frequently with the programmer about these things.
Together they make sure the software runs smoothly with the needs of the customer being met.
Project manager / team manager
The project or team manager communicates with the programmer, the tester, consultant and the support team.
The manager manages the software development process.
He or she makes sure that everyone has something to do, keeping an eye on how the tasks are being carried out.
Do they meet with the deadlines that are communicated to the customer?
Who can carry out the urgent new requests that come in?
The technical writer writes about the product.
It can be a manual of how to use the product for the customer.
It could be technical documentation for programmers.
Examples like technical release notes about what functionality is present in which software packages.
The support team
Some companies have a support team that communicates with the customer when they have questions about the usage of the product.
In smaller software companies, the team/project manager and/or the consultant can take up this role.
The support team helps the customer by answering their questions. It is similar like a help-desk.
If further technical expertise is needed they communicate with the project manager who knows which programmer can help with it.
Sometimes this results in a change request because new functionality is needed in order to help customer in using the product.