I'm currently working in a very small team of programmers (2-3) and I'm looking for advices/best practices on how to organise our work. We're all working on the same application using PHP. Today we're kind of all working on our way.
Today situation:
List item that have to be worked on by each dev 1/week. What has to
be done is defined at a high functional level (ex: Build the search
engine for this product..)
Commit / merge our individual branches (git) every week before the
next meeting
No real dev rules, no code review
No test written (aouutch)
Problems faced:
Code quality issue: discovering someone else code is sometime tough
(inline, variable+function+class names, spaces, comments..)
Changes in already existing classes (impact on someone else work)
Responsibility of each dev unclear: after getting someone else code
and discover something messy, should I make the change? Should he
make the change? How to plan those things,...
What I'm looking for:
Basically I'm looking into structuring the way we develop things in order to avoid frustration and improve overall quality.
How to define coding standards (naming convention, code rules...)? Do
you you any validation script to make sure code is valid before
committing?
Do you think that defining an architect role in the team is needed?
Someone that would actually define what has to be developed during
the next phase. By defining interfaces or class descriptions that
have to be written. (Does it make sense in such a small team?)
Today we're losing time into understanding what others did or tried to do, we're also losing time in discussion like "you should have done it that way! Why is this class doing that and not that..? Shouldn't we have a embedded class rather that this set of data...".
I'm looking into a work process, maybe with more defined responsibilities and process in order to improve our performance. If you have experience, advices, best practices or anything to share that we could benefit from it will be much appreciated!
Thanks a lot for your time!