Lessons Learned From Buying Halogy
In late 2012 I made an offer to buy out a developer who had developed an [Open Source CMS]( "Halogy CodeIgniter CMS") and was marketing it for freelancers. Fresh with ideas, I dove in to the CMS in an attempt to leave my mark on the system and create a software product that I could sell. It's almost a year later and not much progress has been made. Mistakes happened. I trusted the wrong folks to handle development. My business grew. Life happened. So here are a few things I learned in my attempt to re-launch a dated CMS.
Maintaining someone else's codebase is hard.
I easily under estimated the amount of work that goes into maintaing someone else's code. Had I created this system from the start, I would have known all the little secret details of the code. Why certain coding decisions where made and how they function. The largest problem was the previous developer had left the project and have very little time for support after the purchase. He did give me 30-days to ask questions, but I didn't utilize him like I should have. So I wasted a tremendous amount of effort attempting to learn all the details of the code. Takeaway: Have the previous code owner walk you through not only the code, but why they decided on specific implementation. Also, you can never have too much documentation.
Develop and stick to a plan.
A lot of my early issues were related to my inability to develop a plan and follow through with it. I spent a lot of time working on ideas that made very little sense to add to the system, when what was needed should have taken priority. Takeaway: Develop a simple plan for the future, focus and stick with it.
Stick to what you know.
I am a front-end developer. I know it well. I can design and develop front-end solutions when needed. I love working with Javascript. I am a decent PHP developer. I can make my way around and handle developing small systems to work. But when you take on a project that is larger, you need to stick to what you know. Many issues could have been avoiding by simply bringing in a few folks to manage the backend code base. Takeaway: Do what you do best. Keep focused on the areas you can add value, bring in others who compliment your skill-set.
Don't blindly trust people with your code.
Once I realized I had to bring in some people to help with the project I started contracting people to develop specific features. I spent a lot of money and time trying to bring on developers who could work with the code base and add the features that I wanted. The biggest issue I had was finding developers who cared about their code. Quite often, I would find a developer who would send me an updated feature only to find out they didn't really understand what they were doing. Takeaway: Talk to developers over the phone, or Skype. Have them work on test projects to see how they work with your code.
Life Happens
This year has been crazy for my family. I have been contracting, freelancing, and bootstrapping my own businesses for the last five years. As my business started to grow so did the hours I was working. The software simply became a "when I get to it" project. With that type of attitude, there was no chance of any progress being made. Takeaway: Understanding you can't do it all. Life changes and priorities change. Know when you are taking on too much and be open to handing things off.
What's Next for Halogy?
My focus now is on maintaining the Open Source project of Halogy. I just recently put the project back on GitHub and I've reached back out to some developers who have showed great interest in helping me develop a fantastic platform. I am still working on updating the UI for the system, once that vision is locked down, I will encourage developers to fork and workout the rest. I've learned so much from open source projects that I want to keep Halogy in the open source community.