This article describes some ideas on getting a successful software development process.
A successful project:
- Depends on the expertise of the team. Don’t try to push many new technologies to a project. It will be difficult for the team to get acquainted with them and deliver a quality project. Small steps are the best.
- Depends on the level of communication. Enforce communication among the team members. Even if they are working remotely. Make sure they have the right tools for chatting and video conferencing.
- Depends on the degree of delegation to take decisions. Don’t try to guess what your customers want. On custom solutions it’s probable they have a pretty clear idea of wht they want. Involve them. Let them participate in the process.
- Depends on whether they have direct contact with the customer or not. Let your developers ask questions to the project shareholders. It will give them a clearer idea of what the customer is looking for.
- Depends on whether the project has been planned or not. Document ideas, meetings, mock-ups. Create links and make them available to everyone in the project. Create a document of requirements and keep it updated.
Things that may affect the process or its final result:
- Lack of experience in technologies
- Lack of testing UI mock-ups with internal users and customers
- Missing requirements or constantly changing them
- Short deadlines
- Price tag very low. This point and the previous one can get the team to work extended hours, get them tired and deploy a low quality project.
- Communication issues among team members. Local and overseas.
- Working on different time zones.
- If an overseas team works on something for which they have a wrong concept, then by the day when you see it, it may already be too late to undo it.
- Questions/answers between overseas and local team may take about a day to get solved. Sometimes even more.
- Poor decision making. Involve the customer. Involve those who should know the answer.
- Ambiguity in decisions. Be crystal clear on what you expect.
- Lack of human resources. Like no software analyst to define a process.
- Endless meetings with few decisions at the end. Yes, I’ve been to 5 hour meetings from where we come out with no answers and even more questions.