Green River uses a modified version of the "agile" project management approach. Traditional agile methodologies take an incremental, iterative approach to software development, and have proven valuable by prioritizing collaboration between programmers and clients for collective decision-making. This creates a profound level of transparency and client empowerment throughout the project's progress and mitigates risk by releasing software in short cycles. Despite its advantages and popularity, agile is not without weaknesses. Taken to an extreme, it can enable a loose product definition, expensive iterative coding (especially around challenges that could have been foreseen), and a lack of focus on overall project budget.
Green River mitigates the looseness of agile while honoring its creative and flexible spirit. We meet frequently—in person or online—to revisit short-term goals, ensure the project remains on budget and on time, and supporting ongoing refinement of specifications.
We begin the software design process by reviewing and refining project specifications—using words and sketches to nail down the details and discuss major cost drivers. We also maintain a functional ‘staging’ version of the application where we deploy software updates for client review.
Throughout the entire process, we track progress in project management software (Pivotal Tracker), and a code repository (GitHub) is available for everyone involved in the project. Green River staff enter all work in time management software (Harvest) so detailed time reports are always available to clients. All of this work allows us to provide: