Our Processes can be summarized as Acquisition, Fulfilment and support


Be Creative

SOFTWARE DEVELOPMENT METHODOLOGY

Clients are made integral part of our team while executing the projects. This makes the audacious task of the software development and execution much simpler and easier, in tune with the client’s expectation. At I-Link, based on the situation and need of the project, we follow one of the following software development methodologies.

* Agile
* Extreme Programming

Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. Agile itself has never defined any specific methods to achieve this, but many have grown up as a result and have been recognized as being ‘Agile’.

THE AGILE MANIFESTO

Agile principles

The Agile Manifesto is based on twelve principles:
1.Customer satisfaction by early and continuous delivery of valuable software
2.Welcome changing requirements, even in late development
3.Working software is delivered frequently (weeks rather than months)
4.Close, daily cooperation between business people and developers
5.Projects are built around motivated individuals, who should be trusted
6.Face-to-face conversation is the best form of communication (co-location)
7.Working software is the principal measure of progress
8.Sustainable development, able to maintain a constant pace
9.Continuous attention to technical excellence and good design
10.Simplicity—the art of maximizing the amount of work not done—is essential
11.Best architectures, requirements, and designs emerge from self-organizing teams
12.Regularly, the team reflects on how to become more effective, and adjusts accordingly

Overview

There are many specific agile development methods. Most promote development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project.

* Iterative, incremental and evolutionary

Most agile development methods break the tasks into small increments with minimal planning and do not directly involve long-term planning. Iterations are short time frames (time boxes) that typically last from one to four weeks. Each iteration involves a cross-functional team working in all functions: planning, requirements analysis, design, coding, unit testing, and acceptance testing. At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the project to adapt to changes quickly. An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations might be required to release a product or new features.

* Efficient and face-to-face communication

No matter what development disciplines are required, each agile team should include a customer representative (product owner in scrum). This person is appointed by stakeholders to act on their behalf and makes a personal commitment to being available for developers to answer mid-iteration questions. At the end of each iteration, stakeholders and the customer representative review progress and re-evaluate priorities with a view to optimizing the return on investment (ROI) and ensuring alignment with customer needs and company goals. In agile software development, an information radiator is a (normally large) physical display located prominently in an office, where passers-by can see it. It presents an up-to-date summary of the status of a software project or other product. The name was coined by Alistair Cockburn, and described in his 2002 book Agile Software Development. A build light indicator may be used to inform a team about the current status of their project.

* Very short feedback loop and adaptation cycle

A common characteristic in agile is the daily “stand-up”, also known as the daily scrum. In a brief session, team members report to each other what they did the previous day toward their team’s sprint goal, what they intend to do today toward their team’s sprint goal, and any roadblocks or impediments they can see to their team’s sprint goal.

* Quality focus

Specific tools and techniques, such as continuous integration, automated unit testing, pair programming, test-driven development, design patterns, domain-driven design and code refactoring and other techniques are often used to improve quality and enhance project agility.

Philosophy

Compared to traditional software engineering, agile software development mainly targets complex systems and projects with dynamic, non-deterministic and non-linear characteristics, where accurate estimates, stable plans, and predictions are often hard to get in early stages—and big up-front designs and arrangements would probably cause a lot of waste, i.e., are not economically sound. These basic arguments and previous industry experiences, learned from years of successes and failures, have helped shape agile development’s favor of adaptive, iterative and evolutionary development.

Home grounds of different development methods
Agile methods Plan-driven methods Formal methods
Low criticality High criticality Extreme criticality
Senior developers Junior developers (?) Senior developers
Requirements change often Requirements do not change often Limited requirements, limited features see
Small number of developers Large number of developers Requirements that can be modeled
Culture that responds to change Culture that demands order Extreme quality

SCRUM SOFTWARE DEVELOPMENT

Scrum is an iterative and incremental agile software development framework for managing product development. It defines “a flexible, holistic product development strategy where a development team works as a unit to reach a common goal”, challenges assumptions of the “traditional, sequential approach” to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project.
A key principle of scrum is its recognition that during production processes, the customers can change their minds about what they want and need (often called requirements volatility), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. As such, scrum adopts an empirical approach—accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team’s ability to deliver quickly, to respond to emerging requirements and to adapt to evolving technologies and changes in market conditions.

Roles

Compared to traditional software engineering, agile software development mainly targets complex systems and projects with dynamic, non-deterministic and non-linear characteristics, where accurate estimates, stable plans, and predictions are often hard to get in early stages—and big up-front designs and arrangements would probably cause a lot of waste, i.e., are not economically sound. These basic arguments and previous industry experiences, learned from years of successes and failures, have helped shape agile development’s favor of adaptive, iterative and evolutionary development.

