Articles

Creative Discipline in Software Development

Haiz Oppenheimer

“What is and what is not create each other.”

-Lao Tzu, Tao Te Ching

At Shiny Creek, we specialize in helping successful companies enter the digital space. We work with our clients to leverage their existing intellectual property, and launch industry leading software products. Becoming a tech company can be a bumpy road. The competitive edge often goes to companies that are able to rapidly iterate solutions, and respond quickly to customer feedback.

Given enough time and budget, skilled software developers can build as many features as you can cram into an app, often the detriment of the product. Achieving business goals depends on answering the questions of not just what can we build, but what should we build, and what should we not? In order to help our clients succeed, we introduce them to practical tools of collaboration, planning, and product discipline that match the Agile Software Development methodology.

The old school “waterfall” software development model was to scope out a large feature set  in advance and spends months building a new release before gathering significant customer feedback. All too often the end result  was large budgets sunk down the drain on features that didn’t line up with customer needs.

Agile Software Development guides us to shorten project cycles and iterate in response to real world feedback in order to build a better product, faster. Agile Development offers many wins over the waterfall model, but it requires constant discipline to keep a project on track. Responding to customer feedback is critical, but without a clear vision we can easily end up chasing new features instead of focusing on the core value of the product.

Along the way from MVP, through launch, and scaling of an application, successful companies must balance essentially competing priorities: speed of development vs budget constraints, richness of feature set vs simplicity of user experience, adding new features vs refining and improving what is there, etc.  

At Shiny Creek, we help our clients manage these healthy tensions and be constantly attuned to where the project is headed in order to make sure that our development cycles are aligned with the stage of the product. Sometimes that means embracing periods where we consciously sacrifice one priority in order to move another forward with greater speed.

Our priority is to help our customers achieve business goals, not just technical ones. That’s why we offer more than just technical services to our clients. We get down in the weeds of long range product planning, engage directly with end-users to gather feedback, and help our clients learn the complex skills of managing large scale software development projects without hitting too many bumps on the upward slope of the curve. The bottom line is this: we are determined to see our clients succeed, and that means offering more than just writing code.