Search code examples
codeigniteragilescrum

software development methology for CodeIgniter projects


I've been working on a CodeIgniter project with a friend of mine for almost a year now. We feel that our development process isn't as effective as we wanted to be, and currently we're not employing any software development methodologies. We're 2 man team, looking to have more people to work with us in the future, but we don't have enough people to start on scrum.

Right now, we're both working on this project on the side, would be nice to know which methodologies are best for us, to get our development going faster and more efficient.


Solution

  • Agile and Scrum won't make you faster or more efficient:

    Since you tagged this with agile and scrum, I thought I'd mention this: neither agile nor Scrum has as its goal faster or more efficient development as you ask for in your question. In fact, changing to these approaches involves a significant learning curve, but if practiced well contributes toward very low defect rates, software that meets the customer's needs, and a development process that responds to changing requirements. Used long enough, Scrum can provide good data about roughly how much work a specific team can get done in a period of time.

    Still, you might benefit from some practices:

    All that said, there are a couple practices that may want to try:

    TDD is not easy to learn, especially on your own. See if you can attend a CodeRetreat or similar event.

    If you aren't already using a modern software change management tool (SCM) like Mercurial, git, or subversion, get one and learn how to use it.

    Get regular feedback from "customer"

    If you don't already know (you didn't say in your post), you might ask yourself who you are making the software for. Can you frequently and regularly demo it to that person and get feedback? Find out what they want next and put those items at the top of the backlog.

    Try to make your product incrementally useful

    Rather than making big product-wide changes, add small useful amounts of functionality. Your design will drift but if you have sufficient automated tests in place you can refactor as needed.