Você está na página 1de 13

 

   

Ascenwork Technologies
– Internship Paper
 
CONTENTS: 
Abstract 
Introduction 
My Experience 
• Waterfall Model 
• Agile Development Model 
• SCRUM Development Model 
• Kanban Development Model 
Case Studies 
• Library System 
• Offroad Films 
Microsoft Share Point 
Application  of my Research 
Conclusion and My Reflection 
Internship Certificate 
 
 
Kavish Gandhi 
2018 
 

1   
 
Abstract
During the summer of my senior year in high school, I worked as an intern at Ascenwork
Technologies Pvt. Ltd. for two weeks. It was during this time that I learned a lot about software
development and its applications along with Microsoft SharePoint. After researching the various
types of software development models, along with their uses and advantages, I made case
studies using one of these models for a library system in schools and colleges and for Offroad
Films, an advertising company. I also researched about Microsoft SharePoint and its various
features and uses in data management and website creation.

I have written about my experience during this internship along with the projects that I did during
my time there. Using what I learned at the internship, I decided to write about how software
development and Microsoft SharePoint can be applied to build game software using the Java
programming language which allows the SCRUM Development Model to be implemented
easily. Microsoft SharePoint would allow efficient management of game data along with
handling of various files, updates and records.

This internship has truly given me a better insight into Computer Science and made me
understand how the different elements of this vast field can come together to build something
which works for the benefit of all. Given below are the contents of this paper:

Introduction 
My Experience 
• Waterfall Model 
• Agile Development Model 
• SCRUM Development Model 
• Kanban Development Model 
Case Studies 
• Library System 
• Offroad Films 
Microsoft Share Point 
Application of my Research 
Conclusion and My Reflection 
Internship Certificate 

2   
 
Introduction

Software development is the process of conceiving, specifying, designing, programming,


documenting, testing, and bug fixing involved in creating and maintaining applications,
frameworks, or other software components. It is a process through which the applications
created can be used for a variety of purposes. It includes all the processes that are involved
between the product’s conception to the final release of the product. There are many software
development processes, models or cycles. One type of process is not necessary suitable for
other types of processes. Each model is specific to the type of project that needs to be executed
along with the number of people, and other technicalities.

My Experience

I worked at Ascenwork Technologies Private Limited during my summer break for about 2
weeks. These 2 weeks have helped me a lot in learning about the field of software development
and engineering along with the kinds of processes that go into making the final application or
product for the user. During my time there, I researched and worked on quite a few projects.

My first few days at the company were spent in researching about the different types of software
development models. The company’s owner, Mr. Shripal Shah, briefed me on the company and
explained the research that I had to carry out. I learned about different software development
models such as the waterfall model, the agile development model and the SCRUM development
model.

Waterfall Model

The waterfall model is a very linear and sequential model designed for progress to flow in one
direction. The first step is the analysis of the situation at hand or the problem that needs to be
resolved by the product to be created. After the analysis of the situation, a clear program is
conceptualised which, when implemented, will help solve the problem. The program is designed
in the next step: the designing phase which gives the programming team a clear structure for
the program to be coded in the next step: coding the program. This step includes the
development, running and integration of the software. After this, the software is tested and
undergoes debugging. After testing the software, if it is correctly coded, it is made available for
the user. Proper maintenance of the software is carried out at definite time intervals.

3   
 
Agile Software Development Model

The Agile Software Development Model is a process that is more focused on the quality of the
released product along with lesser overall risk and faster adaptation to changes. In this model,
the work is divided in small increments and each increment is carried out through iteration. An
iterative team is responsible for the implementation of this increment. Each team involves a
cross-functional team working in all functions i.e. planning, analysis, design, coding and testing.
Each iteration might not add enough for the product to be released in the market but multiple
iterations together make up a final product that can be released with minimal bugs.

SCRUM Model

The SCRUM Development model is a type of agile development model where the different
iterations are known sprints.

Scrum calls for four ceremonies that bring structure to each sprint:
• Sprint planning: A team planning meeting that determines what to complete in the coming
sprint i.e. create a sprint backlog.
• Daily stand-up: Also known as a daily scrum, a 15-minute mini-meeting for the software team
to sync.
• Sprint demo: A sharing meeting where the team shows what they've shipped in that sprint.
• Sprint retrospective: A review of what did and didn't go well with actions to make the next
sprint better.

Each sprint adds a few features to the evolving product or system. There are 3 main roles in a
scrum team: the Scrum Master, product owner and the development team consisting of various
individuals with different abilities.

Functions of the product owner:


• Building and managing the product backlog

• Closely partnering with the business and the team to ensure everyone understands the work
items in the product backlog

• Give the team clear guidance on which features to deliver next

• Decide when to ship the product with the predisposition towards more frequent delivery

