I'm in the first month of work in a new company.. and after I met the two programmer's and asked how things are organized in terms of projects inside the company, they simply shrug their shoulders, and said that nothing is organized.. I think my jaw hit the ground that same time.. ( I know some, of you think I should quit, but I'm on a privileged position, I'm the most experienced there, so there's room for me to grow inside the company, and I'm taking the high road )..
So I talked to the IT guy, and one of the programmers, and maybe this week I'm going to get a server all to myself to start organizing things.
I've used various architectures in my previous work experiences, on one I was developing in a server on the network ( no source control of course ).. another experience I had was developing in my local computer, with no server on the network, just source control.
And at home, I have a mix of the two, everything I code is on a server on the network, and I have those folders under source control, and I also have a no-ip account configured on that server so I can access it everywhere and I can show the clients anything.
For me I think this last solution ( the one I have at home ) is the best:
Network server with WAMP stack.
The server as a public IP so we can access it by domain name. And use subdomains for each project.
Everybody works directly on the network server.
I think the problem arises, when two or more people want to work on the same project, in this case the only way to do this is by using source control and local repositories, this is great, but I think this turns development a lot more complicated. In the example I gave, to make a change to the code, I would simply need to open the file in my favorite editor, make the change, alter the database, check in the changes into source control and presto all done.
Using local repositories, I would have to get the latest version, run the scripts on the local database to update it, alter the file, alter the database, check in the changes to the network server, update the database on the network server, see if everything is running well on the network server, and presto all done, to me this seems overcomplicated for a change on a simple php page. I could share the database for the local development and for the network server, that sure would help.
Maybe the best way to do this is just simply:
Network server with WAMP stack ( test server so to speak ), public server accessible trough the web.
LAMP stack on every developer computer ( minus the database )
We develop locally, test, then check in the changes into the server test and presto.
What do you think? Maybe I should start doing this at home..
Thanks and best regards...
Edit: I'm sorry I made a mistake and switched WAMP with LAMP, sorry about that..