What is your development process for a new project?


I am new to Yii. I come from a Drupal background. I have done a lot of reading and played around with Yii and basically learnt how things work. So far I am loving Yii and I think it will be my new home for personal development work.

I am now looking to start a personal project using Yii. I have two goals with this project, learning and getting practical experience with Yii and to complete and use a project I have been considering doing for a while now.

It’s a rather large project and before I start I would like to hear about how others start and work on a new project. What the project is and does is not important to the discussion I am more looking to hear about actual general processes and steps different people follow.

I know commercial developers would normally include a step for things like quoting and cost. As this is a person project I will be skipping these kinds of steps but feel free to include them in your suggestions.

Additionally I am not including anything about using version control or test driven development.

This is sort of what I have come up with so far. Let me know what you think.

This is a very basic first attempt and I hope to expand it into a more detailed concept.

  1. Define goals. Planning and research basic features and site sections. Set tasks and milestones

  2. Setup development environment including Yii demo app

  3. Planning basic/primary table structures

  4. Use Yii Database Migration to create primary table structures

  5. Using Gii to create table model and customize as needed

  6. Create required views, crud operations and re-usable widgets as needed

  7. Develop/Customize user access control as needed

  8. Review and repeat from step 3/4 to 7 as required

  9. Implement site design theme (could be done before 3.)

10.Test & review

For me planning is important but sometimes I get so caught up in the planning and research that I never get out the starting blocks.

How other people develop a project plan is also what I am interested in. I just use pieces of paper and notes on my pc. Notes are sometimes in a real note taking app and sometimes just in text files, and sometimes but rarely in a proper office document.

Does anybody have any suggestions of a process or open source piece of software were they keep track of notes, planning, tasks and milestones.

I am one person so a large collaborative system is maybe over kill, but I am willing to consider anything if it helps.

Additionally how much planning do other people do? Do you plan as much as possible upfront or do you break planning and development into steps and phases or is it dependant on the size of the project.

Any feedback or suggestions would be greatly appreciated.

Hi NaX

Welcome to Yii! :)

Do not try to plan as much as possible. Define project direction and separate into tasks that can be fully implemented in 1-2 weeks. Read more about "Scrum" approach in project management.

Concerning task tracking - look at Redmine. It’s free, functional and easy to use.

Also I would suggest you to setup Dev, Test and Production environments at the start of project. (put corresponding config files to protected/config directory)

Good luck!

Interestingly I found Redmine a few days before posting here. I was a little put off by it being a Ruby app. I will have a better look at it and try to look past the fact that it is developed in Ruby.

I have heard of Scrum. From what I remember I it was a very team focused approach. I will have a look at it and see if there is anything from it I can use or adapt to my situation.

Do you have any comments on the Yii development part of the process. Like using Database Migration and starting with defining your Models.

I have a very clear way that I start a Drupal project and the order I do things for the best results. I know I will only really be able to know the same about a Yii project once I have tried. Trial and error is a good why of learning.