Blog Posts

AngularJS - End-to-end testing with Protractor

We use AngularJS here at Liip, and as developers concerned with the quality of our work, we employ a multitude of tools and patterns to ensure that everything works as expected. In short, we test our software.

> Read more
Related Entries:
- Webnesday St. Gallen
- Why I don't use the javascript "new" keyword
- One day with NodeJS
- Semantic web meets frontend-awesomeness
- Introducing the application cache

Comments [0]

New Relic extension for HHVM updated to latest version

Since I first published my New Relic extension for HHVM, I didn't do much and we stayed on that HHVM version (3.1). A lot changed in HHVM, which was one of the reasons I didn't do much: Too many changes in there, but it was for the good.

> Read more
Related Entries:
- HHVM and New Relic
- My HHVM talk slides from yesterday's Webtuesday
- Of HHVM, Hack and the future of PHP
- Collecting performance data with varnish and statsd
- HHVM with Symfony 2 looks amazing

Comments [0]

Collaboration Over Contracts

For many businesses, the web has become a platform of strategic value. Their web-based services are under constant development, so they can cater for the changing needs and requirements of customers, partners and other stake holders. It is their constant learning and improving that sets these organisations apart from the competition.

> Read more

Comments [3]

Using a powerful and full-featured search engine on mobile platforms

When Xamarin meets Lucene...

Introduction

> Read more
Related Entries:
- Ecostar Elastica/FOQElasticaBundle
- Why a project switched from Google Search Appliance to Zend_Lucene
- Making a singlepage web application
- webOS Hackday at Liip
- Mobile Safari on iOS 4.2 supports WebSockets

Comments [4]

On the Migros API - Core principles and challenges

At Liip, we develop an API that provides product information and other data for Migros, the biggest retailer in Switzerland. Let us explain the core principles and challenges we had and how we solved them (or not yet).

> Read more
Related Entries:
- Reverse proxy cache invalidation service
- Discussions and Pizza at PHPDay Italy
- HHVM with Symfony 2 looks amazing
- RESTing with Symfony2
- How to preload ACL in order to get good performances

Comments [1]

Swisscom open-sources CleanerVersion

An interesting Django package was recently open-sourced by Swisscom. Manuel Jeckelmann wrote an interesting article about how the process of open-sourcing this worked at Swisscom. In the context of work on a security data warehouse at Swisscom, Liip has also worked on developing this package. I'll briefly describe here what's special about this package and how it can be used.

> Read more
Related Entries:
- Mezzanine CMS hackday

Comments [0]

Improving the User Experience of the Symfony CMF Backend

Contrary to frontend experience, CMS backend experience is rarely adapted to the needs and tasks of its real users: the few people who publish and administrate the site. Standard backend themes often remain untouched after installation. The most common adaptations are the addition of menus and shortcuts, often due to addition of functionalities to the CMS.

We (David Buchmann and Benoit Pointet) spent some time to look into the backend we have for the liip.ch website, built with the Symfony CMF. We ran user testing sessions to collect our website’s editors painpoints, a community survey to collect the pain points of other CMF users, then did a lot of small tweaks both to the public bundles and in liip.ch specific code, and identified and documented improvements that needed more development work.

For a user experience designer, improving a CMS backend experience is like walking a thin and chaotic path, circled by doubt and criticism. Users and contexts? all possible. Luckily, a culture of the backend has established and evolved, which now establishes a rich base of conventions, patterns and best practices. The latest trends are represented in the concepts of the latest Typo3 and Drupal8 backends.

Working on the editor experience for the Symfony CMF has however a different dimension than the latter CMSs: The CMF is a toolbox from which one can build a custom CMS. Each bundle it is composed of potentially adds something to the backend. On the other hand, the CMF being a toolbox, it is not difficult to tweak the behaviour of any backend element to optimally fit for the requirements.

We decided to follow the approach of beginning with surface improvements. On the positive side, we found:

  • The basic interaction is good, as the interface is not too cluttered and the navigation by content type leads to quickly find the content to edit.
  • Using the document path in the edit URL gives an easy indication of context to the power user.
  • We have ckeditor enabled, but allow to switch to the HTML source for power users.
  • The interface makes it hard to do fatal mistakes like accidentally deleting a document.

