The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Published by Enhelion, 2019-11-19 01:00:20





Page | 4




2.1 WHAT IS A SOFTWARE DEVELOPMENT by the customer and a software analyst. A
AGREEMENT? software requirements analysis primarily
aims to determine the needs, requirements
For a better understanding of software development and expectations of the customer regarding
agreements, it would be beneficial to first learn about the software. The role of the analyst is to align
the process of software development. A software such requirements with a viable software
development process, also called a software solution. This is carried out by drafting a
development life cycle is defined as “a structure ‘software requirements specification
imposed on the development of a software product”i. document’ jointly by the client (software user)
It is the “process of managing the creation of a and the software analyst. It is imperative to
software from initial customer inception to the note that the ‘requirements document’ is
release of the finished product”ii. In simple words, a focused only on the ‘functionality’ of the
software development process is a sequence of software, and not its implementation. The
methodological steps or a phased development document must specify the software’s
undertaken, in order to create or produce a software, functions and performance in details, and not
beginning from the conception stage until its about how it would be performed; meaning, it
implementation and maintenance. should focus on “what” the software does, and
A software development process can be broadly not “how” it is to be implemented. The
divided into the following stages:iii requirements document must describe the
software from the software user’s point of
• Analysis: the first step in a software view, but simultaneously, it should be precise
development process is ‘analysis’, wherein enough for the software analyst to develop a
the software requirements are analysed, both

Page | 2

prototype or a model software based on such requirements document. The process
specifications. The prototype helps the involves checking if individual software
customer assess the software and offers him modules (that is, various
a better clarity on what the finished product components/sections of a software/program
(software) might look/behave like. This code) are functioning properly, both as
process of assessment is carried out by independent modules (also called, unit tests)
feeding ‘verification and validation data’ to and as an integrated whole (functional tests).
the prototype, wherein sample inputs Testing also includes debugging, which is the
prepared by the software user are fed into the process of identifying, isolating and finally,
model software to generate sample outputs, fixing or rectifying an error in the program.
along with sample errors. A requirements • Maintenance: software maintenance
document must also identify how the involves re-application of all the above steps
software interacts with the ‘system’, that is, to an existing program and adding new
the interaction of the software with features or functionalities, in order to fix
hardware, human resources, databases and errors and/or improve the software.iv
external devices, and it must be a loosely Software development process can be modelled on
coupled document, so that changing or various methodologies, which are as follows:v
modifying one feature of the software • Waterfall model: software development
specifications cause minimal changes to other process in the waterfall model follows a linear
specifications. sequence, beginning from the conception
• Design and coding: this stage involves stage, followed by initiation, analysis, design,
translating the set of specifications laid down coding, implementation, testing and
in the software requirements document into maintenance. The sequence of progress in
a well-designed and coded software solution. this model resembles a steady downward
• Testing: once the coding process is complete, flow like a waterfall, hence termed as the
the software is tested to evaluate if it is waterfall model. The waterfall model is
successful in its operation, that is, if the criticised as an extremely rigid model, where
software is functioning correctly as per the every stage has specific deliverables, a review
specifications agreed upon in the process after the completion of every stage,

Page | 3

and no scope for changing or modifying • Incremental model: the incremental model
software features once the testing stage of can be viewed as ‘multi-waterfall’ model,
the software has commenced. Therefore, a wherein the software development process is
waterfall model is best suited to projects with divided into multiple smaller stages of
a stable product definition, and, clear and development, each stage going through the
unambiguous requirements with little or no initiation, requirements analysis, coding,
room for changes in requirements. A waterfall implementation and testing phases of the
model is not a good match for long and waterfall model; and alterations and
complex models which carry high additions to the software features are done
probabilities of changing. incrementally.
• V model: known as the verification and
validation model, this process of software • Spiral model: in a spiral model, software
development entails a proactive detection of development follows four major steps, in the
software defects and failures, by testing the following order – planning, risk analysis,
software at every stage of development. engineering and customer evaluation. The
Thus, it helps prevent a downward flow of software is built by passing it through these
defects, as they are tracked down in the early steps/phases repeatedly in a loop, as if to
stages of software development. resemble a spiral, hence the name. The spiral
• Iterative model: also called the evolutionary model emphasises on risk analysis.vii
model, this process involves ‘evolution’ of the
software over a period of time, rather than • RAD model: A RAD model is a Rapid
releasing a full and final finished product at Application Development model which
one go. Here, the software is developed as a follows a high speed and extremely short
series of smaller builds, with each build development cycle. A RAD process is
progressively adding new functionalities and modelled on ‘component-based
features to the software. This cycle of development’ wherein design and
development is repeated, or ‘iterated’ until development of software is enhanced by
the final product, as desired by the client, is reusable software code. Here, software components are built using existing tried and
tested off-the-shelf application specific

