Magento Extensions in the Spotlight

Posted by: Karen Tuesday, September 4th, 2012

Back in 2010 I spoke to Magento about, amongst other things, how we could get standards around Magento extensions so that merchants and web designers/agencies could make educated decisions on which extensions and companies are good/bad/trustworthy.

Magento staff have moved on, we now have 5000 extensions and the issue remains, in fact I think its got worse.

What are the Problems?

Let’s start by saying there are many many great extensions out there and some great extension companies as well.  If there weren’t Magento would not be as successful as it is today and I wouldn’t have a business as the trust in extns would be lost.

But, based on my experiences with WebShopApps customers, there are issues with quite a few Magento extensions aswell. The most common issues seem to be:

  1. No support and/or documentation
  2. Extension stops being maintained
  3. Support turnaround time is slow (>2 working days per email)
  4. Support packages integral to extension sale (no support without)
  5. Codebase is poor, resulting in many bugs and problems with extension conflicts

Are these issues that are specific to Magento? I very much doubt that, I expect this is a problem with all e-commerce platforms, maybe an even bigger problem as there is less transparency on some. Its certainly an issue you see with the Apple iPhone Apps, so its not unique and it’s hard to solve.

What about Magento Connect?

You could argue reasonably that Magento Connect is the portal for reviewing extensions and companies. After all it has a review capability and extensions are ‘checked’ by Magento staff. But its open to many forms of abuse and fixing. I won’t detail them here as it will maybe encourage more, but let’s just say the figures and reviews aren’t always what they seem.

It’s a well known fact that you have to work 10 times as hard to get someone to leave you a good review as getting a bad review – customers who are happy or of that disposition where they dont complain also often don’t go out of their way to give praise either, they just want to get on with their day-2-day work and who can blame them?

What has Magento Done?

Magento has introduced many initiatives to help improve Magento Extensions. Their efforts include:

  1. Developer Certification
  2. Free training materials for developers to self-learn
  3. Trusted Extensions
  4. Greater checks on Magento Connect applications
  5. Community Managers being involved at grass root level
  6. Industry Partner Programs

But Magento are busy, having eBay around must take up a fair bit of their time nowadays(!) and they are coping with massive growth, it is impossible for them to be all things to all people. Maybe we have a responsibility to assist here?

 

What Can WebShopApps Do?

Back in August WebShopApps launched the AppShop which has been extremely well received. The aim here is to market the top 50-70 paid extensions, with a focus on companies/developers that have a high level of customer service and good quality supported extensions.

But this doesn’t really go far enough, really what is required is a central place where people can easily get detailed information about extensions and the extension companies.

Can WE Change Things?

So it’s easy to complain, to blame magento, or to blame extension companies. But can WE change things together and improve the situation here?  Can we ‘raise the bar’ and push extension companies to improve their offerings? Can we give objective unbiased information to extension buyers?

I actually think this is possible. The reason I think this is because I think the Magento Community is one of the best tech communities in the world, and I know we really care about this. How do I know – well see the twitter comments from last Saturday – it exploded when this conversation started there.

The vast majority of us want to evolve, we want to improve and we want to make Magento great. This isn’t about self-promotion, or marketing, its about being the best engineer we can, about how we can introduce process and standards to improve the e-commerce space for today and tomorrow.

How do I get Involved?

So how can you help?  Well we need to pool ideas and come up with a plan. Maybe we have an extension review panel, maybe we have an extension provider directory, I’m not sure. It’s not my decision, it needs to be a joint effort for it to truly succeed. I don’t see myself as running the show here, I helped the Magento Meetup London back on it’s feet and now I’m no longer required as an organiser – that’s what I hope will happen here because this isn’t about me or WebShopApps.

I’ve organised a skype meeting for 10AM PST on Wednesday 5th Sept. Contact me via email or twiter to get involved, or simply add me on skype (id is WebShopApps) and send me a message.  I am in the process of getting a Google+ circle together.

If you want to get involved make your voice heard, leave a comment here, tell us your ideas, it sounds corny but I do believe we can make a difference here. Thanks to all on twitter for your contributions so far, its been fantastic and inspiring.

Magento inc – we would love to get your involvement, your support and your ideas. I see this as very much a collaboration, us working with Magento to improve it, I hope that’s understood. If we are doing something that you have on your roadmap and you can see issues then let us know, I’m sure we all have better things to do if thats the case.

Tags:

