Projects for family members are a pain.
This doesn’t mean that I don’t love my family they’re a great bunch, but working with my brother to develop software is a pain. This could be due to our relationship and experience with each other, but his thoughts and mine often differ. Our personalities tend to clash. We know how to test each other and thus things get prioritized with events that are happening in life. Everything can’t be done at once but these family software projects should realistically be treated as any other project for a customer.
With this in mind I thought I’d lay myself out some helpful guidelines.
- Don’t cut corners.
- Create a specification for any project even if it is a small list of requirements that the customer agrees upon.
- Schedule the project with realistic time frames.
- Nothing is perfect the first time around.
These are all important as good design in all instances allows for future proofing. Effective design can be undermined by corner cutting. In the long run more time is going to be used in fixing issues caused by shortcuts in design and development. Hostility between brothers is a hindrance which luckily with other customers is something that is not experienced. However, customers, just like brothers, tend to change their minds and so a specification that is agreed upon between both parties must be created. As Steve Jobs famously said, “Customers don’t know what they want until you show them.”
However, as with all things in life, nothing is ever perfect the first time around. Some sacrifices have to be made to the design of any piece of software as long as the customer receives the functionality that they want.
I will proceed to keep you updated through twitter and blog posts.