Page | 4

software codes, which are then assembled software. The agreement also specifies deadlines for
into a well-defined software structure. delivery of software components by the developer,
• Agile model: the agile model of software and the standards of testing to be fulfilled by the
development is characterised by its ability to software in order for the software to be accepted by
adapt to changing requirements, while the software user. A software development
maintaining minimal development costs and agreement also lays down provisions regarding
the quality of software. The ‘agility’ of the payment structure, confidentiality, and warranty
model lies in developing the software in rapid, period of the software developed, to avoid
incremental cycles resulting in small confusions and enhance the effectiveness of the
incremental releases (of the software) for contract.
testing by the client, followed by rebuilding of
the program code to accommodate further 2.2 KINDS OF SOFTWARE DEVELOPMENT
changes and modifications. The agile model is AGREEMENTS
said to develop a “program for the here and
now – not for the future”viii. Software development agreements are mainly of the
following types:
A software development agreement is a contract 2.2.1 Fixed Price model
between a software developer and a client or As the name suggests, in a fixed price model of
software user, wherein the software developer software development, scope of the software
agrees to develop a software application for the user. development, time required to complete the
A software development agreement is beneficial for development process, and cost of the software
both parties to the contract. It defines the development process, are all fixed. The client lays
requirements and expectations of the client down well-defined software requirements in the
regarding the software, as well as lays down the contract, following which the software development
scope of services to be provided by the software (team) creates wireframes (that is, a blueprint,
developer. It specifies the rights and liabilities of the schematic representation or a skeletal framework of
developer and the user, along with their limitations. the software) in order to assess the time required for
Perhaps the most important aspect addressed by a completion of the project, based on which a price is
software development agreement is the issue of fixed. In a fixed price model, the budget is fixed, and it
ownership of intellectual property rights in the cannot be exceeded (without notice), meaning, it is

Page | 5

the software developer’s responsibility to stay within software (so as to adhere to the strict deadlines and
the budget; however, if the client wants to add new limited budget), which could adversely affect the
and extra features to the software, which were quality of the software.ix
previously not specified in the software development 2.2.2 Time and Materials
contract, such features will be covered in an In Time and Materials contract, the client or the
additional contract (also called a change request), for software user pays the software developer in terms
which the client must pay additional costs. Thus, it of number of hours s/he has worked towards
can be understood that a fixed price model is quite developing the said software. This model offers
rigid and not amenable to changes. This, in turn, flexibility in terms of introducing changes or
implies that a fixed price contract requires modifications in the software
comprehensive planning, detailing all aspects of the requirements/specifications, and thus, is best suited
software requirements plus possible obstacles. The for software development projects which have fluid
rigidity of fixed price contracts leaves little to no requirements, are susceptible to rapid changes, and
scope for accommodating changes in software demand agile execution. In the time and materials
features arising due to changing business arrangement, software development is divided into
requirements, meaning that scope-related risks are short ‘sprints’ or iterations, which leads to production
carried by the client. The client also bears third-party of a minimum viable product, that is, an initial product
risks, or risks caused due to external dependencies, with basic features, for feedback by the client. New
which may lead to delay in delivery schedules, and/or features are added, and/or old features are modified
renegotiation for extra costs. People management or disabled in subsequent iterations, thereby
risk, however, requires redressal by the software resulting in a well-tested high-quality software. This
developer. It is the responsibility of the software model of software development, however, results in
developer to remedy issues of uncertainty over an undefined budget and constantly shifting
staffing or human resources, and deliver the finished deadlines.x
software within the pre-determined schedule and 2.2.3Milestones
budget. In this kind of arrangement, it is also In a milestone model of software development, the
imperative to lay down clear instructions regarding client makes payment to the software developer once
the design process, since a lack of it might prompt a s/he (the developer) has achieved a certain
developer to adopt shortcuts while designing the ‘milestone’ along the software development timeline,

