Blog

Learn about new releases, tips & tricks
  • Hits: 13566

JomSocial: Brand New Methods, Incredible Quality Assurance

Your Community. Your Way

It’s been a year since iJoomla took over JomSocial. That’s a year of hard work, planning and development. It’s been a year of change and progress and radical improvement.

And we’re just getting started.

Much of the last year was spent doing the things that had to be done to get JomSocial on the right track, both as a business and as an ongoing project.

On the business level we had to re-do most of the processes, from implementing a new shopping cart and creating a new newsletter system to improving customer relationships and facilitating communication.

On the software level, we had to face the hurdle of migrating smoothly to Joomla 3 and implementing a new quality assurance process—even if it added significant time to the development cycle. Our latest major release, 3.1, was by far the smoothest release we’ve ever had.

That was no coincidence!

Now it’s time to begin taking JomSocial to the next level.

Together with my amazing team, I plan to make JomSocial the best social network software—not just on Joomla, but everywhere. We’re going to keep coding, keep developing and keep drinking giant buckets of coffee until we get there.

First, I want to put more quality assurance processes in place—process that are automated and less time-consuming than we’ve been using so far. I’ve consulted with some very big experts to come up with a plan that will put us on the same level as companies like Apple, Yahoo and Adobe.

If they use automated QA processes, so should we. You deserve that level of assurance.

Here’s a video we created when we were all in Bali. I think it captures the essence of what we are currently doing at JomSocial but let us know what you think!

{youtube}K1bB78-A2Bg{/youtube}

The Plan:

A solid and professional quality assurance process has three parts:

  • Manual testing – The testers tests each case by hand.
  • Unit testing – Each function has a corresponding test code to ensure that it works.
  • Automated testing – The tests are run automatically on a browser, using tools like Selenium IDE or by writing the code directly with JAVA or another language.

Manual Testing

Manual TestingThis is the most basic level of testing. It requires writing test cases then testing them manually to see which fail. It’s the easiest process to implement which is why we started with it.

Manual testing, though, is slow and prone to human error. While we’ll always have to use some manual testing (to find visual issues, for example) our goal is to reduce our dependence on this method.

Unit Testing

This is the most sophisticated level of testing. It requires writing code to test the code. It’s also “low-level”: it reveals problems and errors early in the development process and prevent bugs appearing further down the road.

Our plan this year is to re-write the entire code base using this method.

Our next version, 3.2, which will have a brand new stream, will already have unit testing implemented inside the new stream code.

Joomla 3 makes it easier to write unit tests—much easier than it was for Joomla 2.5 and even Joomla itself now has a library of unit tests. Another huge advantage of unit testing is that once it’s in place, it will allow us to develop and add features much faster.

Automatic Testing

Test AutomationWhat if we could click a button somewhere in the office and run thousands of tests automatically, tests that examine every feature on JomSocial from registration to groups, events, profiles and more? What if we could run these thousands of tests automatically on any site that has JomSocial, even sites with very convoluted configurations and lots of third party extensions to see if JomSocial breaks? And what if we could run this test on hundreds of JomSocial templates to see which are really compatible and don’t create conflicts?

Sounds pretty impossible, right?

Wrong. We’re making it happen now with WebDriver.

We’re currently writing the code to hundreds and even thousands of automated tests. We’ll run those tests before every release. Within just a few minutes, we’ll know which tests fail we’ll be able to get the fix in fast.

This also means that every single release, no matter how minor, will be tested thoroughly, giving you a much more stable application. Writing all these automated tests won’t happen overnight but within a year, we will have good coverage of tests for all the features.

Quality Takes Time

Obviously implementing such a comprehensive quality assurance does take time and it does take effort. But it will be worth it.

You will start feeling the difference on version 3.2 and by the end of 2014, we should have accomplished something only a few, very large tech companies have achieved. It’s worth waiting for.

Professional Development Means Slower Features Growth

The previous way of developing JomSocial was very fast. Features were added rapidly but without proper planning and testing.

Those days are over.

From now on, everything we do will be planned, carefully written and thoroughly tested with tools like Unit Testing and WebDriver. It means feature roll-out will be a little slower but the quality will be much higher.

SCRUM – Project Development Tool For Leading Edge Teams

Having a big team of developers also required us to step up our project management processes. In the past, our developers would work through a list of tasks and bugs in a pretty relaxed fashion and without much accountability.

Now we have moved all our development to SCRUM.

SCRUM requires the team to anticipate how long each task from the back log will take before even starting the work. Development takes place in “sprints” of two weeks each. To estimate how long each task will take, we play Poker Planning (I talked about Poker Planning in another article). Once we’ve determined how long we need for all tasks, we create a board with all the tasks listed, and the team gets to work.

Poker Planning

Daily Scrum Meetings

Each day, our team gets together and our “Scrum Master” asks three simple questions:

  • What did you do today?
  • What are you going to do tomorrow?
  • Is there anything that’s blocking you?

It takes about fifteen minutes, gets everybody up to speed with what’s going on and the boards are updated constantly with the time it actually took to complete the tasks. Potential blockers bubble up and are resolved faster. The “product owner” can see the progress of the sprint easily by looking at the graphs the Scrum tool offers. In time, the estimates become more accurate, and planning a project and estimating time for delivery becomes much easier.

To accomplish Scrum, we hired Rene, another big expert who works closely with our team. He’s guiding everyone through this new methodology and is paying close attention to what works and what doesn’t.

SCRUM

The End Of The Sprint

After two weeks of intense development during the sprint, the team is ready to present their work to the team and ask for feedback or suggestions. The product “stakeholder” (that’s me!) gets to see all the exciting new stuff and give it a nod of approval so that the team can move on to the next sprint.

Scrum methodology has really helped us optimize our development process. It creates a much stronger team that works well together even in a mostly virtual environment.

Ready? Set! Go!

All these new processes and methodologies have already been implemented on JomSocial since our team meeting in Bali in November 2013. Now it’s just a matter of time before you, our customers, get to enjoy the fruits of our labor.

So stay tuned to JomSocial 3.2. It’s coming fast!

Join 180,000 websites creating Amazing communities

JomSocial is the most complete, easy-to-use addon that turns Joomla CMS into a
full -fledged, social networking site

TRY NOW BUY NOW