Hi Guys, These are the basic principles of software engineering i am going to discuss with you.
Requirement gathering activity: – Before customer requirement can be analyzed modeled or specified they must be gathering through commutation called Requirement gathering activity.
Customer has a problem or requirement which is not compatible with computer based solution. A developer responds to customer’s request for help which starts communications. Effective communication is most challenging activities for software engineer. So there is many principles apply equally to all of communication that occur within software project.
Some principles are following:-
1) Listen carefully: – To understand customers requirement perfectly and listen carefully to speaker which ensure proper data collection. Ask for classification of something is under , but avoid constant interceptions. Concentrate on speakers’ word so there should be any chance of misinterpretation.
2) Prepare before you communicate: – spend the time to understand the problem before meeting with customer. If necessary, do some research to understand business terminologies .so it is necessary to prepare the agenda for meeting.
3) Someone should facilitate the activity: – every communication meeting should have a leader to keep conversation moving in productive direction. To solve any conflict that does occur
4) Face-to-face communication is best: – face-to-face communication is better but even if some document related to that particular subject or discuss is given. The drawing and documents speaks better.
5) Take notes and document decision: – note down all important points and issue raised in the meeting maintain record. One participant of meeting may act as a recorder for the notes and document decision.
6) Strive for collaboration: – collaboration in team members is essential for better team work. Collaboration is achieved when collective knowledge of member of the team is united to illustrate product of system function or system feature. It helps to build faith among team member and create generic goal for team. So the collaboration is very important in the team members.
7) Stay focused, modularize your discussion :- the more people involved in any communication the more chances to bounce topic form one to other. The facilitator should keep conversation in one direction and important topic will be focused. so stay be focused modularize with your discussion.
8) If something is unclear, draw a picture :- though verbal communication is important a sketch or drawing can be often provide clarity when words fails to do job so that’s why draw the clear drawing or picture for particular stage.
9) Keep the discussion to “ move on ” :-
a) once there is an agreement to do something.
b) If you cannot agree to something.
C) If a feature of function is not clear. In the meeting many people require to discussion different issues. So communication like any software engineering activity takes time .the people who participate should recognize many topics require discussion and that “ moving on ” is best option to achieve communication.
10) Negotiation is successful when both parties win :- there are many instances in which software engineer and customer must negotiate function and feature priorities and delivery dates.