Ideas for successful software projects
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 into a project. It will be difficult for the team to get acquainted with them and deliver a good quality project. Small steps are the best.
- Depends on the level of communication among the participants. 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. It’s very likely customers have a pretty clear idea of what they’re expecting. 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 involved 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 low quality projects.
- Communication issues among team members. Local and overseas.
- Working on different time zones.
- Be careful if an overseas team is working on something for which they got a wrong concept. It may be too late to undo it by the moment you see 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 very clear on what you’re expecting from a system or a team.
- 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 coming out with no answers and more questions.