How We Work

Methodology

Our Expertise

ATK has gained expertise in delivering not only quick turnaround software projects but also large scale software solutions.

ATK delivery methodology has evolved incorporating the best-of-breed tools and techniques.

Experience ranging from legacy systems to state-of-the-art object oriented systems as well as from highly integrated enterprise applications to consumer oriented internet applications has given ATK the unique ability to evaluate and select the best tools and technology.

Use Case Driven Architecture-Centric Methodology

Use cases are used to capture functional requirements. In the context of software life cycle, use-case driven means that the use cases are used as a primary artifact for establishing the desired behavior of the system and for communicating this behavior among the stakeholders of the system. It also means that use cases are the primary input to the analysis, design and validation of the systems architecture.

Architecture-centric here means that the systems architecture is used as a primary artifact for conceptualizing, constructing, managing and evolving the system under development.

The iterative process involves managing a number of releases rather than one big release at the end of the project. Incremental refers to the fact that each release will add new features to the previous release.

Agile Methodology

We also welcome adaptive changes during lifecycle of the product! We're agile if need be!

Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. - wikipedia

Individuals and interactions over processes are the main tools for agile.

ATK product suites are built from the ground up, providing seamless integration across customers business applications. Our platform has a hybrid, multi-tenant architecture that enables us to provide easier and quicker initial customer deployments.

Our innovative architecture means we can release updates and enhancements every quarter, while allowing our customers complete control over their implementations.

Product management team capture and document the requirements in detail covering the required business aspects. This however, doesn't guarantee that all requirements are captured prior engineering team starts building them.

We have achieved good success implementing products with agile methodology. We adapt this methodology over Rational Unified Process (RUP).

We realize that it's difficult to be on the edge and gain success as the competition is too high and unmanageable constraints. The only way to source the product with emerging business trends with minimal time boost the

It's difficult to mould the team working on the product to adapt agile and so is the customer. Our aim was and is to enhance the productivity. The end results were accepted and appreciated by our internal team and customers.

Thus, with team and customers accepting agile, we're able to overcome the initial challenges of demarcating or the drawing boundary.

Inspite of the success of agile, we also follow RUP - an use case driven, iterative, architecture centric i.e. building product architecture that last through. Based on the circumstances of the product and priority of phases, we choose either of these approaches.

Thereby, we try our best to adhere to the agile manifesto:

  • Customer satisfaction by rapid delivery of useful software
  • Working software is delivered frequently (weeks rather than months)
  • Working software is the principal measure of progress
  • Even late changes in requirements are welcome
  • Close, daily cooperation between businesspeople and developers
  • Face-to-face conversation is the best form of communication (co-location)
  • Projects are built around motivated individuals, who should be trusted
  • Continuous attention to technical excellence and good design
  • Simplicity
  • Self-organizing teams
  • Regular adaptation to changing circumstances

We break tasks into small increments with minimal planning, iterations are of short time frames typically lasting from one to four weeks.

Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders.

This minimizes overall risk and allows the project to adapt to changes quickly. Stakeholders produce documentation as required. An iteration may not add enough functionality to warrant a market release, but the goal is to have an available release with minimal and or known bugs at the end of each iteration. This also results in multiple iterations for a product release and or new features.

Our team composition is usually cross-functional and self-organizing without consideration for any existing corporate hierarchy or the corporate roles of team members. Our team members normally take responsibility for tasks that deliver the functionality an iteration requires. They decide individually how to meet an iteration's requirements.

We emphasize face-to-face communication over written documents when the team is all in the same location.

No matter what development disciplines we follow, each agile team will have a stakeholder and or customer representative. This person is appointed by stakeholders or customer to act on their behalf and makes a personal commitment to being available for developers to answer mid-iteration problem-domain 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.

Our Happy Clients