I will reiterate some of what others have said: - Use version control! - Hire a professional software developer - Good architecture and abstraction comes mostly from practice but if you really want to do some reading on software architecture check out "The Architecture of Open Source Applications" (vol 1 & vol 2) http://www.aosabook.org/en/intro1.html
Version control will be on the list starting next year. Thanks! I'll also take a look at the link. Unfortunately it isn't in our budget to hire a pro dev to the team but I can work attempt to increase time working with our corporate IT department which has some excellent devs.
$ git init $ git add . $ git commit -am "Initial messy commit."
You could start using a more refined approach from there, and that would be a start.
When I start working with someone else's code for the first time, I run these commands and immediately have a baseline to work from. Once you run these commands, you can start experimenting with your code, and you can start guarding against someone else's accidental bugs in the project.
This does assume some basic understanding of how version control works, but it seems you could learn the basics of git in an afternoon and start using it to provide a baseline.
Are you currently doing the "make a copy of the project folder and call it project_backup_110217" approach to version control?