Page | 6

that is, a certain (pre-determined) scope of work report should include provisions regarding
within a given amount of time. The payment is based milestones achieved, time and resources spent in
on the time and effort spent on achieving that achieving said milestones, variances (if any) and their
particular milestone. This implies that there is no reasons, remedial measures to address such
fixed price for payment, as every milestone will have variances, potential risks, and possible rescheduling
required varying amounts of time and effort spent on of milestones (if any).xi
its development; and no fixed deadline for
completion of the software development. A software 2.3 KEY CLAUSES IN SOFTWARE DEVELOPMENT
development process typically has six major AGREEMENTS
milestones: first, adopting a ‘development
methodology’, wherein the software user and the A well-drafted software development agreement
software developer arrive at an agreed must contain the following key provisions:xii
understanding relating to the strategy or technique
to be used in the software development process; • Software design and development process:
second, adopting a ‘development model’, wherein the the agreement must clearly lay down
best suitable development model is chosen based on provisions detailing the software
the nature of the software to be developed; third, the development process to be adopted –
‘product versus process’ milestone wherein the whether it is the waterfall model, rapid
process of software development is viewed application development, spiral, agile or any
independently of the end-product (that is, the other model. This provision must also specify
finished software), and both the entities are if the software is to be produced in a singular
controlled, developed and enhanced separately; and phase, or a multi-stage continuous
fourth, ‘second childhood’, wherein the finished integration process. A time limit or deadline
software is further modified or changed to align it should be established for completion of the
with the user requirements and/or improve the software development process, and issues
functionalities of the software. It is regarded as best such as, whether time is of the essence in the
practice to include a ‘milestone status report’ in this contract, extent of flexibility of the time limit,
model, so as to evaluate progress of the software and, consequences of delays or missed
development process. A typical milestone status deadlines should be addressed. This provision
should also lay down extent of involvement of

Page | 7

the client or software user, in the software software operation and related procedures;
design and development process. user documentation detailing the software
• Product specifications: since software functionalities and its interface with the
specifications form the basis for development ‘system’ (human resources, third party
of the software, it is of utmost significance to databases, hardware etc); and, installation
lay down comprehensive details of the guidelines. The software installation
software specifications. Accordingly, this guidelines should specify issues regarding
provision should contain a detailed installation, configuration and integration of
description of the software in general, that is the software – whether it is the client’s
general specifications; an exhaustive list of responsibility, or the software developer’s
specifications of the functionalities of the liability. It should also address the level of
software, or functional specifications; and, an cooperation to be sought from both parties in
in-depth description of the technical the process, potential technical challenges
solutions to be offered by the software, that and their remedies. Further, it should also
is, technical specifications. This section include if the software developer is to charge
should also provide for documentation of the additional fees for software installation and
aforementioned specifications in a integration.
standardized format, and mention the • Standard of work: it is prudent for the client
involvement of the client and the software to specify, in writing, a minimum standard of
developer in drafting such a specifications work desired from the software developer, in
document, that is, issues such as who will order to ensure development of a premium
draft the initial document, its review process, quality software. The provision must mention
and method of incorporating inputs and that a software developer shall engage people
recommendations from the other party. with adequate technical know-how,
• Project documentation: a software proficiency and experience as required, for
development agreement should contain proper performance of the project (software
technical documentation detailing software development) with due care and diligence.
description and requirements; operational The software developer must warrant that
documentation detailing specifics of the the end-product (software) will be

Page | 8

