Dev Shop Cost-Aware Model
Working with clients to develop software product strategies and solution paths
Below is a guideline for how software product development consultancies, e.g., services provided by development shops and some venture (startup) studios, can stay aligned and maintain expectations when working with clients and partners.
Discovery Process for New Clients: Start with a 30-minute discovery call to understand the intent of the client's needs and land on an opportunity frame. If the motivation or context and desired outcome are unclear and tightly defined at this point, demand-side customer research with your client’s customers can be offered before supply-side shaping begins. If the engagement makes sense, it is followed by a two-week paid discovery project, including a two-hour video call at the start, to explore and summarize a possible project scope.
Shaping and Pitching Projects: During these two weeks, the company roughly shapes potential projects and presents a few paths to the client as pitches. These pitches define the problem, potential approaches, and the scope of the work. Clients are allowed to select only one project at a time.
Fixed Time, Variable Scope: Projects are time-boxed (sell 2, 4, or 6-week batches) with variable scope. This approach helps manage expectations and deliver some version of the selected pitch within the set timeframe.
Negotiation and Client Involvement: The process involves negotiation with the client regarding the project scope, priorities, and resource allocation. This approach puts the client in the driver's seat, making them an active participant in the project planning and execution.
Upfront Payment: After selecting a solution path for the project and integrating various viewpoints, clients pay upfront for the entire project build. This payment model aligns expectations and commits resources effectively.
Documentation and Contractual Clarity: All project details, including scope and intent to address, are documented and included as an addendum to the contract, ensuring clarity and agreement on what is to be delivered and how.
Handling Reactive Work: Establish an intake system to manage reactive work (like bug fixes) separately from the planned feature work. This system involves prioritizing and scheduling tasks based on urgency and available capacity.
Design and Development Approach: The focus is on functionality first with design elements being refined towards the end of the budgeted development cycle. Use tools like Tailwind, SwiftUI, Propshaft, etc. for efficient and flexible design implementation, and then tools like Figma for refinement (or to perform a targeted design spike).
Incremental Development and Client Feedback: The process is two-way, with regular check-ins and synchronous updates to the client each week and asynchronous communication as needed throughout the week. This approach allows for adjustments based on client feedback and enables them to influence trade-offs (scope hammering).
Monthly Maintenance Subscription: Offer a 20-hour monthly maintenance package for ongoing support and minor updates, billed automatically at the start of each month.
The diagram below is the activity network that shows the high-level process described in this dev shop guideline model. Read more about the tools we use that live inside of it here.