After noting these positive findings, we improved and uniformized the backend:

  • For every admin list, we checked what columns the list should have and the ideal order of those lists. A very small and easy step, but with great impact for the user.
  • Checked the admin breadcrumb and ensured a useful name is displayed for each type of content.
  • Went over the groupings of the admins and made sure they semantically make sense. We moved those that are normally not used directly into an “Advanced” group. This is visible in the right column on the dashboard, and in the top menu dropdowns.
  • Customized the design of the top toolbar to make the user feel more at home.
  • Added a link to the dashboard and another one to the homepage to allow easier navigation.

The old backend looked like this:

After the cleanup, it looks like this:

Before further investing time into more complicated development, we sent a survey to the CMF community to tell us what they do and what their pain points are. We were positively surprised by the feedbacks we got. The appreciations often hinted at the simplicity of CMF-based backends: Only the needed features are there. This helps to avoid an overloaded user interface. The survey results report is online on the Symfony CMF website.

We then went through the list of issues from the survey and that we noted during the analysis of the liip.ch backend. We identified some more quick fixes that we handled right away. For the rest we created issues on github so that people are aware of them and might work on it. See a summary of those issues at the end of this blogpost.

Learnings

  • Small efforts can have a lot of impact on the usability of the backend.
  • It turned out to be very efficient to have a developer and a UX expert pair on this. We did a lot of small changes right there on the fly, had instant feedback and instant improvements with no communications overhead.
  • There is some effort needed for further admin UX improvements with Sonata Admin and the Symfony CMF.
> Read more
Related Entries:
- Updating old Symfony2 CMF projects
- Semantic web meets frontend-awesomeness
- What Liip did after winning the IKS semantics UX contest
- Symfony CMF hackday october 22nd in Cologne
- A frontend editor for Symfony2 CMF with the help of VIE

Comments [3]

Happy birthday Ada Lovelace

On the 10th of December 1815, that is 199 years ago, Augusta Ada Byron, Countess of Lovelace, was born. She is more commonly known just as “Ada Lovelace”. She is often seen as the founder of computer science and as the first programmer in the world.

Her upbringing and the way she got into computer science is quite amazing considering the time she lived in. Her mother supported her and brought her up as a scientist, logician and mathematician. Ada loved everything that had to do with machines from a young age.

Mary Sommerville was Ada’s mentor who introduced her to Charles Babbage. Babbage had made plans for a very complicated machine called the “Analytical Engine”. Those plans aligned very well with Ada's interests and she quickly understood Charles Babbage’s plans. In 1842 she was asked to translate and expand an article written by Luigi Menabrea about the machine because of her extensive knowledge of the subject.

The article she wrote came in at over three times the length of the original and sketched out examples and programs for the machine. The first computer programmer was born. Babbage and everyone else was very impressed by her skill. It is for this skill and her curiosity that Ada Lovelace is the proud name of one of our meeting rooms here at Liip.

There is a lot more to Ada Lovelace, and the Wikipedia article has a lot of good knowledge if you are curious to read more about her: http://en.wikipedia.org/wiki/Ada_Lovelace

What I take out of this story is that Ada had mentors and friends and supportive parents helping her become as strong as she did. If you are looking for a mentor, or would like to help raise the next Ada http://phpmentoring.org is really cool!

Happy birthday Ada Lovelace!

> Read more

Comments [1]

Make robots more human – LISTEN14

Last week, four Liipers joined a crowd of customer experience practitioners for the LISTEN14 conference at the GDI near Zurich.

> Read more

Comments [1]

FullFrontal 2014: A great JavaScript Conference!

Last week I was at FullFrontal 2014 in Brighton, a single day conference for front-end developers. Here is some interesting stuff from the talks:

> Read more
Related Entries:
- webOS Hackday at Liip
- Why I don't use the javascript "new" keyword
- Webnesday St. Gallen
- One day with NodeJS
- Semantic web meets frontend-awesomeness

Comments [1]

Next1-10/1160