manufactured using the best applicable data depending on their seriousness and solutions;
processing standards, and will be delivered and provide for documentation of these tests,
free from any technical or workmanship along with the evaluation and their
defects, and completely virus-free. Further consequences. If the software or any of its
the software documentation should be components fail the acceptance tests,
adequately user-friendly and self-contained, provisions must be laid down for conducting
in order to enable users to access, use and ‘repeat tests’. It should specify the
maintain the software without requiring any circumstances under which repeat tests shall
further instructions. take place, the time limit within which these
• Programme of work: the programme of work tests should be repeated, and the party to
lays down mutually agreed deadlines and bear costs. If the software fails to pass the
time limits for completion of various stages of repeat tests as well, the agreement must
the software development process, and the clearly lay down the client’s rights in that case,
final completion date of the project. such as rejecting the software, accepting the
• Acceptance testing: this provision must lay software at a reduced price, or requiring the
down an acceptance plan, containing details developer to rectify the defects in the
of acceptance procedures and criteria. It software without any additional charges.
should specify the kinds of acceptance tests • Approval and final delivery of deliverables:
to be performed, and the time of performance the agreement should provide for an
of the acceptance tests. Usually, acceptance ‘approval period’ once the acceptance tests
testing includes functionalities test, have been approved and accepted by the
integration test, robustness test, capacity and customer or client. The duration of the
response time test, operational test, approval period must be specified in the
installation test, and documentation review. agreement. During the approval period, the
It is desirable for both parties involved to deliverables are put into regular operation,
conduct acceptance tests at the end of every and it is the onus of the client to check if the
stage of the software development process. deliverables adhere to the conformations
The acceptance plan must define the level of mentioned in the requirements document,
errors, such as minor, major and critical, and report any errors in the process. On

Page | 9

approval by the client, the software The provision must also provide for remedial
deliverables are delivered on the ‘delivery measures or redressal mechanisms in case of
date’ (which is the first working day after the disputes regarding a change in deliverables
deliverables have been, or deemed to have and its consequences.
been, approved by the client, unless • Intellectual property ownership: the
otherwise specified in the agreement). provision on intellectual property ownership
Provisions must be laid down detailing the must specify the kind of intellectual property
consequences of non-approval of the rights that subsist in the software, the owner
deliverables by the client. Typically, in such a of such intellectual property rights in the
scenario, the agreement provides for software, whether different software
extending the approval period until the components or modules all require different
software developer has conformed with all software licenses, whether the software uses
the requirements of the software as initially any third party software licenses, whether
determined. the software or any of its components will use
• Changes or variations in deliverables: in the an open source license and if so, the kind of
event that the client demands additions, open source license to be used, client’s rights
alterations or modifications and changes to to use, access and change/modify the source
the software features and specifications, the code of the software, rights granted and
contract should provide mechanisms for the excluded from the software license, transfer
same, along with processes for changing or assignment of intellectual property rights
corresponding deadlines and costs. When a from the software developer to the client ,
client requests for variations in deliverables, and sub-licensing rights as required by the
it is prudent to conduct a study of the relevant client.
consequences and challenges, and such a • Source code escrow: source code escrow
study report must address details of the means depositing the software source code
change description, its implications on the with a neutral third party escrow agent, who
software solution, change in costs, variations holds such source code and any related data
in acceptance test plans and criteria, and or documentation, for safekeeping and
implications for maintenance of the software. maintenance, in order to protect it from

Page | 10

orphaning (when software programs are software infringes intellectual property rights
abandoned by their developers), and is
released only on the fulfilment of certain pre- of a third party, warranties relating to
defined release events. Thus, it is essential to
lay down details of the selected escrow agent; performance and security of the software,
provide a definition of ‘source code’ with
respect to the escrow agreement; determine and indemnification on breach of
whether the escrow agreement will be a
separate and distinct agreement or confidentiality by the software developer.
embedded in the software development
agreement as an escrow clause; duties and • Responsibilities of the software developer:
obligations of the software developer
towards the escrow agent; and terms and this provision specifies the duties and
conditions, or events that will initiate release
of the source code. obligations of the software developer. Some
• Warranties and indemnities: this clause
defines the scope of warranties and of them include delivery of the deliverables in
indemnities provided by the software
developer. A warranty period should be accordance with the specifications laid out in
defined, during which the developer is liable
to rectify errors in the software without any the software requirements document,
additional charges, provided the client has
notified the developer about the same within ensuring that the performance of the
the warranty period; the defect is not caused
due to alterations made to the software by software development process will be carried
the client, or any other such specified
conditions. The provision should address out by engaging technically proficient and
major concerns such as indemnification of the
client by the software developer if the experienced professionals as well as by using

