gortron Posted March 19, 2008 Share Posted March 19, 2008 I am a PHP / mySQL developer and I manage the ongoing development of a content management system for the company I work with. I'd like to manage the project as effectively as possible and I would like to get some advise in this area. Can anyone recommend a specific approach to development? For example should I use CSV? Is there an recommended method to document new features, feature requests, milestones, roll outs of updates? My main concern is if I repair or update a clients copy of our application, how do I ensure each other client receives the same update? Is there a recommended process for this? Thank you in advance to anyone who can give me some help or advise in this area. Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/ Share on other sites More sharing options...
dbo Posted March 19, 2008 Share Posted March 19, 2008 You're talking about a lot of different things here. I'll give some ideas though. I've never been a big fan of CVS or SVN, but if the project is large enough, or has multiple people working on it, then it can make sense. Approach to development? Again it depends on the particular project at hand. If you are 1 man doing the work, then the waterfall model makes the most sense. When you're one guy, A has to happen before B, etc. Everything is linear. That being said, I like waterfall even for team projects. It forces clients to commit to something before you move on. Otherwise 3/4 of the way through the project they try to change things and you have to retrofit it in. Sometimes you've got to do this anyways, but if you have required them to signoff you have a leg to stand on, some of the other models don't really promote this. You really ought to have your system developed in such a way that you're managing a single installation, otherwise pushing out updates become very difficult. That doesn't mean each installation has to be the exact same, but the core should remain the same. Also modules should be developed with the master copy and then integrated for said client. If something needs changed, you change it in the master then push it out... really need to keep things in sync. One good approach to pushing out updates is diff files. For documenting your code, phpDoc is a good tool. You structure your comments in a certain fashion and then it generates the documentation for you. This makes as a nice little deliverable for a client. Managing documentation is a tricky one. There are a lot of different ways you can do this. I suggest first deciding which documents are always needed. Then you'll probably want a project management tool. With this you'll create a project, upload the standard documents and then create tasks, milestones etc as they relate to that particular project. At the end of the day it doesn't matter how you do it so long as the information can be found easily and related. For example, this document belongs to this client, for this project, etc. For new feature requests/bug fixes it's a little more difficult. Most people use some sort of a ticketing system... which works well. The problem is it's usually a disjointed system from your time tracking/PM tool above. This makes it hard to relate the small things back to a client. Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-495917 Share on other sites More sharing options...
redbullmarky Posted March 19, 2008 Share Posted March 19, 2008 Trac is possibly one of the better project management tools for me. SVN integration, wiki, bug tracking, milestones, etc all rolled into one. Worth a look Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-495977 Share on other sites More sharing options...
gortron Posted March 19, 2008 Author Share Posted March 19, 2008 dbo, Thank you for your detailed reply. Yes, I am one man working on this project. I haven't heard of the waterfall model, I don't know if its a particular process or not so I'll look it up. I have the project centralized as much as I can. Meaning all the files are on one server and the clients log into this. Some files are still needed on the clients sites however and this is where things get frustrating to manage. Again, I don't know what diff is, but I will look that up also. I am considering writing a PHP script to FTP all the necessary files to a clients site for a new site or even to 'repair' a clients system if it fails. ( in relation to PHP FTPing files, do you know if PHP can FTP a compressed file and uncompress it at its destination?) phpDoc sounds great, it may be exactly what I need. Can you recommend a specific easy to use ticketing system ? Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-495979 Share on other sites More sharing options...
dbo Posted March 19, 2008 Share Posted March 19, 2008 Waterfall is just a systems development lifecycle (SDLC). It basically outlines the various aspects from requirements gathering, design, development, support etc as a continual process... each previous step gets completed before moving forward. The ideal system would be to require your clients to host with you and manage all of the clients off of a single installation. That means as you make updates you only have to make them in a single location and the updates are pushed out to all clients by default. There are ways to pull off the FTP/Unzip process you mentioned, but it may be cumbersome... and will depend on what your host allows. It could be a script that calls FTP from command line using PUT... then you've got some sort of listener you provide to your clients that unzips them on the other end (it may just run on a cron job...). That being said, be very careful doing this. What if you've custom built a feature for a client and you apply the "fix." You can potentially break their entire site, which leaves very angry clients. You'll at the very least want to have a backup of the files. Diff is a thing that looks at the differences between file A and B and then applies them to the said file. I've recently been playing with osTicket a bit. It seems to have the main features but not be overly bloated, though I've not used it a lot yet. Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-495992 Share on other sites More sharing options...
dbo Posted March 19, 2008 Share Posted March 19, 2008 I've not used Trac, but I see it popping up more and more. I probably ought to look at it myself. The project management tools I've used are more of the commercial sort. Team Dynamix, Creative Manager, BaseCamp I've tried ActiveCollab, but it's features were too limited last time I checked. You can't assign hours to task, or rates to different resources, etc. But for managing tasks and documents as they relate to a project it's pretty good. Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-495996 Share on other sites More sharing options...
gortron Posted March 19, 2008 Author Share Posted March 19, 2008 Thanks Redbullmarky, Trac looks like it could be very useful. I'm wondering if im using an Axe to pear a pencil using Trac to manage our content management system development? I'll continue to look at the option of PHP FTP'ing the files. It won't damage a clients site as I'd only be focusing on one folder and its subfolders. Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-496007 Share on other sites More sharing options...
gortron Posted March 19, 2008 Author Share Posted March 19, 2008 In relation to PHP FTPing above, Is PHP capable of FTPing about 700 files to a server? Total size under 5MB? Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-496059 Share on other sites More sharing options...
dbo Posted March 19, 2008 Share Posted March 19, 2008 I still think it's a bad idea.... but I don't see any reason why PHP will not be able to FTP that many files. The bigger concern is maintaining a connection between the two machines. Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-496071 Share on other sites More sharing options...
gortron Posted March 19, 2008 Author Share Posted March 19, 2008 I have a test running that creates a list of files to upload, uploads several files til it reaches about 200K worth of files and closes the connection. Then starts over uploading several more etc until finished. Im not saying this is the definite answer, but I've always wanted to try it out. Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-496295 Share on other sites More sharing options...
gortron Posted March 21, 2008 Author Share Posted March 21, 2008 Thats for the great suggestions guys. It's given me plenty to look at. (Is it possible to close a thread?) Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-497380 Share on other sites More sharing options...
stuffradio Posted March 22, 2008 Share Posted March 22, 2008 I believe there is a button that says "Mark as resolved" or something along those lines. Quote Link to comment https://forums.phpfreaks.com/topic/96876-best-practice-for-developing-and-maintaining-a-project/#findComment-498074 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.