The quality of Deliverables of any process will depend on the quality of the process itself. This is the wisdom of the Quality movement of the 90s. To create the right product we need to adhere to the right process methodologies. We are firm believers in the Agile Software processes and leverage on that for working with our customers.
As organizations struggle to stay nimble in the face of an ever-changing marketplace that is disrupted constantly by incumbents as well as start-ups, getting to market fast becomes top priority. Engaging in long drawn-out design cycles risks paralysis by internal indecision as well as missed windows of market opportunity. In other words, by the time the company decides internally how the product should be designed, the needs of the marketplace have changed. Agile Processes which help Enterprise reduce their release cycles have gained adoption.
Agile Methodologies Are based on the ground reality that it is difficult to predict in advance which requirements or customer priorities will change. Formulating a long term strategy well in advance by analyzing the requirements, designing, implementing and testing them is not feasible under ever-changing business and technology landscape. Agile Processes instead adopt short term strategy and incremental approach to manage the unpredictability.
By delivering incremental software over short time periods and incrementally adapting to customer feedback, we ensure customer satisfaction consistently. To ensure continuous delivery of valuable software, we accept changing requirements and view this as increasing the customer’s competitive advantage. We restrict delivery schedules to short duration like every 2 or 3 weeks. We also facilitate business people to work closely with developers on a daily basis.
We follow Scrum principles and process patterns like backlog, Sprints and Scrum meetings in our agile process methodology. Backlog (prioritized list of requirements or features the provide business value to customer, items can be added at any time) Sprints (work units required to achieve one of the backlog items, must fit into a predefined time-box, affected backlog items frozen). Scrum meetings (15 minute daily meetings) addressing these questions: What was done since last meeting? What obstacles were encountered? What will be done by the next meeting? We also ensure there are frequent Demos of software increment to customer so that he can evaluate and give constant feedbacks
Getting the Client’s requirement right is starting right. We Work collaboratively to find out what customer wants to do through Requirements gathering and analysis modeling. Once requirements model is built, the modeling process does not stop but a collaborative analysis modeling continues with the customer throughout the lifecycle to ensure that critical changes are identified actively for ensuring business success. We derive the preliminary architecture from analysis model.
Architectural model must be realistic for the environment and must be understandable by developers. We adopt light-weight approach for effective modeling and documentation of the software systems.
Product-Market Fit and Feature Driven Development Philosophy
Achieving Product-Market Fit very rapidly can be achieved only through focusing on the end user’s needs and designing features which can be consumed at a Minimum Viable Model.
After successful market penetration, the product can be enhanced incremental by adding more and more features. Through our Agile Modeling approach, we ensure that we elicit ate the right features of a minimal viable product from the requirements models.
Feature is a client-valued function, can be implemented in two weeks or less. Features implementable within short duration help manage the problem and project complexity. Through ensuring continuous integration of software increments for each feature set.
Once a features list is extracted from domain model, the features are categorized and prioritized, and the features are further broken up into two week chunks.
The Project Schedule is planned by assessing the features based on priority, effort, technical issues, and schedule dependencies. The detailed design for each feature such as classes relevant to feature. The class and method prologs are then written along with preliminary design detail and a developer is assigned as owner for each class, who will be responsible for maintaining design document for his or her own work packages.
The development built is done by the class owner who translates design into source code and performs unit testing. The final integration performed by integration specialists. An integrated test is run and then the tested code is delivered to the customer.