best applicable techniques, carrying out

acceptance testing, maintaining

confidentiality of the software development

process and any other responsibilities as


• Responsibilities of the client: this provision

lays down the duties and obligations of the

client, such as, payment obligations, duty to

clearly define software specifications in the

software requirements document, and any

other obligations as specified.

• Fees: the software development agreement

should clearly delineate provisions regarding

upfront payments, cost overrun and methods

Page | 11

for calculating surplus charges for additional power or civil war; riots, strikes, lock-outs or
requirements, operational costs, and a disorder caused solely by employees or
payment schedule. Provisions should be subcontractors of the software developer;
made for progress payments as well, along and un/declared war or terrorist
with a detailed fee schedule which monitors attacks/threats. However, events caused due
fees paid for every corresponding phase of to default or (contributory) negligence of the
development. This clause must also lay down party claiming force majeure, will not qualify
terms and conditions which may permit the as force majeure. Possible consequences of a
software developer to halt or cease the force majeure claim could include suspension
software development process, such as fees of obligations of both parties, and a possible
disputes or delays in payment. Additionally, termination of agreement, but only with the
provisions for software maintenance and consent of the other party, or if the force
upgrade fees should be included. majeure event prevails for or more than a pre-
• Force Majeure: parties to the contract must determined time period, without adequate
clearly define the scope of ‘force majeure’, days’ notice (also pre-defined).
that is, unavoidable or inevitable • Dispute resolution: if any dispute arises
circumstances arising out of forces or causes between the parties in connection with or out
beyond the control of the parties, which could of the contract, the dispute resolution clause
not have been reasonably foreseen by either must address issues such as which courts
of the parties. In addition, the force majeure have jurisdiction over such disputes, the
clause should also delineate events that do governing laws, whether parties will resort to
not qualify as force majeure and any alternative methods of dispute resolution
consequences in the event of occurrence of such as arbitration, mediation, expert
any such events. Possible force majeure determination or any other methods, and
events could include acts of God such as whether all or only some of the disputes will
floods, fires, earthquakes, explosions or any be subject to alternate dispute redressal
other natural disasters; rebellion, mechanisms, and if so, define such disputes.xiii
insurrection, revolution, military or usurped

Page | 12

2.4 IP OWNERSHIP SURROUNDING SOFTWARE infringement of copyright and confidentiality breach.
DEVELOPMENT The defendant refuted the plaintiff’s claims on
grounds that it was the rightful first owner of
One of the most contentious issues in software copyright in the software as per section 17(c) of the
development is regarding the ownership of copyright Indian Copyright Act, 1957 since the software was
in software developed by a software developed by the plaintiff in the course of
programmer/developer in the course of an employment under a contract of service.
employment. If a software developer develops Additionally, existence of a contract between the
customised software tailored to suit the needs of a plaintiff and the defendant stating that the defendant
particular employer, question is who is the rightful would be the copyright owner of the software,
copyright owner of the customised software, the further negated the copyright claims of the plaintiff.
software developer or the employer? This question The court ruled that the issue of determining ‘course
was dealt with in Exegesis Infotech v. Medimanage of employment’ involved various parameters
Insurance Brokingxiv, where the plaintiff was including the control test (wherein “the purported
commissioned to develop customised software for employer has a right, not only, to control the author’s
use by the defendant in its insurance broking actions, but also, the manner of performance of such
business. The plaintiff claimed copyright over the actions”xv) and the organization test (which
software as its rightful author, and also contended determines whether a worker is an independent
that the defendant was not entitled to the underlying contractor or an employee of the organization by
source code. The plaintiff alleged that the defendant considering whether the worker was part of the
had however unrightfully obtained such source code organization when the work was created, appointing
on the pretext of testing, and was trying to authority, nature of work, power to appoint and
redistribute, share and disclose the code without the dismiss, paymaster and various other relevant
software developer’s express permission, thus factors) as laid down in Zee Entertainment
perpetrating a breach of confidentiality. Further, the Enterprises v. Gajendra Singhxvi, which was a complex
plaintiff feared that the defendant would obtain the issue, best settled at trial. The court then discussed
source code and other background information section 17(c) of the Copyright Act 1957, which states
through reverse engineering. Thus, Exegesis sought that “in the case of a work made in the course of the
an interlocutory injunction against Medimanage for author's employment under a contract of service or