Product owner

The product owner represents the stakeholders and is the voice of the customer, who is accountable for ensuring that the team delivers value to the business. The product owner writes customer-centric items (typically user stories), ranks and prioritizes them, and adds them to the product backlog.
1.Demonstrates the solution to key stakeholders who were not present at a sprint review;
2.Defines and announces releases;
3.Communicates team status;
4.Organizes milestone reviews;
5.Educates stakeholders in the development process;
6.Negotiates priorities, scope, funding, and schedule;
7.Ensures that the product backlog is visible, transparent, and clear.

Development team

The development team is responsible for delivering potentially shippable increments (PSIs) of product at the end of each sprint (the sprint goal). A team is made up of 3–9 individuals who do the actual work (analyze, design, develop, test, technical communication, document, etc.). Development teams are cross-functional, with all of the skills as a team necessary to create a product increment. The development team in scrum is self-organizing, even though there may be some level of interface with project management offices (PMOs).

Scrum Masters

Scrum is facilitated by a scrum master, who is accountable for removing impediments to the ability of the team to deliver the product goals and deliverables. The scrum master is not a traditional team lead or project manager, but acts as a buffer between the team and any distracting influences.
1.Helping the product owner maintain the product backlog in a way that ensures the needed work is well understood so the team can continually make forward progress
2.Helping the team to determine the definition of done for the product, with input from key stakeholders
3.Coaching the team, within the scrum principles, in order to deliver high-quality features for its product
4.Promoting self-organization within the team
5.Helping the scrum team to avoid or remove impediments to its progress, whether internal or external to the team
6.Facilitating team events to ensure regular progress
7.Educating key stakeholders in the product on scrum principles

Work Flow

A sprint (or iteration) is the basic unit of development in scrum. The sprint is a time boxed effort; that is, it is restricted to a specific duration. The duration is fixed in advance for each sprint and is normally between one week and one month, with two weeks being the most common.
Each sprint starts with a sprint planning event that aims to define a sprint backlog, identify the work for the sprint, and make an estimated commitment for the sprint goal. Each sprint ends with a sprint review and sprint retrospective, that reviews progress to show to stakeholders and identify lessons and improvements for the next sprints.
Scrum emphasizes working product at the end of the sprint that is really done. In the case of software, this likely includes that the software has been integrated, fully tested, end-user documented, and is potentially shippable.

In extreme programming, the phases are carried out in extremely small (or “continuous”) steps compared to the older, “batch” processes. The (intentionally incomplete) first pass through the steps might take a day or a week, rather than the months or years of each complete step in the Waterfall model. First, one writes automated tests, to provide concrete goals for development. Next is coding (by programmers working in pairs, a technique known as “pair programming”), which is complete when all the tests pass, and the programmers can’t think of any more tests that are needed. Design and architecture emerge from refactoring, and come after coding. The same people who do the coding do design. (Only the last feature — merging design and code — is common to all the other agile processes.) The incomplete but functional system is deployed or demonstrated for (some subset of) the users (at least one of which is on the development team). At this point, the practitioners start again on writing tests for the next most important part of the system.

SOFTWARE DEVELOPMENT PROCESS

STEP 1:

STEP 2:

DELIVERY MODELS

UFours is established primarily to carry out the offshore software development projects and registered as a 100% Software export unit. UFours has successfully delivered medium and large size projects on time and under budget using the Offshore Delivery Model with the help of Managerial and Technical skill sets. With an experience of over 5+ years now, UFours has adapted to various changes to understand the cross culture needs of the region specific customers

UFours’s delivery models are designed to suit varying comfort levels and scenarios of the client’s needs.

* Offshore Development Model
* Offsite – Onsite Development Model
* Consulting

About Us

With experience in various business sectors, we can create Solutions for IT Problems. We combine technology expertise, architecture solutions and program management skills to help you integrate and acquire new capabilities with emerging technologies. Specialists will work with you to provide the skills you need, when you need them, for streamlining, managing system and applications.

We’re helping today’s enterprises become intuitively digital by using the cloud as part of a foundation to derive new insights, unlock new opportunities and build new models for creating richer, more meaningful customer experiences.

Our Contacts

Mr. Selva Kumar Periyandavar

Registered Address,
11, Ramu Pillai Lane, South Veli Street
Madurai - 625 001, TN, India.

Branch Address,
40/10A, Power House Road, Crime Branch,
Madurai - 625 001, TN, India.

+91-452-4980995, 4200995
+91-90252 57995