At Rietta, we believe in delivering high-value results early and often, in a proven feedback-driven process. We deliver working software incrementally in order to enable your project’s course to change in response to the best available information at each stage.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
1. Vision & strategy
Every new project starts out with a high-level product vision discussion, where a senior developer will collaborate with you to understand your project requirements and goals. This meeting is best in person, but when that is not possible it can be conducted via web conference. We aim to confirm the technical and market viability of a given product before bigger investments are at stake.
2. User stories, Wireframes,
The next step is an intensive two-day workshop to kick off the project development cycle with a clear understanding between the developers and your business team.
Doing this in-person with the client at the beginning of each project helps ensure that we have a shared vision of the project, but when that is not possible it can be conducted via web conference.
During the workshop, our developer team will work with your team to document the design goals of the system and write the first draft of the user stories that will be distributed into the weekly iterations for the development team. We normally have enough specific requirements from this workshop to begin implementing a rudimentary version of a usable software product.
If you want to prepare with a deeper understanding of user stories and estimation read Advantages of User Stories for Requirements (2004) and Planning Poker, both by Mike Cohn.
3. Implement minimum viable product
From this initial vision, we use test-driven development to build the simplest thing that will work. This allows us to put a working proof of concept product into the customer’s hands for feedback in the shortest feasible timeline.
In some cases, our goal is a minimum viable product, or MVP, in order to reach end users and gather critical feedback as early in the project timeline as possible. When a project needs demand, we first narrow the focus to a bare-bones technical proof-of-concept which can be tested and refined before an MVP is released to customers.
Projects with special security requirements often involve a technical proof of concept for the relevant custom security controls before fleshing out all of the essential user-facing features, which may be included into this stage to ensure project viability.
4. Iterate hand-in-hand with the customer
While the development process is underway, our development team works in regular short iterations to move your product from the technical prototype or minimum viable product to a complete product that users will love. At every step, user feedback is re-integrated into the project requirements so that the product can course-adjust towards the ideal product-market fit.
To build a complete project requires the work of the entire team and the product owner, who is the central point of project leadership on your team and is our team’s point of contact. The product owner represents the product’s stakeholders and is involved in multiple collaboration meetings with our team during the week and managing the weekly priority list for the current iteration.
Our team conducts a daily standup meeting to divide prioritized tasks and address anything that might be blocking progress. Product owners and stakeholders are often in attendance, and we often develop strong friendships with our clients through our continuous collaboration.
Our code changes are vetted through a process combining pair programming, code review before merging, and automated testing. Whenever possible, we integrate automated code security and quality checks into our toolkit to raise our minimum bar for quality to a high standard.
For more information about a typical development week, see our explanation of Iterative Development Activities.
5. Continued Development and maintenance in production
The early goals are all focused on getting an application into the hands of end-users as soon as possible. As soon as real users are involved, we can work with our clients and their customers to not only build the product the client planned, but also the experience that their end-users desire. We continue to provide access to our development calendar in sprints or incremental routine maintenance by the day. In this stage of growth, there is generally additional work to be done to establish sensible and sustainable operating procedures, policies for security and privacy, and software refinements to usability, performance, and more comprehensive security.
6. Continuous Support
Many of our clients with production applications don’t require our whole development team and project iteration cycle, but web applications require ongoing care just like cars require fuel and periodic fix-ups. We provide monthly plans to cover essential maintenance work and small improvements such as security fixes and migrating to the most current software dependency packages so that your journey goes as smoothly as possible.
To get started, or even just for a question, give us a call!
Give us a call at 770-623-2059 or toll free at (888) 250-6435, or via e-mail at our contact us page.