The Cambria Way
Cambria builds custom-tailored solutions using ingenuity and a distinctly humanized approach. Something we like to call HumanGenuity®. What better way for us to demonstrate how we put this into practice than by engaging in a challenge to develop a human-centered prototype while displaying our agile approach!
Our Agile Human-Centered Approach
We created a user experience that was intuitive to the needs of actual foster parents and case workers. We started with discovery that included interviews, research, and conducted usability testing continuously with each iteration. With this collective knowledge, we developed personas to further define and personalize the prototype's core characteristics.
Our cross-functional team met face-to-face in conference rooms, had break out meetings, and collaborated daily to develop a prototype that exemplifies not only our technical and agile skills but the human-centered design principles.
We started developing our first user story within a couple of days. We learned a lot in the first sprint and never stopped learning, iterating, and adapting. We tested each core feature and made adjustments based on raised issues and feedback from our regular sprint retrospectives. From fixing bugs and issues to tweaking wireframes and visual design to adjusting the software stack, every aspect of each lifecycle was open to adjustments to ensure the prototype functioned and responded the way our users needed it to.
U.S. Digital Services Playbook
We followed the Digital Services Playbook and created a document describing how we used the plays.
Our executive team met and assigned Dhiraj and gave him authority to lead the prototype development and to ensure that we deliver a quality product to OSI. Dhiraj is a certified Professional Scrum Master and he also served as the Agile Coach for the team. [Our Team]
Dhiraj enlisted Anand, a Cambria executive, to help him crowdsource a multi-disciplinary team. Anand reached out to all Cambrianites via an email and they responded. The team assembled represented diverse backgrounds. Based on the experience, skills, and interests, the team quickly organized itself. Individuals aligned themselves to relevant roles. [Crowdsourcing] [Our Team]
We determined that the best product could only be developed by knowing, empathizing with, and understanding the user. We had a discovery/user interaction meeting with four users. One of our users is a subject matter expert who also has personal experience with the foster care system. [User Engagement] [Foster Parent Persona] [Case Worker Persona] [Our User Stories]
In developing this prototype, we utilized several human-centered design techniques: (1) user stories, (2) personas, (3) user interviews, (4) rapid prototyping using wireframes, (5) screen design sketches, and (6) usability testing. [Our User Stories] [Foster Parent Persona] [Case Worker Persona] [Our Human Centered Design] [Human Centered Design Artifacts] [Usability Testing]
We developed our style guide keeping in mind its significant impact on the way users perceive and feel about their interactive experience and the brand itself. We prioritized the following objectives: the use of inspirational pictures, friendly and empathetic tone, persona-based branding, being intuitive and relevant, conversational nature, and presentation of the Cambria brand. [Style Guide] [Style Guide Process]
Our Usability testing focused on understanding the users, their needs, and what they value. Our representative users became our testers. Utilizing a variety of devices, they tested across all sprints. Based on their feedback, we noted enhancements as issues for every sprint, and used the information collected to evaluate the usability of the application, and recommended improvements with each successive sprint. [Our Sprints] [Issues] [Usability Testing] [User Feedback]
We conducted six sprints, each sprint informing the subsequent. Each sprint cycle began with a sprint planning meeting and ended with a sprint review and sprint retrospective meetings. We ran two-day sprints and held daily scrums to review the last 24 hours, the next 24 hours, and any impediments that the team might have had. The team started slow but soon picked up velocity and finished most of the development early with the last couple of sprints planned for addressing prioritized enhancements and issues. [Our Agile Process] [Our Agile Techniques]
This prototype works on multiple devices including desktops, laptops, android and iOS phones and tablets. We conducted usability testing on various devices to ensure its ease of use and responsive design. [Responsive-Design]
We built our solution using modern open-source tools that facilitate collaboration between members of a cross-disciplinary team, as well as rapid prototyping and iteration. We used several open source technologies such as Flask, SQLite, PostgreSQL, Bootstrap, Pytest, and TravisCI. [Our Technology Stack]
We used Heroku as our production PaaS provider. [Our PaaS Platform]
We used Pytest for unit testing as it ensures logic is working as expected and regressions do not creep in. For functional tests, we used Webtest in order to simulate real user interactions with the website, which allowed us to incorporate testing feedback reducing the burden on the test team. [Automated Test Results]
We chose TravisCI for continuous integration, which enabled us to run tests in isolated container environments and deploy to Heroku all with a single 'git push' command. [Continuous Integration]
Git allowed us to share and collaborate on code and assets, while GitHub hosts our git repository and has collaboration and sprint/issue tracking features.
We used Librato for continuous monitoring, integrating it with Heroku to provide detailed information about the application’s performance and system resources. We added LogEntries to provide real-time logging, aggregated live-tail search and context views, and the ability to search events as they occur. [Continuous Monitoring]
We utilized Heroku's "Dynos” for containerization, a virtualization technology that allows multiple isolated operating system containers to be run on a shared host. [Web Dyno Container]