Page | 13

apprenticeship, to which clause (a) or clause (b) does without assigning any reason. However, they should
not apply, the employer shall, in the absence of any handover the original software source code to
agreement to the contrary, be the first owner of the Medimanage& cooperate with them for smooth
copyright therein”xvii, and emphasised on “agreement transition of change of vendor without any undue
to the contrary”. To determine the copyright service disruption, which may cause inconvenience to
ownership, the court relied on email Medimanage customers & partners. In such
correspondences, a draft agreement and a circumstances, this MOU would be null & void and
Memorandum of Understanding (MoU) signed both parties will be absolved of conditions stated
between the parties. The court found that both the within this MOU.”xixOn the basis of these express
draft agreement and the MoU contained clauses clauses, the court noted that there was “an
asserting the defendant’s ownership of copyright in overwhelming prima facie case of an agreement
the software, such as, “Medimanage will hold the between the parties that the Defendant shall be the
complete ownership of the software & Exegesis will first owner of the copyright in the work, namely the
own the rights for background technologies used for impugned software.”xx As for the claim of breach of
development of this software.”xviii The MoU also confidence, the court ruled that the plaintiff failed to
stated that the software would be handed over to the successfully establish ‘confidential nature’ of the
defendant if the contract was terminated, in the alleged information/material or prove that the
following terms: “In case, due to any dispute or defendant was using the alleged confidential
otherwise, Exegesis wishes to not work with information in an unauthorized manner; and
Medimanage for development of software, they dismissed the reverse engineering claim as ‘highly
could terminate this contract with 3 months notice speculative’.xxi

Page | 4

i Iqbal Sarker, Faisal Faruque, Ujjal Hossen and Atikur Scientific World Journal
Rahman, ‘A Survey of Software Development Process Models
in Software Engineering’ (2015) 9(11) IJSEIA accessed 11 January 2019
y_of_software_development_process_models_in_software_en xii Alasdair Taylor, ‘Software Development Agreements: A
gineering accessed 8 January 2019 Checklist’ (SEQ Legal, 16 May 2012)
ii Ashraf Abusharekh, ‘Overview of Software Processes’ checklist accessed 12 January 2019
(2017) retrieved from Dalhousie University xiii Tamsyn Vassallo, ‘A Checklist for Key issues in Software
accessed 8 January 2019 Development Agreements’ (mdplaw, 22 November 2017)
iiiibid development-agreement accessed 12 January 2019

ivibid xivNotice of Motion No. 1290 of 2014 in Suit No.784 of 2014,
Order Pronounced on 15th July, 2015
vSarker (n 1)
xv Zee Entertainment Enterprises v. Gajendra Singh, 2007 (6)
vi David C. Young, ‘Software Development Methodologies’ BomCR 700
(Alabama Supercomputer Centre 2012) xvi2007 (6) BomCR 700
ments/sw_devel_methods.pdf accessed 10 January 2019
xvii Section 17(c), Copyright Act, 1957.
vii ibid
xviii Exegesis v. Medimanage (n 14)
viiiAbusharekh (n 2)
xix ibid
ix Oleg Lola, ‘Custom Software Development Pricing Model:
Fixed Price Contract’ (MobiDev, 31 May 2016) xx ibid
velopment_projects accessed 10 January 2019 xxi L. Gopika Murthy, ‘Software Copyright and Commissioned
Works’ (SpicyIP, 20 July 2015)
x Fixed Price or Time and Material Contract (Cybage) commissioned-works.html accessed 21 January 2019;
ge_tm_vs_fp_whitepaper.pdf accessed 11 January 2019 ‘Copyrights Case Brief: Exegesis Infotech v. Medimanage’
(BananaIP, 23 July 2015)
xi Isabel M. del Aguila, Jose Palma and Samuel Tunez, center/copyrights-case-brief-exegesis-infotech-vs-
‘Milestones in Software Engineering and Knowledge medimanage/ accessed 21 January 2019
Engineering History: A Comparative Review’ (2014) The

Page | 15

Click to View FlipBook Version