Unicorn software development

Unicorn Series Overview

Headline: All the modern software development practices really do make significant business impact. This focuses on Agile Software Development.

Contents

Disclaimer: As usual, there is not information in this series that would be considered proprietary information for C&C Reservoirs.

This is the overview and index for a series on software development practices the team I’m leading has been using for the past several years. But let me set some context.

This is called the “Unicorn Series” because several people that saw our practices said, “You’re a unicorn!” This mythical creature

that is said to exist, but now one has ever really seen it. Sometimes when someone says that they mean, “I don’t believe you.” But since I was able to demonstrate these practices, it clearly meant, “Wow! People say this, but not one really does all this!” (Someone else’s words, not mine.)

The overall objective was to take a content delivery and analysis software system for C&C Reservoirs and make it easy so we could “cross the chasm” – make it easy to use and appeal to the majority of the market. The team was given the liberty to re-write the application from the ground up. Now DAKS™ is fast, easy to use, and high quality.

The key results are:

  • Better to use: In only 15 months we transitioned 100% of our customers from the previous software to DAKS.
  • Available: Using cloud technology the uptime for this year so far is 99.95%.
  • Quality: The current rate of customer reported bugs is about 1 bug per month.
  • Fast: The use of cloud computing to place the application near the user and other techniques leaving the impression for most that it is a desktop application rather than a web application. 

I started with key customer benefits which we all know are critical for business success. But there are other business benefits that aren’t customer facing. These help with costs and lead to the benefits above:

  • Unit Test Code Coverage: The code has greater than 90% coverage by unit tests.
  • Cloud Strategy: We don’t even own a server! We use Azure DevOps for our source control (Git), builds, and releases. And we use Azure for our deployments.
  • Continuous Deployment Builds: Each build runs all the unit tests, some web tests, and then deploys the build to a test site after every single check-in.
  • Mobile First: We started with a responsive application that would work on all devices from the first deployment.
  • Previews: We had 6 preview releases soliciting customer feedback before our first official release.
  • One Week Sprints: The team moves fast and is really ready to release on any day, but most certainly each week by the sprint meeting.
  • Technology Stack: We used the latest technologies. There are too many to mention here, but I’ll cover that in detail.
  • Automated Releases: When a release is kicked off all the databases are updated, each server around the globe is updated, and this is done with swapping slots to eliminate/minimize downtime.
  • Feature Focus: Each feature is hidden behind that feature and any modules can be created from a collection of features. This means that we can release the software with brand new features that customers don’t yet see.
  • Only Pull Request Branching: Due to the ability to construct features on the main branch and not release them there are no branches except Pull Request branches! And it has been that way for more than 9 years. Many teams have a “Release” branch and a dev branch.
  • No Dedicated Testing Team: We do test, but various users in the company put it through the paces. Due to the extensive automated testing we don’t need a dedicated team like many software development teams.
  • Focus on Usability: We continually look at the usability for each feature and the consistency of the conceptual model that allows the user to easily navigate DAKS IQ.
  • Virtual Team: We had team members in Houston, Denver, San Francisco, Seattle, and China. Use of Visual Studio Team Services (VSTS), Skype for Business, and Slack allowed us to work together very effectively.
  • Security: We focused on security from the beginning. We don’t even store passwords and all content is delivered over https.
  • One Team: There isn’t a maintenance or bug fix team. We all work on features and what few bugs there are. The person most capable of fixing the bug works on it, which means that for the most part, the person that wrote the bug fixes the bug.
  • Dogfooding: We use DAKS IQ internally to capture the data for each of our fields and reservoirs.

I’ll explore many of our team practices including those mentioned that allow us to achieve these results. Let me know what you find the most useful.

Cheers,

Karl


Posted

in

,

by

Comments

One response to “Unicorn Series Overview”

  1. […] post in the Unicorn Series focuses on having an effective Integrated Software Development […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.