HT Process

HT defines its best practices within the construct of agile software development. The Internet is full of information on this topic so we won’t go into great detail. Here is a short description and an explanation of our specific agile choices.

  • Close collaboration with the client/product owner;
  • Short work iterations of one to four weeks, each more or less a complete project;
  • Potentially releasable increments of function resulting from each iteration.

In particular we like that close collaboration and short iterations eliminate the need for complicated contractual risk allocation and change control procedures. Less paperwork; greater productivity.

The Scrum Process Defined

We chose Scrum for process facilitation (aka project management) and wrap it around several agile development techniques. Scrum has gained such wide acceptance that it is now used by software giants Google and Microsoft, as well as thousands of smaller organizations.

Scrum – named after the rugby scrum – is often depicted as follows:

Scrum Process Defined

Scrum Process Defined

The Product Backlog is a list of features, frequently shifting in priority, needed in the product. The Product Owner and Team select a set of features to which they commit the Sprint Backlog for the next iteration. During that iteration, the Team meets every day to identify:

  • What they accomplished yesterday
  • What they intend to accomplish today
  • What obstacles might impede this work

The ‘Scrum Master’ ensures that identified obstacles are removed. At the end of the Sprint the process begins again. Bugs become backlog items, prioritized along with new function.

Agile Development Practices

At HT we use two core agile development practices to quickly deliver incremental business value.

  • We test continuously: By using a coding technique called test-driven development(TDD), HT have been able to keep a track on all the failing test. This has proven to be extremely cost effective.
  • We build early and often: Supported by the state of the art version control and continuous integration, HT builds a complete product daily or even more frequently.

The combination produces very low-defect code. And we all know that finding and fixing a bug early is exponentially less expensive than the ‘code and fix’ technique.

Testing Continuously

HT uses a coding technique called test-driven development (TDD) within a unit testing framework . In TDD a developer writes a failing test and then writes and refactors code until it passes the test. TDD does not replace traditional testing; rather, it defines a proven way to perform effective unit testing and, as a bonus, the tests form much of the design of the product. Though it may sound more time-consuming, it has been proven to be extremely cost-effective. We can include QA in any Scrum team to also perform functional testing.

Building Early – Build Often

HT builds your complete product daily or even more frequently. This is supported by state of the art version control and continuous integration. End result—you get clean code to test and use early and often. There are a many repository and integration tools available. Generally we use Subversion and Perforce but are comfortable with most of the other choices. Depending on how our relationship is structured, we can host development on our US-based servers or you can choose to make your own hosting arrangements.

Close Collaboration

Ok, we admit it. Collaboration can be tough when separated by half a world. So we’ve chosen communications tools and protocols that promote dialog and information sharing while minimizing undue documentation. Our goal is to have ‘just enough’ written down so that we’ all always on the same page.

ethical outsourcing