I believe that agile works if everything is agile.
In software development area, in my opinion, if team members' code is integrated early, code will be more in sync and this has a lot of pros:
- Early integration helps team members to avoid painful merges.
- Encourages better coding habits, because everyone makes sure that they don't break co-workers' code everyday.
- Both developers and architects (code reviewers) may detect bad design decisions or just wrong development directions in real-time, preventing useless work.
Actually I'm talking about getting the latest version of code base and checking-in your own code to the source control in a daily basis.
When you start your coding day (i.e. you arrive to your work), your first action is updating your code base with the latest version from the source control. In the other hand, when you're about an hour to leave from your work and go home, your last action is checking-in your code to the source control and be sure that your day work doesn't break the project's build process.
Rather than updating and checking-in your code once you finished an entire task, I believe the best approach is fixing small and flexible personal milestones and checking-in the code once you finish one of these.
I really believe that this coding approach fits better in the agile project management concept.
Do you know some document, blog post, wiki, article or whatever that you can suggest me that could be in sync with my opinion?. And, do you find any problem working with this approach?.
Thank you in advance.