Our Process for Custom Software Development
Enterprise-Level Practices with Midwest Practicality
Aptera has grown a sophisticated development practice over the past 15 years, but we’ve never lost sight of our goal to create a place where team members want to come to work and clients want to be a reference. We are enterprise-level thinkers, considering global strategy in every project we start. We are agile and willing to test and adopt new best practices in web, mobile, and software development. However, we also think practically, and that shows through our communication, processes, and methods of solving problems on complicated projects.
Aptera starts with a “why” approach to gathering requirements, ensuring that every deliverable we commit to has a clear line back to the purpose of a project. Establishing a clear vision for success means knowing how you’ll measure outcomes, so Aptera’s initial workshops with clients are aimed at establishing trackable, attainable, and impactful goals. We use these to ensure all following design, scope, and prioritization decisions match the intent of your business.
Once vision is established, Aptera documents the actions that users need to perform in your project. We document these requirements as user stories, which are brief descriptions that explain who needs to do something, what they need to do, and (most importantly) why they need to do it. User stories have the following benefits:
- Gathered quickly using business and end user input
- Written transparently so anyone can read and understand
- Keep the purpose of each requirement present to avoid scope creep
- Can be re-prioritized according to changing business needs
User stories are captured and documented through Aptera-led workshops and interviews to efficiently build a backlog of work that can be estimated to create budget and timeline constraints for the rest of the project.
UX Design, Prototyping, and Testing
Aptera’s team includes UX designers with expertise in not only crafting, but also testing design concepts to achieve user stories in both clear and visually appealing ways. We believe in working iteratively through design, creating simple prototypes as models in collaboration with our clients and testing designs on end users to gather feedback. As we get input, we build higher and higher fidelity prototypes, often allowing users to click through and experiment with an app or site before it is developed, testing theories about ease of use before investing heavily in code.
Every project requires some amount of architecture to determine what tools and technical strategies will be used to deliver the functionality described in user stories. Aptera can take lead in applying modern practices and cutting-edge technologies to the needs of any project. We are also comfortable reviewing and collaborating with our clients’ technical teams to ensure that we are considering the impact of our solution and technology on other components of their business infrastructure. Architecture is documented ahead of development, but is created in a modern flexible structure so that it can be adapted throughout the lifecycle of a longer project.
Aptera’s teams embrace agile development and many of its more popular practices in order to boost visibility, efficiency, collaboration, and value in our projects. The result is high-visibility and tons of hands-on control from our clients to affect vision, scope, and priority of the work we do. We work in sprints to deliver in small batches that keep the strain of testing low. We include our clients in every step of the process, from planning upcoming sprints right down to optional attendance at our daily standup meetings. In cases where our clients have a technical staff that will be assisting with deployment, support, or even development of our deliverables, we include them in our agile process to ensure they have insight into any decisions that impacts their effort.
Deployment and Testing
As part of our agile methodology, deployment and testing happen frequently throughout the development process. The work we complete from a code perspective is being continuously deployed to a development environment so that we identify any technical issues quickly. Then it can be tested by our in-house quality assurance engineers to ensure that the criteria of our user story requirements are met. That way, when the work reaches you, we’ve already identified any major bugs or potential misunderstandings.
Our teams utilize cloud infrastructure whenever possible to reduce the strain of creating environments, and automated deployments reduce support time to get new features and completed work in your hands. We also implement automated tests wherever applicable, so that key features can be immediately cleared after new code is delivered.
Launch and Support
When it comes time to release your app, website, or campaign to your end users, we’ll help you ensure that any potential risks related to launch are mitigated. Global strategy for infrastructure impact, performance with a large user base, or SEO implications of launching your site will be planned in advance to avoid missteps.
Once you have wider exposure to your project, we can also help handle feedback and prioritize new features or support concerns that arise. We offer various types of support to ensure you know who to call to get answers and can respond to changing needs in your business or market.
Communication is key on projects of all sizes. In the case of apps, websites, and campaigns that span long stretches of time and link to multiple systems, proper management of all affected parties can make or break success. That's why we assign dedicated project managers to each project we handle. They will bridge the gap between our developers, designers, and consultants and the rest of your team.
The project manager assigned to your project will initiate all project meetings, ensure that work is planned accordingly, and maintain a portal where we can share the following:
- Weekly written status updates
- Shared documents and examples
- Tracked tasks for each team
- Bug reporting and issue resolution
- Project schedule and milestones
Aptera understands the need to ensure quality when you launch an initiative and expose your end users, customers, or potential customers to the results. Standards are high in a world where exposure to technology is constant. Our technicians utilize an in-house lab to test across the spectrum of devices, operating systems, and browsers to ensure compatibility. We also test for adherence to ADA compliance and security standards.
At Aptera, quality exists beneath the surface as well, starting with the initial code written on a project and extending to automated testing practices. We employ the following techniques to ensure quality:
- Code-based, test-driven development
- User interface, scripted automated testing
- Cross-platform, manual device and browser testing
We also include client and end-user testers in our process and provide means of communicating feedback to ensure we respond to concerns in an organized and efficient manner.
BUDGET & TIMELINE
We know that budget and timeline can be frustratingly difficult to control on large development projects. Of course, some percentage of projects are small, predictable, and only require work that has been done many times in a repeatable fashion, but that percentage is very small. Here at Aptera, we work closely with our clients to ensure that the scope of your project won’t outrun your budget.
At the scale and level of customization or complexity that most of our projects occur, there are often uncertainties that can only be resolved through experimentation. Also, we fully expect that once work is being delivered to our clients, they’ll start to have great ideas they didn’t previously consider and want to make changes to scope. So how do we manage timeline and budget in an agile process that not only expects, but embraces change?
The answer is through flexible scope management. Before we even start design for a project, we use our experience to provide a high-level budget for the project. Then, after we get into a rhythm of defining work through user stories, designs, and architecture, we’ll review our understanding again and validate that budget.
As development occurs, we’ll report on a regular basis how the percentage of work completed compares to the percentage of budget used. All along the way, when new requests, new ideas, or changing requirements affect scope, we’ll work with you through our agile sprint process to tweak or re-prioritize requirements so that we deliver the highest value within your budget and timeline.
Flexibility doesn’t have to equal a never-ending budget; it works when you have a partner that understands your vision for success and will communicate openly about how to achieve within the means of your investment.