Building software is the coolest thing for software engineer. However, the software project will become a disaster when you ignore these seven sins that make disasters happen.
#1 Ignoring intensive communication
You can't depend on an email, quick chat, or might be a letter. Intensive communication is the basic ingredient of successful project
Pro Tips:
- Communicate regularly (weekly)
- Update your progress regularly (monthly)
- Create a IM group to handle urgent communication
#2 Undocumented Changes
Every time your customer said anything, record it. Every time your customer request changes, record it and negotiate
Pro Tips:
- Avoid impulse response when changes are requested
- Stored the changes and label it
- Not all changes should be fulfilled
#3 Forgot to test
Your developer busy, your tester busy, the software should be deployed so you forgot the testing.
Pro tips:
- Invest with automate test
- Test with your customer
- Integration testing is a must
#4 Virtual Documentation
You don't have user manual. You think that the software is easy enough to use.
Pro tips:
- Creating short and quick manual
- You can create video tutorial to make it clear
- Write your manual when doing acceptance testing
#5 Yes, Sir!
Not all requested should be granted, not all changes should be fulfilled
Pro Tips:
- Never say yes, until you discuss with your team
- You should consider trade off for any changes
- Prioritizing the changes
#6 Never Create a Plan
You feel the tasks are easy but try to measure it. You will find more complexity in the detail
Pro Tips:
- Learning how to create break down structure, user story / tasks, or even Azure boars
- Learning resource worksheet
- Playing around with Microsoft Project will help
#7 Ignoring Payment Terms
You cannot build a software without money in your pocket. Therefore, you should configure the payment terms for each project.
- Split the payment: beginning, middle, and end.
- Milestone model will be helpful. You will get the payment every time you finish the job
- Save the backup fund for supporting changes.