In my previous Blog Post ( Transititioning to Agile based UX design) I summarised the process of transitioning to an Agile based UX design. In this Blog post I will provide an overview on how the IT team working on the SCN project has integrated the UX/UI design into the development team. For more information about how SCN is transitioning to Agile please see the series of blogs Working Agile Towards the New SCN by our Scrum Master yaniv.bar
As a UX designer working within an Agile environment provides me with the opportunity to engage early and continuously in the development process with the entire team. In my projects this has typically involved communicating with the product owner and business stakeholders to initially identify the requirements and at the same time discussing requirements and design ideas with the development team and using their experience and input to help improve the final product. By recognising that everyone can provide valuable insight into the User Experience I have been able to expand my feedback channels and ultimately improve the delivered UX. This has meant engaging not only with the customers, end users and marketing teams but also with the developers, Architects, testers, scrum masters as well as the Product Owner and business throughout the entire project development.
Integrating UX into the sprint process
The designers at UX Pin suggest that ensuring a good UX implementation requires a "UX gatekeeper" within the development team. The gatekeeper is a member of the development team (ideally a front end developer) with a good sense of design who can help insure the UX/UI implementation is carried out as required but who can also challenge UX decisions suggesting better or more practical solutions. My role within the IT Social Platform encompasses this role as well as UX design, except that I am a designer with a basic understanding of front end development. For some projects I am responsible for defining the UX/UI liaising with business and the product owner to define appropriate solutions. For others the UX is defined by a design team working with marketing and business stakeholders. For these projects my role is to liaise with the design team as the UX gatekeeper, providing input and managing the implementation of the final UX designs. I also tend to be involved in the CSS and basic UI front end development projects. I am no developer so I tend to leave the more serious development task to the professionals. For such implementations we tend to work jointly with the developers who implement the backend and core functionality. They push the changes to our repository and I pull their changes and then adjust the UI as required.
When there are specific UX/UI tasks to resolve they are first defined in a ticket outlining the expectations and requirements. The UX/UI solution is typically defined one or 2 sprints ahead of the actual implementation by the development team. Requirements are outlined by the product owner (Michael Braun) and the Business Contact (Gabriella Gyoergy) . They identify the overall goal and expectations for the required feature/functionality. Typically one sprint is defined for the definition of the UX design solution. During the design phase the proposed solutions are discussed with the both the Product owner and the development team during the sprint. This is an important aspect of the design process as this allows the developers to provide feedback on the design solution before they are required to implement it. This feedback has proven to be invaluable as the development team often provides suggestions and insights that further improve the final design solution. This also allows me to identify any technical limitations and/or to be able to define solutions that take advantage of technical skills within the team.
Working with remote teams.
The primary challenges faced in moving to agile based UX has been related to communication. Agile tends to work best in co-located environments where team members, the Product owner and stakeholders can easily and quickly communicate with each other to ask questions, resolve issues and clarify design and technical requirements. Having worked is such environment I have found it extremely beneficial to be able to walk over to a developers table to discuss ideas and implementation strategies.
Unfortunately in enterprise environments this is not always possible. The nature of the modern enterprise means our team operates across several time zones. This of course makes it a challenge to maintain efficient communication channels and does impact on the ability to quickly and effectively discuss UI issues and implementations. Regular daily's help this to a certain extent as does weekly team info sessions. However certainly the casual and quick response of sitting in a coffee corner with a developer is missing. To help mitigate this it is even more important to maintain open discussions with the dev team. While we luckily have a very open and communicative team of developers, the openness has not developed on it's own. While all members need to participate in ensuring good communication, within Agile and certainly within the SCN team it is largely facilitated by both the Scrum master and Product owner as well as the head architect. The Scrum master ( in SCN it is Yaniv Bar) is instrumental in insuring good communication amongst the team. Equally the Product Owner ( Michael Braun) helps encourage open communication by listening to the input from developers and myself and communicating this input the Business and other Stakeholders. Their work in this area makes it significantly easier for me as the UX designer to communicate with the team. It is of course important a UX designer to be open with the development team and to understand the value they can contribute not just technically but also in terms of functionality and the overall User Experience.
Coding the UX
A further contribution to embedding UX into the dev team occurs when UX designers take a hand in producing UI Code and contributing to the code base. As part of this we are increasingly trying to make the UX definition an integral part of the development process using a UX/UI framework which acts as the design guidelines as well as front end coding guidelines.
I will be discussing this further in my follow up blog post: Using a CSS Framework for defining the UX