Functions of the Scrum Master:

A scrum master is the facilitator for an agile development team. Scrum masters coach the team,
the product owner, and the business on the scrum process and look for ways to fine-tune their
practice of it. An effective scrum master deeply understands the work being done by the team
and can help the team optimize their delivery flow. They schedule the needed resources, both
human and logistical, for sprint planning, stand-up, sprint review, and the sprint retrospective.

4   
 
Functionns of the Sc
crum Team::
Scrum te
eam members have diffe ering skill setts, and crosss-train each other so no one personn
becomess a bottlenec
ck in the delivery of workk and ends up u multitasking. All mem mbers of the team
t
help one another to ensure
e a succcessful sprint completio on.

Kanban Developme
ent Model

The Kanb ban Develop pment Mode el is a type of agile devellopment mod del where work
w items arre
represen nted visually on a kanban n board, allo
owing team members
m to see the statte of every piece
p
of work at
a any time. The
T work of all kanban teams
t revolvves around a kanban bo oard, a tool used
u
to visualize work and d optimize th
he flow of thee work amon ng the team.. Its function is to ensuree that
the team's work is vis sualized, wo
orkflow is sta
andardized, and all obsta acles are im
mmediately
identified
d and resolveed. A basic kanban
k boarrd has a threee-step workkflow: To Do o, In Progresss,
and Done e. However, depending on the team m’s size, requuirements an nd objectivess, the board may
be customized to me eet the team’s requireme ents. Given below
b is a tyypical Kanba
an Board:

5   
 
The kanb
ban development model has many advantages:
a

• A kanban tea am is only fo


ocused on th he work that's actively in progress. Once
O the tea
am
c
completes a work item, itt can be pluccked off the board. The product own ner is free to
o
reprioritize th he work in th
he backlog without
w disrup
pting the tea
am and hencce keeps the e
m
most importa ant items on top of the backlog, ensu uring maxim mum value ou ut of the teamm.
T
This allows the team quitte some planning flexibility.
• A
Another adva antage of Kaaban is that there are sh hortened time e cycles, allo
owing work to
fllow through the team mo ore quickly and
a efficienttly.
• T entire system limits the amountt of work in progress
The p leading to feweer bottleneckks,
i..e. multi - tas
skers and he ence, greate er efficiency.

Co
omparison
n Chart betw
ween SCR
RUM and KA
ANBAN De
evelopmen
nt Models

SCRUM KANBA
AN

Cadence Regular fixed


d length sprintss (usually 2 we
eeks) Continuous flow

Releasse Continu
uous delivery or
o at the team
m's
method
dology At the end of each sprint if approved by the
t product ow
wner discretion

No exissting roles. So
ome teams enlist
Roles Product owne
er, scrum masster, developm
ment team the help
p of an agile coach.
c

Key me
etrics Velocity Cycle time

Change Teams should


d strive to not make change
es to the sprintt forecast durin
ng
philoso
ophy the sprint. Do
oing so compro
omises learnin
ng around estimation. Change
e can happen at any time

6   
 
Case studies

• Library system

After researching about these software development models, I wrote a case study for a basic
library system in a school or college using the waterfall model. It involved the basic processes of
a library including the people using and running the library. The basic functions of a library can
be broken up into various steps, the first one being when either a student or teacher wants to
borrow a book. The software would tell the student whether the book was available. If yes then
the student would be allowed to borrow the book. If no, then the student would be offered the
option of reserving the book after it was available via a reservation slip. If the book was
available and the student wished to borrow it, the software would then, allow the student to
enter his or her details (name, class, roll number, etc.) into the system. The book is then issued
to him or her. After the time period for borrowing the book is up, the student returns the book to
the library and enters the date on which he or she returned the book. If the book is not returned
by the deadline, the peon goes to remind the student for the book. If the book is still not returned
by the next day, a fee of 50 rupees per day is charged for each day extra day.

This process of borrowing and returning a book in a library can be made into a software using
the waterfall or agile development models. In the waterfall model, the entire process is planned
and analysed. A design for the software system is then made through this analysis and the
necessary programs are coded. After testing the program, it is integrated into the library system,
making this process easier for students as well as the library staff. The software application is
maintained through regular checks for any bugs, viruses, or memory space issues.

In the agile or SCRUM development model, the same process if broken up into many parts,
each part being an iteration or sprint (if the SCRUM method is carried out). A team of
programmers would ensure that each iteration is properly executed and adds a new feature to
the library software after it is tested for any bugs. If any changes need to be made to the system
during maintenance, only that iteration or sprint needs to be rechecked which is associated with,
the part where the error is found, ensuring efficiency.

• Offroad Films

