views:

193

answers:

7

I've always worked in small companies, mostly doing small websites, and they all sucked in project management.

That means I have no experience whatsoever (even though I learned a little bit studying on my own) about the best practices and tools when developing a project.

Currently I'm unemployed to finish college and I decided to take a small PHP project mostly to learn both the language and project management.
It's just an idea I had for a website, I don't need to get money from it and it is not big, so I'm not concerned with deadlines or business plan, or a main goal. The main goal is to learn the technical stuff.

The only thing I'm caring about is doing it right, you know, the best practices in PHP, server setup, security, the tools for the job.

I'm not asking for a complete rundown on any points, just things like

  • Remember to always sanitize user input
  • Use this tool to manage version
  • Remember to set this apache option
  • Here's a good link on how to organize your files

Things like these will be already of great help!
Thanks

A: 

There's a good question already answered about bug tracking and version control for single developers.

As for PHP style, I usually like to follow the Zend Framework guidelines. For deployment advice, you might want to head over to ServerFault.

Jim Puls
A: 

Here's some answers to the project management / best practices side of your question:

http://stackoverflow.com/questions/601759/what-professional-standards-do-you-maintain-in-a-side-pet-project

Peter Recore
+3  A: 

Non language specific:

Devise an error handling strategy early. What will you do when error conditions occur, will you log errors, how? where? What information will you log? Will you throw exceptions, return error codes?

Assume that your website is succesful, people start using it, then it breaks how quickly can you figure out what went wrong? Consider your whole error strategy from that perspective, not just from what happens while you developing and you're in control.

djna
A: 

Start off by choosing a framework you're comfortable with. I would recommend Code Igniter, CakePHP or Zend Framework. It will help(force) you with a basic organization of your code and files. All these frameworks has dedicated forums with passionate developers.

From the project management angle I would recommend you to set goals and milestones. It will help you get things done even though you're learning. Set target of that you should accomplish for this month, this week and today. Small and easy targets like "create signup form" or "set homepage set". It feel so good checking those off. There is a lot of tools to use for this, like Backpack or Basecamp (free versions) or Things (mac application).

Be sure to use PHP5 and not copy ugly PHP4 code.

Emil
+2  A: 

Some things that helped me a lot (in no particular order)

  • Version control (SVN in my case)
  • issue-tracker/wiki (e.g. Trac)
  • if you are writing markup: some kind of tidy
  • ... and a validator
  • if you are writing code: a lint tool for your specific language
  • TODO-list app (for small TODOs)
  • a cheap VPS host to test things (I also use mine to host SVN and Trac)
weichsel
in-browser validator, if you use firefox: https://addons.mozilla.org/en-US/firefox/addon/249. Also runs tidy. No page should leave the building without a green tick.
Steve Jessop
Nice! Thanks for the tip.
weichsel
A: 

For project management software, check out DotProject (http://www.dotproject.net/).

JamesL
A: 

About PMS (Project Management Software), you can take a look at

[http://www.axosoft.com][1].

This compagny edits OnTime, a very nice PMS.

Moreover, this software is TOTALLY free for a single user !

This software provides full support of SCRUM development method, for me one of the best !

Matthieu