13 Responses to “Magento Extensions in the Spotlight”

  1. It definitely sounds like an interesting idea and one I’d be interested in being involved in. I think the approval process seems to have been ramped up but for commercial extensions there is no real code review out there (apart from trusted extensions I’m presuming). Personally I think it would be a good idea for all extensions, free or commercial, to go through some sort of code review process to make sure that they a) do what they say they do and b) they are coded to a certain standard.

    I can’t make the Skype call unfortunately but if I can contribute in any other way that would be great.

  2. nesh says:

    (sent on twitter but 140chr limit is … ;)

    >What has Magento Done?
    > 1. Developer Certification

    Saw it, and it’s a joke — we are talking about *extension* development here, not plain usage/theming

    > 5. Community Managers being involved at grass root level

    We need *developers* not CMs to talk to, mostly we just get some PR … not real answers.

    On the generally poor code quality of extensions — we should not look further from Magento core code, different coding standards, very … questionable techniques in the code mixed with just plain bad coding practice. I’m using core code example as how *not* to write PHP code for fresh programers.

    IMHO, community (with exception of some bright examples) is even below average PHP level (which I don’t think is very good compared to other language communities) as Magento promotes a lot of bad practices itself — missing integrated tests, HIDING error messages (!?!? WT?), list goes on and on… Getting decent code quality from that will be almost mission impossible ;)

    ATM my hope is that 2.0 will be different enough to force pruning of the old ‘junk’ code and to promote good coding practices from the start — at least it should run with error_reporting(-1) quietly if nothing else ;) , having unit/regression core test will be final sign that they are growing up too.

  3. Hello Karen,

    You indeed have a point there.

    I want to zoom in on a specific topic you mentioned: the incompatibility of different modules.
    Some merchants get really frustrated when they end up with incompatibilities between some modules they installed / had installed. (As a consequence the story of who will solve this starts: the suppliers of the modules, the development partner, ..)
    For that reason I think opening up this information can also be valuable (not only be a review on Magento Connect which in the long term is not clear / manageable)
    If you look at WordPress, they let users vote if a certain plugin works with a certain version of WordPress.
    Example: http://wordpress.org/extend/plugins/wp-super-cache/ ; right column.

    Since you’re looking after ideas, let me add my idea to the idea generation :)

    Suppose there is a website where community people can add (in)compatibility-information between versions of modules. Suppose I install Module A and Module B and notice that they are incompatible, I go to the website and share this information (and maybe also the solution). Of course I can also share info that they are compatible, if they are.
    People can search or get a grid of the most often incompatibilities of the module they are searching on. Or they see the information that Module A is going perfectly together with Module Z.

    Just an idea..

    Greets,
    Pieter

  4. Vinai says:

    10 AM PST on Wednesday 6th of September? Can’t find that date this year – is it Thursday, 6th of September or Wednesday the 5th?
    Thanks!

  5. Ben says:

    Looking forward to where this leads, and thanks to Karen & WebShopApps for getting this organized.

    @Nesh I have some disagreements with what you say. You characterize certification as some sort of easy scheme related to “plain usage” and “theming”, when in fact the certification deals in much more depth than what you describe, especially in the areas of catalog, EAV, and command-control. I think your point would be better received if you were to explain it – especially since you’ve “seen it”. What have you seen? The only way to see the test is to take it.

    Regarding the level of coding: of course there’s tons of shoddy work out there, whether the crime is abandonment of framework conventions or poor development practice – this is after all why we are where we are, and this could be said of damn near every framework-based community.

    Magento grew from an in-house project, and I agree that we’re right to look towards Magento 2 to rectify a lot of the immaturity endemic in the current offering, and, given the size of the app, much more in the way of testing facilities.

    Respectfully,
    Ben Marks
    Developer, Blue Acorn
    Trainer, Magento U

  6. Sylvain Rayé says:

    @nesh:
    I’m really not agree with you about the Certification. For me it was not particularly difficult because I have 4 years experience with Magento but the content of this certification is definitely not about usage or theming. Unlikely it goes deep in the core code and how to implement it with respect of the philosophy of application. You have a very restricted point of view.
    Then about the unit test, it is definitely a need but how much open source project provide such a thing!!? The 2.0 as you said should fix that.

    To come back on the subject. The trusted extension is for me a label did to the Magento Partners, people who pay for this service and to be featured , not for the freelance developers or developers of the community. But this should be more opened to them via known developers of the community who could support the process. And the MagentoConnect should be the pivot for the review of the extensions.

    An important point about the commercial extensions. How can we review these extensions? They have their own platform, some are closed code.

    Magento wanted to be more open to the community, the version 2.0 is a step forward but it should be improved.

  7. Paul says:

    It seems that part of this process will need to be deciding what to review about each extension. As a consumer of Magento extensions I would appreciate evaluations I could use to decide the overall stability and ability of the extension and the organization / individual behind it. I’ve never taken the time to examine the coding practices used to create an extension in order to make a buying decision. So while I realize that coding practices are very important I would be really surprised if many extension developers would really buy into the sort of code level review and scrutiny discussed in earlier comments.

    This is just my opinion, but it seems this effort really needs to be defined. Would it be a code review, a usability review, an adherence to standards review, an applicability to mobile / desktop (i.e. responsive) review, etc?

  8. Andrey Tserkus says:

    Thanks for a good post, Karen. And I’m interested in this matter as well.

    However, despite the fact that community is interested as well, I think we’d better stick to another plan, than making community review extensions. The proposed plan won’t work because of several reasons:

    1) It is always so great to start something, but we become more and more bored with it when it comes to work. We have lot of our own work, and we have not so much personal time. So this duty becomes just a burden, nothing else. And eventually everyone quits such a volunteer task.

    2) The work is not paid, so there is no material reason to do it. And money is a valuable thing for people to keep working on some task. I’ve seen a lot of such projects started and then they died just because people couldn’t spend their personal time, while they needed to get money for them or their families.

    3) The community reviewers group (consisting of extension developers) by its nature would not be as unbiased as Magento company. So you can expect lot of talks, that its ratings/reviews are prejudiced. And these will be dirty talks, trust to the group will be getting lower and lower until reaching zero.

    4) The community reviewers group will be represented by real people. And these people will have different developer skills. So you can expect extension authors, who get negative reviews, to offense reviewers personally in an unmannered way. That would be the reason for people to leave the reviewers group.

    5) The community reviewers will have different skill levels, and they will be people not from Magento company. So they won’t have a good credibility from the rest of community.

    Among all the above mentioned items, the main is that this will be everyday work and it will be unpaid. People will stop working in that group in a month or two.

    A better way, as I see it, is to stick to a system like eBay uses – reviews, made by buyers. The only thing need to be done there – is to motivate buyers. This would help.

  9. Karen says:

    Wed 5th Vinai, sorry was burning midnight oil!

  10. Ben says:

    Andrey, I’m sure that we would love to have some input from you, Mosses, and anyone else, so please keep an eye open. Many of your points are valid, but there’s one point which is at the heart of all of this: the current situation isn’t very good. In fact, there are no *proper* rating! Popularity score = number of downloads, and a substantial portion of reviews are actually technical questions which are left to the vendor to answer or not.

    The Magento community has a proud tradition of helping ourselves, a spirit intentionally cultivated by Varien, and perpetuated by the, eh, *sparse* availability of reference materials ;-)

    So, thank you for the advice: we must guard against inertia, apathy, and bias. This project may be a non-starter, it may begin and fizzle, it may start strong and fade over time… in any event, it will be a good effort to try, and it may end up making things better for the community and therefore for Magento.

  11. Farai says:

    Good points from Andrey but in my opinion im not sure if a model similar to ebay reviews can be effectively applied to Magento extensions.

    For example, given the complexity of some of the software we are providing users just to achieve the functionality they require; sometimes its
    impossible to guarantee things such as compatibility with the user’s existing set of extensions which is usually the root source of some users leaving bad reviews.

    Its one thing to buy a fake designer tshirt or gadget on ebay and leave a bad review and its whole different case when it comes to reviewing and judging software.

    So, to my understanding a lot of users expect things to always just magically work which cant always be the case hence a model similar to ebays reviewing process wont work. But on the other hand, if a community panel certifies the quality of an extension then it doesn’t work for the user, they can’t then say the extension is rubbish if an independent panel has reviewed the quality of the extension.

    In regards to the work not being paid with the community approach, maybe something can be worked out for people willing to take on the task. After all, the community effort is going towards extensions that people are paying for.

  12. Lee Bolding says:

    Hi Karen,

    Interesting thoughts!

    Improvements in quality of code and application are one of the core principals driving the Mage+ project. An example of how we’re addressing the issue of code/application/extension quality is by introducing Ivan’s unit testing framework (EcomDev_Test) as a core Magento module (Mage_Test) which is used for unit and integration tests within Mage+ (as of v1.1) , but can also be used by 3rd party developers.

    3rd party developers can easily include a Tests directory inside of their module, and the Mage+ test framework will include these tests during it’s own unit and integration tests. A consumer of that module just has to run the test suite before and after installation of the module to verify that more tests pass after installation than did prior. Infact, we’re going to start recommending that the test framework is run immediately after installation of Mage+ itself in order to verify the installation.

    Ontop of this, with the CI service that we’re developing for the Mage+ project, it will also be able to verify test code coverage of both Mage+ itself and any extensions – so, it would be fairly simple to create a set of rules-of-thumb which could be that a “good” extension is deemed to have >80% test code coverage, with all tests passing

    That’s just a starting point though – because that doesn’t guarantee the code is actually well written. Ontop of that, the CI service would perform static code analysis (conforming to the requirements placed on the Mage2 codebase), to ensure that it was well written.

    Crucially, this is low-friction and iterative – extension developers can choose to implement this as and when they want, nothing will break if they don’t implement, but there’s huge benefits if they do. Including a Tests directory will not break compatibility with Magento CE, Magento PE or Magento EE, but will allow extension developers to prove the stability, compatibility and overall quality of their application with Mage+

    Whilst these measures will go a massive way towards ensuring that a greater confidence is achieved with the application itself as well as 3rd party extensions, we can still do better. Most developers “learn” Magento best practices by inspecting the code of Magento itself. This therefore needs to be top-down driven rather than bottom-up driven, which is what you seem to be suggesting. There really needs to be a concerted effort to improve the quality of code within Magento itself (including improving consistency, correcting spelling errors, ensuring that all methods are fully and properly documented etc). Again, this audit process has begun in Mage+ v1.0 and is aimed to be completed by the release of Mage+ v1.2

    I think that as a community, we’re well on the way to achieving a much greater degree of overall confidence through these initiatives

  13. beeplogic says:

    Can’t make the call this morning but would be interested in getting involved.

Leave a Reply