Our Process

Scroll down to read about each step in our development process.

Discovery Phase

Project Discovery and Planning

Project Discovery and Planning

This phase starts with preparing a documentation for the technical requirements and goals. When documentation is prepared, we use agile estimating and planning to create general estimates. We share these with the client to give them a basic idea of our plan and the expected budget for the project. All work is divided into general phases, each containing many smaller tasks. The tasks are detailed in Jira, allowing us to easily track spent time on each task and on the project as a whole.

Our primary tool for coordinating agile "sprints," 10-day blocks of time in which every member of the team is given specific goals. Using Jira, we track time spent on hundreds of tasks for dozens of clients simultaneously, with each task being passed to the appropriate team member as it progresses toward completion. Notes and comments within the tasks facilitate collaboration. Charting and documentation tools that help us keep all documentation about the project in one place. Helps us to plan a general timeline for the client and keep a client informed when each phase starts and ends. A gamified estimation method that allows every involved member of the team to participate in time planning. By drawing from each team member's expertise, we can estimate more accurately and discuss potential challenges before any task is begun.

Detailed Research

Detailed Research

We get started by familiarizing ourselves with the client's business, their competitors, their current website and pain-points. A kick-off meeting with stakeholders helps us to understand the client's goals and business processes. Tools like Hotjar and Google Analytics give us data-driven insights to customize UX for the client's needs while maintaining best practices for the chosen platform.

With heatmaps and behavior recordings, Hotjar provides valuable clues about how users navigate the website. It tells us which areas are most interesting to visitors and which areas tend to be ignored. This helps us to make informed UX decisions for the new website. Google Analytics is an indespensible tool for getting to know your users. Our certified analytics experts examine its data to get to know the users of your store: Their demographics, interests, favorite sections and points of exit.

Design Phase

User Experience and Wireframes

User Experience and Wireframes

User experience is the first priority of an online storefront, so we focus a lot of attention on it. Functionality, informational structure, element positioning and navigation flow all come into play before any detailed design choices are made. The development of simple monochrome wireframes allows us to discuss UX ideas with the client and quickly modify the concepts.

Invision is a simple digital design platform that allows us to present wireframes and designs to a client. It is easy for a client to access it as only a generated link is needed to access the prototypes, and a client can easily leave comments directly on the prototypes. Sketch is a powerful vector graphics editor that we use for creating wireframes and user interface designs.

User Interface Design

User Interface Design

Once wireframes are approved by the client, their concepts are expanded into fully-detailed designs aligned with the client's brand and marketing goals. The discovery process culminates in an interactive presentation that simulates a user's journey through the website.

Invision's interactive storyboards provide the client with a simulation of a user's experience on the new website, from homepage to checkout. The powerful vector graphic tools in Sketch allow our designers to create detailed mockups of the website's final appearance. Photoshop is mainly used for photo editing, creating banners and other complex visuals.

Development Phase

Local Development Environment

Local Development Environment

We begin development by setting up a virtual environment for each of our contributing developers to use while building the website. These environments are very closely matched to the specs of the real website, with the important difference that they exist directly on the developer's computer. This allows for rapid development, without waiting for files to transfer back and forth between hosts.

All code is stored in Bitbucket cloud servers and has complete and comprehensive ACL setup to ensure all code is stored in case of disaster and is protected for authorized personnel. A complete record is made of every code update, allowing changes to be compared and rolled back throughout the development process. All of our developers are equipped with a comprehensive Docker set up for every project, with virtual servers that mimic the real website as closely as possible. Our Docker tooling provides the developers with secure access to seeded databases backups in Amazon S3, Blackfire for profiling, XDebug for debugging and other Magento development tools to ensure software development of the highest quality. BlackFire is a 3rd party service we use on all projects. It allows us to constantly monitor the low-level performance of the application. It ensures that all code is fully optimized. We also use this to test deployments and ensure they all meet specified thresholds for speed, functionality and performance. Packagist is a code package repository that works with Composer. These are tools that help our developers to manage code dependencies for complex websites, keeping everything clean and up-to-date.

Code Review

Code Review

Throughout the development process, every line of code is reviewed by both human and automated processes to ensure highest quality.

Every update to the website's code is manually reviewed by other members of the Shero development team to ensure that our standards are met. CR often serves as a valuable platform for determining best practices through collaborative review. Jenkins is used as our Continuous Integration Server. It runs all of the static analysis and integration testing to ensure there are no build errors. Every pull request and line of code goes via Jenkins and on specific branches, it handles automatic deployment and notifications. We use SpecBDD to ensure all of our code meets the standards that our clients expect. Using PHPSpec we can execute at a unit level the tests against our projects. Behat compliments our Agile / BDD process. By executing the examples / user stories we colaborativly write we can ensure that all features work and remain working.

Deploy to QA

Deploy to QA

Once code updates have passed automated and peer review, they are deployed to the QA (Quality Assessment) pipeline, where the Shero QA team tests the functionality with real-world scenarios. If the tests succeed, the update is prepared for client review. If not, the issues are documented and the task is returned to the development team for refinement.

New Relic is used to monitor performance for the entire application in real-time. It is installed at every point on the QA pipeline, where it scores application performance based on project benchmarks and the open "Apdex" standard. Capistrano is a tool for standardizing and streamlining deployments. It helps to ensure that deployments run smoothly according to best practices without wasting valuable development time, and it keeps a record of every deployment for rollback if necessary. BlackFire is a 3rd party service we use on all projects. It allows us to constantly monitor the low-level performance of the application. It ensures that all code is fully optimized. We also use this to test deployments and ensure they all meet specified thresholds for speed, functionality and performance. We want to keep our deployment of contains versioned and simple, Thats where Kubernetes works in our process. We can design the most complex solution and via configuration we can deploy and continue deploying using Blue-Green style deployments to any and all environments.

