COBRA Softwares Pte Ltd gives high importance to the methods and processes in engaging with a customer for any software development. The approach we adapt is key to the success. Outsourcing is a key decision that any organization will take and should result in a long standing partnership. Identifying a right partner not only requires assessing the skill levels, competency, past experience, location, etc but also to identify the right engagement model. The objective of any engagement model would be to provide a virtual team while adjusting the level of commitment, level of control, investment required (both time and money) and the cost savings generated through offshore economics to optimum levels for the business.
Since every organization we engage with have unique requirements, we customize our engagement models as per their need to optimally deliver our services. Based on our years of experience we have defined engagement models that typically fit most organizations. However, we are quite flexible to modify or adapt to any new model that is beneficial to the client. Our ultimate goal is have clients see us as a virtual team with same level of commitment and control while deriving the benefits of offshore cost advantage.Apart from engagement model it is also important that the potential customers look at our development processes, the technology and tools expertise we have and also learn how their existing requirements can be aligned with this. This is an attempt to show case what we have, but this can be refined during the on boarding of the engagement.
We typically follow agile software development methodology with continuous integration using process workbench. However, we are flexible and will be able to adapt to any process as per client preference.
Key Points of our development methodology
Following diagram outlines our agile development methodology at a high level. As you can see the entire project is split into iterations or referred to as sprints. Each sprint will be typically of 6 to 8 weeks duration. At the end of the iteration tangible working software is provided to the client. Client can assess the progress and also get a confidence that the project is progressing in right direction.
We recommend agile development because of following advantages.
- Our highest priority is to deliver software early in the cycle in an iterative manner and on continuous basis. This allows the product owners to see progress, mitigate risks and change course if not progressing in right direction. Essentially, Project priorities are re-evaluated on a continuing basis in cycles of a week, a month or longer
- Accommodate changing requirements. Agile processes inherently allows managing changes and include in iterative deliverables
- Define sprints with set of stories such that working software can be delivered frequently ranging from couple weeks to month or two.
- Business people and developers work together daily throughout the project. This will help in resolving business unknowns, feature specification issues, business rules, etc in a quick and efficient manner.
- Working software will be the primary measure of progress. Therefore, issues related to deliverables can be identified early in the project.
- We will use combination of SCRUM and extreme programming
- There will be continuous attention to technical excellence and good design. Enables testing of the product in components
- Face-to-face daily standup meeting among development team with onsite team on phone will help convey information effectively
With more than a decade of experience, we have realized that there are three key aspects about any successful team that differentiates from others.
- Domain Knowledge – One of the aspects of developing a right business application is to understand the business problem and the customer’s pain areas properly. The team should get good insight into the business process, the current short comings and pitfalls, the interfaces to different systems, dataflow, etc. It is impossible to get this understanding without having people with proper domain knowledge. We have in-house domain experts to do the business analysis.
- Technology Skills – Just understanding the business domain and the intricacies are not enough to realize a good IT solution. The team should have people with good technical skills. The Technical resources should know how to convert the business problem into software solution. They should be aware of the latest evolution in technology and be savvy to apply the right technology to the business problem. The final software solution should only provide a better working environment which is productive, profitable, easy and intuitive. We have pool of certified experts in every technology domain we work in who have deep understanding of the technology evolution and expertise is applying the right technology.
- Approach – Our approach to application is derived by the Engagement model and the development process. Our Engagement model is flexible and proven. It only realizes an extended team for our clients and not an outsourcing vendor. The other key aspect for outsourced application development is the development process and the approach. Over the years we have evolved a process which is a mix of traditional waterfall model and the today’s agile development. This home grown development process gives immense comfort to our clients from day one and enables them to focus on their core competency. The inherent feature of the process is to give a stable build in frequent intervals enabling clients to assess the project progress through working software. The initial deliverables of the project are made early in the life cycle for clients to ensure that it is progressing in right direction.
Open Source and Other tools