Another project that I worked on was writing a case study for Offroad Films, an advertisement
company. I wrote a case study for the company and the different kinds of processes that would
need to be undergone by the company when a client approached them with a project. I made
use of the SCRUM development method for this case study. The process of advertising
management is slow and requires the cooperation of many people and departments in a single
company. Hence it has a greater chance of error in terms of records, different costs, document
management etc. More efficiency is needed throughout the company during the process so that
time is saved and costs are reduced.

7   
 
There are various ways to go about the process of advertisement but the basic structure is the
same. I wrote about 2 ways in which this process takes place. The first one is when a client
approaches the advertisement company with a budget to advertise a product. The company
user decides the company’s internal budget for the product and submits it to the administrator.
The administrator approves and finalises the internal budget and hands it over to the purchase
team. The purchase team approaches different vendors for different kinds of equipment like
lights, cameras, help staff, etc. The vendors hand over a commitment to the purchase team for
the product that they will supply and the number of hours they would supply it for. After the
commitments are made by different vendors, the accounts department receives the internal
budget along with those commitments. The department calculated the profit or loss of the
company based on these budgets. If the company will make a profit, the project is undertaken,
else the project is rejected. In case of a profit, if the company decides to undertake that project,
the accounts team receives an invoice from the vendors via the purchase team. The invoice is
then paid off in instalments or directly. The second type of process is where the internal budget
is decided by the admin itself, and is sent by him or her to the user for checking. All other steps
involved in the process are identical.

A software such as this gives any company many advantages over its opponents. Its main focus
is to provide huge savings for companies by reducing the planning and management time and
process. This results in greater efficiency and ensures competitive advantage over other
companies. It provides the end result faster and ensures that no mistakes are made along the
process making it more customer-oriented.

Microsoft Share Point

Researching about these various models and writing case studies taught me a lot about the
basic principles and methods of software development. The next task for me was to learn about
how these methods are implemented in real life. This, I learned, is done through website and
application development using these methods. The main application or software used for this
purpose is Microsoft Share Point. I learned about Microsoft Share Point under Mr. Ramvinod
Yadav. He explained the main purpose of Microsoft Share Point and the use of its different
features. 

8   
 
• Features and their uses

I learned that it is primarily used by organizations to create websites and applications. It is also
used as a document management and storage system. Share Point has various features such
as farms, web applications, service applications, site collections etc. On researching about
these features, I learned that farms are logical groupings of SharePoint servers that share
common resources to develop the website or to store data. They allow groups to set up a
centralized, password protected space for document sharing. Documents can be stored,
downloaded and edited, then uploaded for continued sharing. This information can then be used
to create web applications on Share Point itself which can be shared among the team members.

Service applications are another feature of Share Point. They are used for document
management and conversion or for business integration. Much like the different parts of a
program, they are configured separately and then applied to different web application as
needed. Thus, they are not separate applications as such, but help in building web applications.
The same service applications can be shared among different web applications and farms and
they contain a proxy server which acts as a medium through which web applications can
communicate with each other.

Another important feature of Share Point is site collections. A site collection, as the name
suggests, is a collection of sites inside a web application. It is made up of one top-level site and
all sub sites below it. The team member that has control over the site collections is independent
of needing server/farm level permissions. All this information stored in web applications and
farms is managed through metadata management. Metadata management allows one to sort,
search and manage huge amounts of data effectively making it very reliable for organizations.

Application of My Research

It is through processes and software like that described above that software can be
programmed well and with efficiency. Many teams in an organization can work together to make
sure that all the steps involved in developing software are carried out smoothly. In the same
way, the methods that I researched on and Microsoft Share Point has many applications in the
world. One such application would be the creation of a game or application for a device. The
creation of any game on either IOS or Android requires the same procedure. Typically C++ or
Java is used as a programming language. Being object oriented languages, they offer much
more versatility along with better organization of the program, enhancing readability. Java is
also preferred since it supports multithreading and sockets. Multithreading uses less memory
and makes the most of available CPU, without blocking the user out when heavy processes are
running in the background. Sockets help in building multiplayer games. Plus, Java runs on a
virtual machine, so the game will be easier to distribute.

The first step would be to choose which development model to use for the project. Using Java
would facilitate easy programming. For Java, a SCRUM development model would be ideal.
Since the entire program for the game can be divided into small parts or distinct classes, each
part can be programmed as part of a sprint in the SCRUM model. After each part is

9   
 
programmmed and tessted it can be
e integrated as part of th
he entire pro
ogram, thus leading up to
o the
completio
on of the game.

Process
s of making the game
e software
e

• M
Model to be used - SCR
RUM

Using thee SCRUM model,


