Welcome Guest, Not a member yet? Register   Sign In
Is CI Scalable? Startup needs advice!
#1

[eluser]Unknown[/eluser]
Hi all, I wonder if you could help?

I commissioned a team to build a website, a short while ago, for an innovative startup project. They built it in CodeIgniter and the site ended up being delivered with a large number of problems. Since then, I've taken the project away from them and have got another developer on board who has been building functionality on top of the original database etc. I have recently be in touch with a couple of extra developers who have advised me to start the project again and go with a different framework. This is because they have concerns over whether CodeIgniter is scalable.

A large amount of money has now been thrown at the project and it has taken a long time to get where we are so it is unfeasible to start again. The 2nd developer has built a lot of functionality and it would be a shame to throw it all away and go with another system. Is CodeIgniter scalable, and will replacing the old database etc be an option to make this project function well and then support a large number of users possible? Would be great to hear your comments with regards to this.

Many thanks, Rich
#2

[eluser]ivantcholakov[/eluser]
Two years ago I faced a project written on CodeIgniter that was about fail remarkably. It was a system that every year, within a month period, should accommodate about 8000 students to rooms in a university campus. Well, in urgen manner we did the job somehow, this year we will do it smoothly. Negative experience is not always a bad thing, so I am going to share it with you.

What were the causes of our problems?

1. We underestimated complexity of the project. The plan and the shipment date were unrealistic.
2. It is very important how code starts from the beginning and who does it. In our case a unexperienced developer started the project alone, without our assistance. It is not him to blame, it is us.
3. There was not practice for code reuse in our place.
4. As a result, the design of the URL's, the matching controllers, the models, helpers were a total mess.
5. There was business logic within the views, oh dear. I saw lack of understanding, or negligence of the MVC pattern and other good programming practices.
6. Poor and messy database design (this was the most painful problem).
7. Fragmentary specification, provided by the customer.

So, it was not CodeIgniter to blame, it was us to. :-)

On the point: Your question maybe does not lead to the right answer. The PHP framework choice is just one of the factors that may bring you to success. You have to have the idea, what the whole system's architecture should be. Scalability IMO may have two major aspects: about business logic complexity and, on the other hand, how big data is (you have mentioned "a large number of users").

Aspect 1, business logic complexity: CodeIgniter alone is not good enough. You need the third party "Modular extensions", so you could modularize your application and if you need to - to use the HMVC pattern.

Aspect 2, how big data is: CodeIgniter would not be a problem IMO. You can use its query builder, or in some places that need optimization you may pass SQL queries directly (but use proper escaping for avoiding SQL injections). For big data don't use ORM.

CodeIgniter is just a PHP framework, but on top of it, for real-life business, you need some kind of a starter (empty) site that you can reuse every time you start a new project. Such a suggestion is valid for many other PHP frameworks too.

I use my own starter site (see my list of built-in technologies), on GitHub you may find some other starters too. Or you may build yours one. It is a matter of some research.
#3

[eluser]Pert[/eluser]
It's not what framework you use, it's how you use it. Like poster before, my first tries with CodeIgniter were pretty bad, just because I didn't fully understand the framework.

Last year and half I have been building portal for software testing company, it's the biggest project I've done, and it does not show any signs of speed / scalability issues. Any issues we have are because of human factor.

I've also worked for a digital agencies, and if you do hire someone else to work for you, a lot of them only want to get the money and split as soon as possible.

If at all possible, hire a smaller team yourself, people who are invested in the company long term.

As for actual scalability issues, here's few "rules" I always follow these days when planning

- it's relatively cheap to upgrade server hardware for immediate performance boost compared to re-engineering or hiring very expensive yet very skilled team

- it's better to have something working for a small user base than build a framework that could host Facebook size application, but because it's never ready no-one will actually see it

- plan ahead, categorise features by importance, split work into smaller chunks for easier management (leaving agency to get on with their work for months then discover they have been off course the whole time is not good)





Theme © iAndrew 2016 - Forum software by © MyBB