More Effective Software Development

Our process has evolved to make the most of today's tool stacks, delivering what our clients need.

Quick launch

If you wait for every detail to be worked out, you are far behind the competition. At Oasis Digital, we can launch a project based on your vision. We'll figure out the details and implement the first pieces of that vision. Then you can "steer" the project over time to expand the vision, discover and meet detailed requirements, and reach reliable production deployment.

Leverage off-the-shelf pieces

We stand on the shoulders of giants; there isn't time to reinvent each wheel. We stay at the leading edge of our areas of practice, so that we can most effectively blend off-the-shelf code (commercial and open-source libraries, as our clients prefer) to maximize the results per line of application level code. This results in...

Increasing pace over time

Industrywide, growing projects tend to slow severely over time. We have found instead that our approach increases delivery pace over time as we further master the application problem domain, and span greater ranges of desired functionality with increasingly generic behind-the-scenes solutions.

First time quality

First time quality means that as each feature reaches completion, it already has a reasonably well thought out internal and external design, suitable to deploy and suitable to expand on in the future. To achieve this while using very current technologies, we iterate rapidly.

Flexibility

Our focus on crafted, quality code often means an application ends up even more flexible than its initial vision required. Yet at the same time, we ruthlessly apply the idea of "you aren't going to need it", to maximize the scope delivered. Flexible, production grade systems; not needless gold-plated systems.

Wideband communication

Our customers are often quite busy; to deliver the greatest transparency and understanding of application progress we use a combination of:

  • Email
  • In-person meetings
  • Conference calls
  • Online meetings, with screen sharing
  • Issue trackers
  • Status and demo videos

How we make it happen

Our agile development process borrows from many sources (including Scrum, Extreme Programming, and others), and adds our own distinct elements.

Agility

Agile is not a buzzword at Oasis Digital; indeed, we rarely say the word. Instead, we live agility:

  • Meeting the customer's needs by delivering working software regularly is our highest priority. We implement features and systems incrementally.
  • Our development is test intensive; some code is written test-first.
  • We work hard to discover the customer requirements before implementation, where possible. But:
  • We embrace change. Change is not the enemy, rather our ability to deal with new requirements effectively is a competitive advantage for our customers. We win customers away from change-averse organizations.
  • We check in working code frequently, and usually integrate our work on a daily basis.
  • We take internal and external quality seriously.
  • We write code with short, well named methods and classes.
  • We practice Pair Programming occassionally, to build a shared understanding of problems and solutions.
  • We follow coding standards, and help shape those standards.
  • We each learn about many parts of a project, and multiple projects, over time.

Compounding mastery

We have often been told that our mastery of tools is very impressive. This isn't an accident; it is core to how we deliver the benefits above. We relentlessly iterate and increase our mastery of our key development tools and stacks. Sometimes this happens behind the scenes, but in other cases it is very public, for example our Angular Boot Camp is both a product of, and a driver of, our mastery of Angular.

Rarely, reinvent the wheel

The conventional wisdom of "buy, don't build" is generally right. We counsel potential customers with that advice. However, our customers have often tried that approach and failed. To meet the most unusual needs, and to differentiate a product/project in the marketplace, reinventing one critical aspect of the needed software is sometimes the right move.

Start with small, skilled teams

Oasis Digital starts with a small team of experts per project. This both reduces financial waste, and ensures a foundation of quality. Then as projects grow, we carefully expand teams with additional skilled developers, to increase overall scope and pace.

People over process

Lastly, the process is critical but is inevitably secondary to the people. Our developers:

  • Communicate effectively with our customers... in person, via phone, and in writing.
  • Read and understand specifications, even when they are incomplete.
  • Ask questions where clarification is needed, but also make good, domain-based assumptions where appropriate.
  • Compare specs to running software, noting what is not yet implemented.
  • Keep track of what items of work need to be done; manage our work queue.
  • Write test cases (usually in code, sometimes in documents).
  • Work closely with other developers.
  • Take responsibility for making features and projects work.
  • Solve unanticipated problems in a resourceful manner.

Let's Discuss Your Project

Contact Oasis Digital