June 6, 2016
10 Tips to share after building my 3rd CMS
In my time of being a web developer I have had my hand in developing three different content management systems (CMS). One was for a health care company I worked at out of college and two within my five years here at E-dreamz. Each time was a new and challenging experience. So here are ten helpful tips that I would like to share from what I learned along the way.
1. Start with the latest and greatest.Most likely you will be starting with a nice framework like Laravel, Symfony, or Codeigniter. Do your research. Always begin with the latest release, or in our most recent case, the next major version that will soon be released. These versions should be the most secure, have the newest features, and be supported for years to come. You may also want to choose a framework that has an actively engaged team and community on the other end constantly working to fix and improve the framework.
2. Plan for the future.You want your project to be used for as long as possible without becoming unsecure, outdated, or obsolete. Have a plan to keep the framework you chose up to date and easy to roll out to all of your sites. Also allow the same for the core application you are building. For instance with our most recent CMS Echo+, we decide to use composer, and build our core functionality into packages that we could easily update and deploy quickly to all of our sites.
3. Perfect one small task at a time.Building a CMS or any large scale project is a huge undertaking. It can be overwhelming even just figuring out where to start. So I suggest breaking it up into small tasks to complete. Work on one thing at a time and get it working perfectly before you move on to the next task. It is all too easy to say “I’ll come back and fix that later,” only to have it show up on a bug report some time later. If you do have to leave and come back to something, it is great to leave yourself notes of where you are at and what still needs done, so that you can quickly jump back in right where you left off.
4. Cater to the users.When building and planning the interface and functionality always remember the end user. You want to make everything as simple and as user friendly as possible. Simple for users usually means not so simple for you. It is always good to spend hours on the tiniest detail that will save the end user minutes or even seconds in the work flow. They may not know the work that went into something so small, and they might not even realize how it’s helping them, but in the end they will always be a much more satisfied client.
5. There will be bugs, have a plan.There is no need to get frustrated. There will always be bugs no matter what we do. Plan for them, and know what actions you will need to take to resolve them. The good thing is that you built the software. So when a bug does come up you know exactly where to look to find it and take care of it. It is best to be able to simply create a patch or minor version update of your software that you can deploy to all of your sites right away. The better plan you have for these situations, the less stress you will have when they arise.
6. Version control and proper tagging is very important.Keeping your software up to date I have mentioned before is very important. Every time you make an update you should always tag your release, and leave notes of what was updated, added, or fixed in this new version. Also there is not enough I can say about using version control. Having backups of every change and being able to roll back to any instance of your software is the best safety net you can have.
7. Security should always be on your mind.In this day in age we hear all the time about this site being hacked or that site being hacked. Never think that you or your clients can never be a target. Always have the best security in place for any possible breach, no matter how big or small. As you are building code, constantly be asking yourself if what you are doing could be vulnerable. If there is even the slightest feeling of maybe, then always do everything you can to change that maybe into a no.
8. Allow it to evolve with new ideas and solutions.A great project is never finished. There is always room for improvements, enhancements, and added features. Never on your version 1.0 release should that be all you are striving for. Always be thinking of new ideas, new features to add, or ways to simplify the workflow. Always have it on your mind. You will be surprised of where or how you come up with the next big improvement. Personally I am a morning shower, or lying in bed trying to sleep kind of idea guy.
9. Collaboration is key.There is truth to the saying, “Two heads are better than one.” Here it is wonderful. We have an amazing team of developers, designers, mangers, and marketing professionals all doing their part, sharing their ideas, and building the best project possible. Our CMS is 100% a team effort. We all have different skills and expertise. We all trust each other and are confident that everyone will do their best work. It’s great to have a plan and a standard way of doing things. You can only work in a team if you are all on the same page. If you are building something all on your own, then confide in your peers. Have them review what you are doing and give you honest feedback or any ideas they may have. Also never be afraid of some good old constructive criticism. Accept the feedback and use it to improve your craft.
10. Enjoy your work.Probably one of the most important things you can do is enjoy your work. Take pride in what you are building. Get excited about new ideas and creating solutions. I love nothing more than to be faced with an issue that I don’t know the answer to right away. Accept the challenge with open arms and a warrior like mind. Give it your all and never quit until you come up with the best solution. Always go above and beyond what needs done or is asked of you. Make everything you do as awesome as it could ever be. Then later go back and make it even better. This digital world is our masterpiece. Let’s make it better and better with every line of code we write and every pixel we design.
By: Tristan Perry
Sr. Full Stack Developer