The Missing Pieces to Agile Development
At Platypi, we are rethinking the way we design and develop applications for the web and mobile devices. User demand for responsive websites has raised the bar for what we expect out of the sites we use on a regular basis. Responsive design has ushered in an era of the web where the mobile user must be at the forefront of the designer's mind.
Responsive design was created as a reaction to this user demand, but it only takes into account a small part of what makes a great application. It focuses solely on the screen size with no regard for the user or device context. Typically, responsive sites simply reorganize content sections to stack horizontally or vertically or hide sections all together depending on the amount of screen real estate available. While this certainly improves website usability on mobile devices, it misses the mark in providing contextual functionality across device contexts.
When designing an application, we need to be aware of two distinct contexts. The first is user context which is understanding the different types of users that will interact with your application. The second is device context which is knowing the types of devices that users will use to interact with your application.
In order to design a great application experience, we need to truly understand who our users are, the different types of users we have, and how those different types of users will interact with our application. This seems obvious, but rarely do we truly take the time to know our users before creating requirements and feeding them into our agile development process.
Typically, we take on the persona of the user (of which we rarely are) and assume that we can intelligently determine what that user's wants and needs are ourselves. This is the single greatest mistake in software development and is what leads to about ~65% of features rarely or never being used.
The first step in designing an application should be to admit to ourselves that we don't know our users as well as we think we do. Once we come to grips with this, we can take steps to get to know our users, understand what features will provide the most value to them, and develop applications that are designed specifically for each unique user type.
In order to get to know our users, we need to talk, interact, and observe them absent of our preconceived notions of what they should or shouldn’t be doing. When we observe users behaving unexpected, we can ask them why. Most of the time, users interact with the application the way they do in order to complete a job or task efficiently and effectively. These observations, responses, and interactions allow us to devise new patterns that reduce the complexities in performing the desired tasks.
Responsive design tries to account for device context by resizing content, but it doesn't focus on functionality. In order to build an application that performs across desktop, tablet and mobile, we need to account for the functions that are best suited for each scenario. It's about more than the content. It's about the function.
Through our user research, we can build functional scenarios for each device type. For instance, a user may use the desktop to batch load products into the application, the tablet to view KPIs about those products in a meeting, and the phone to scan in products. Each device context has it's own purpose and functionality all in the same application and allows the user to get the most out of each medium.
At Platypi, we believe that the key to success is proper research, planning and implementation. That is why we practice Proactive Design and Development – a process that provides businesses a clear roadmap for developing sophisticated mobile experiences across all devices. By integrating Proactive Design into our iterative development lifecycle, we're able to create application experiences that are tailored to our users individually in the context of what they are doing in that moment. And by integrating this process into our feedback loop, we're able to continually improve the application as new features and functionality are added.