We, at DharanaSoft, are extremely passionate about building high quality software. We have a rabid focus on simplicity and strongly believe that simple software is better software.

Our approach

Over the course of years, we have learnt from our experience as well as the experience of the software development community. We have identified a few key principles that allow us to deliver software with consistently high quality and within budget.

Agile

Building software is an intellectually challenging activity. Much like solving a puzzle or playing a game of chess. However, the industry has seen catastrophic failures when the task of developing software has been encumbered by unnecessary processes. We adopt agile and more specifically Scrum as it is the only way to build most software. As Eric Raymond put it, given enough eye balls, all bugs are shallow. We have seen a tremendous productivity increase while pair programming. We increase the set of eyeballs by releasing early and releasing often. We provide a working version of the software on a staging server every sprint. This enables us to keep the feedback loop tight and reduce uncertainties and effectively evolve the software as time goes by. Often times, the software that is being built will need to undergo changes in response to changing business needs. The difference between Agile practices like Scrum over earlier practices is that it not only factors in such uncertainties, but welcomes them to create a solution that is the best fit to your business needs.

However, this also means that you the client will have to be more involved with us in building a solution. This would help us function as a single healthy team to achieve a common goal.

Craftsmanship

Building software is an extremely intrinsic activity. Unfortunately, most project management techniques currently practiced and taught have been used to optimize assembly line production. Software development is a completely different kind of endeavor. We see software development as a craft. Like any other craft, a software developer's calibre is a function of his skill in using the tools he has access to. The efficacy of external management is questionable in such a scenario. We, at DharanaSoft realize it and hence practice software development as a craft. Each one of us is not a resource to be optimized on, rather a craftsman who deeply cares for his work.

Tools

A skilled craftsman is one who can wield multiple tools choosing the right tool for the right job. We evaluate the problem and suggest/implement the most appropriate architecture balancing the business and the technical needs. This is only possible as we have a wide range of experience across multiple technologies.