m the first step would be for the entire team to meet and d decide how
w
they wouuld execute thet entire pro ocess of pro
ogramming the game. Th he Scrum Master has to o
divide the
e members into different teams to ca arry out diffe
erent sprintss. After each member is
assigned d a role, the teams
t dispeerse and worrk on their reespective spprints. In this way, each sprint
s
can be ca arried out to
o complete each element of the gam me, from plan nning to its la
aunch. Eachh
sprint has its own plaanning, analyysis, design, programmiing and testiing session.

• S
Sprint descrription

In the forrm of a Javaa program, each sprint iss the equivalent to progra amming a cllass which willw
subseque ently be imp
plemented byy an object as a part of the e final prograam. At the beginning
b of a
sprint, the scrum team holds a sprint plannin ng event. In this
t meetingg, they decide would muttually
discuss and
a agree on n the scope of work thatt is intended to be done during that sprint.
s The sprint
s
backlog, which includ des the workk needed to complete th he selected ittems from th he product
backlog, is also decid ded. The pro oduct backlo og consists of
o various tasks and item ms that need d to
be completed or implemented su uch as, differrent classess of the progrram, advertisement of th he
game, grraphic design of various elements in n the game, etc.
e The sprrint and prod duct backlog
should be e documente ed properly and stored ini files to be managed th hrough Micro osoft Share
Point. Th his ensures that
t in the ca
ase of the loss of any ma ajor code seegments, the e raw sprint data
d
is not losst and that pa
art of the game can be re-programm
r med. After the sprint is ovver, the team m
meets ag gain for the sprint
s review
w and sprint retrospective e. In the sprrint review th
he team revie ews
the comp pleted work and
a presents it to the sta akeholders ofo the game. In the sprin nt retrospecttive,
the team reflects on the previouss sprint, lookking for improvements th hat can be made
m in the game
g
during the next sprint.

10   
 
• Sprint process

The sprint starts off with the team planning out the design for the section of the game that they
have to work on along with its analysis. This leads to the design of the basic class structure in
Java. Once the structure is finalized, coding is carried out by programmers. Once coded, the
code is tested for any bugs or logical faults and mistakes are rectified. All such codes written in
Java can be stored in files through the use of the file handling feature provided by the Java
language and these files can be managed by Microsoft Share Point through its metadata
management feature. Backups of all codes and files should be created and stored such that in
the event of a disaster, the game data can be easily recovered and the company need not suffer
any major losses.

In the case of a sprint involving non – programming tasks, such as an advertising team, the
sprint team holds a meeting at the beginning of the sprint to discuss the tasks to be completed
in the sprint. Different members possessing different abilities are assigned tasks for the sprint.
In the case of an advertising team, the sprint backlog would include making a trailer for the
launch of the game, making appealing posters for the public such that the game is sold well,
inviting notable personnel to advertise the game such that it attracts more public attention, and
formulating different offers or updates for the game such that the public remains interested in
playing the game.

Another example of a sprint team involved in non- programming tasks would be the
management team. The same sprint procedure would apply to the team but the backlog would
different. The sprint backlog would typically contain tasks like hosting events for the launch of
them game and inviting notable personnel such that the game is advertised well, formulating the
various policies of the game to make sure that it is not misused and can only be available for a
certain age group, getting sponsorship or partnership deals for the game such that a greater
budget is available for the creators to make the game even better and conveying public reviews
to the creators such the game can be modified based on the public’s opinion.

• Maintaining and Updating the game software at definite time intervals

In this way, different sprints are performed by the different teams of the game’s company or
organization to produce the end product. Once all the features from each sprint have been
successfully integrated into the final game, the game is tested as a whole by the company. If the
test run is successful, the game is launched to the public. Once launched the game has to be
properly maintained by the management team along with timely updates. The minor errors
experienced by the public in the game, if any, should be duly corrected through subsequent
updates. New features should be added regularly to the game to compete with any other games
and to keep the public attached to the game. This ensures the game’s survival in the market for
a reasonable amount of time.

11   
 
Conclusion and My Reflection

Thus, software development and management of data and files through Microsoft Share Point
provides us with many options to program and manage vast codes. Many different types of
applications, games and websites can be created using various software development models.
During my time working for Ascenwork Technologies, I learned a lot about software
development and its various life cycles, which I would not have otherwise learned in a
conventional classroom setting in high school. I was able to experience a typical programming
work environment which helped me get a better insight into the field of computer science and
engineering after one has finished their education. This entire experience has benefited me
greatly and I am very grateful for it.

Bibliography

• https://www.atlassian.com/agile/scrum
• https://en.wikipedia.org/wiki/Scrum_(software_development)
• https://www.freelancer.com/community/articles/what-is-the-best-programming-language-
for-games
• https://www.atlassian.com/agile/kanban
• https://en.wikipedia.org/wiki/Metadata_management
• https://sharepointmaven.com/sites-vs-site-collections-in-sharepoint/
• https://en.wikipedia.org/wiki/SharePoint

12   
 

Você também pode gostar