Deploy to UAT

Deploy to UAT

When code updates have passed the testing process and have been deployed to the UAT server, the client is notified that one or more project features are ready for testing. If for any reason the feature doesn't meet the client's requirements, a customer success manager helps to identify the issue and sends the update back to development for correction.

Once updates are deployed to the UAT (User Acceptance Testing) server, it is the client's turn to review the feature. With a rigorous testing process in place, we expect each update to meet or exceed the client's expectations---but if anything misses the mark, the customer success manager will help to clarify the issue for further development. Ghost Inspector is an automated testing tool that is programmed to simulate the human browsing experience. It helps to compensate for human error in QA by checking for broken links, form errors or checkout issues faster and more thoroughly than a human could.

Launch & Support

Go live

Go live

We identify key development windows for every project. When we are ready for work to be deployed to live, we start by creating a Release Plan document that is shared with the client. This document outlines what is being deployed, how we test success, how we handle rollbacks, who are the key personal contacts in case of emergency and any additional steps required during and after launch. This empowers everyone to have clear visibility and responsibility during deployments.

New Relic is used to monitor performance for the entire application in real-time. It is installed at every point on the QA pipeline, where it scores application performance based on project benchmarks and the open "Apdex" standard. Ghost Inspector is an automated testing tool that is programmed to simulate the human browsing experience. It helps to compensate for human error in QA by checking for broken links, form errors or checkout issues faster and more thoroughly than a human could. Shero uses Pingdom for 24/7 monitoring of your website's uptime and performance. Any anomolies are flagged and immediately reported to the Shero support team for investigation.

Maintenance and Improvements

Maintenance and Improvements

An online storefront is like a living thing; it requires constant care and maintenance. As part of our ongoing support packages, we monitor your store for uptime and performance issues, track analyitics to keep you informed about user experience, and provide proactive consultation services. Shero is passionate about helping to ensure the ongoing success of our clients.

Access to our team of Magento experts for text changes, bug fixes, 3rd party extension installations, graphical changes and consultation. Uptime monitoring complete with automatic support for when your site becomes unavailable. Analytics monitoring to ensure high-quality user experiences. Automatic security patching ensuring you are always protected against new vulnerabilities. Monitoring of server health and automated alerts for DDOS attacks. A Shero support package is more than just maintenance. We live and breathe eCommerce, and we're always on the lookout for solutions that will improve the performance and profitability of your store. From new technologies to UX enhancements, our team of experts is always ready to discuss how you can take your website to the next level.

What tools do we use daily?

Hover over red elements in our virtual office to learn about the tools we use every day.

Time Tracking

Jira Tempo is our primary tool for tracking time on projects. Each project is broken into tasks which are scheduled into 10-day Agile sprints. Jira helps to facilitate clear communication between Shero developers, project managers and clients.

Customer Support

Jira Service Desk is our ticket management tool for customer support. It allows seamless translation of support and maintenance tickets into tasks that can be assigned to our developers and tracked.

Shift Management

Rota Cloud is our shift management tool. With an international team in multiple timezones, Rota Cloud helps us to organize schedules that promote a great work-life balance for our crew while maintaining availability for our clients.

Secure Credentials

1Password is a best-in-class tool for securely managing passwords and login credentials. It helps us to ensure that client information remains safe and secure.

Scheduling

Google Calendar is used to schedule and coordinate meetings.

Communications

Slack is our primary tool for internal communication. Each project and initiative is assigned its own channel so that team members can share, plan and coordinate effectively. Slack's archiving capability helps to ensure that conversations can be referenced for future use. Google Meet is used for video conferencing between team members, and often with clients as well. It helps to facilitate stronger communication and productive brainstorming by allowing easy face-to-face conversations between people all over the world.

Documentation

Using Google Docs, the Shero team can develop in-depth documentation and collaborate on it real-time. As a widely-used tool, it also helps us to easily share documentation with clients. Google Sheets is our primary tool for developing estimates and project plans. Multiple team members can collaborate on a sheet simultaneously, and the results can be easily shared with clients for review. Google Drive is one of our main file storage solutions, allowing team members and clients to securely access documentation and assets from any location, using any kind of device.

Coordination

Standup Bot allows team members to quickly coordinate schedules and priorities at the beginning of each workday.

Birthdays

Birthday Bot keeps a record of each team member's special day.

Automate Quality Testing

Our custom SSL Expiery bot automatically checks our clients' websites for SSL certificates that are nearing their expiration date. This helps to ensure that all websites remain secure and trusted. Our custom Htaccess Police bot automatically checks our clients' development environments to make sure that they are secured with passwords to prevent public access.

Development Tools

PHP Storm is the powerful code editor used by our developers. It helps to ensure that each developer has the latest techniques at his or her disposal for maintaining Shero's rigorous coding standards. Git is the standard version tracking and code repository tool that we use to track updates during development and maintenance. Using Git ensures that every change is trackable, testable and, if necessary, reversable. The expert developers at Shero use terminal applications to execute tasks from the text-based command line. This is more efficient in many cases than using graphical applications, and also makes us look cooler.
Pronounced "Engine-X," Nginx is a server technology that we use to host highly optimized and secure websites. FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features (mostly) useful for heavy-loaded sites. MySQL is an open source relational database management system.