Uploaded by Edwin Tsheko

18181570 Edwin Tsheko.docx

advertisement
BOTHO UNIVERSITY
SOFTWARE ENGINEERING RESIDENCY PROGRAM
AFRICA CODE ACADEMY
Duration: 6 MONTHS
Tutor: Derrick Khupe
Student Name: Edwin Masego Junior Tsheko
Student ID: 1818570
Submission date: 08 November 2021
Word Count:
TABLE OF CONTENTS
ACKNOWLEDGMENTS ...................................................................................................................... 2
Executive Summary Of Internship ....................................................................................................... 2
INTRODUCTION .................................................................................................................................. 3
Method Of Gathering Information ....................................................................................................... 4
COMPANY BACKGROUND ............................................................................................................... 5
REFLECTION & SELF-APPRAISAL ................................................................................................ 9
RECOMMENDATIONS ..................................................................................................................... 11
CONCLUSIONS ................................................................................................................................... 12
ACKNOWLEDGMENTS
I would like to thank Mr. Derrick Khupe, my internship Tutor for guiding us through
the internship and keep us updated of any changes. I would also like to extend my
gratitude to my internship supervis Ms. Ntokozo Moyo and the company CEO of my
internship placement Mr. Joon Lee.
My gratitude also extends to those that helped pull me through the process when i was
demotivated. I would like to thank my team from Botswana and Maseru for being
there when help was needed.
Executive Summary Of Internship
Africa Code Academy is a software engineering based company that provides a
software engineering internship program that is aided at helping students from Africa
or in Africa to venture into software development. The company was ideally made to
help the African nations to join into the emerging of web based technology through
various new libraries and programming languages. The Africa Code Academy is
based at California, Palo Alto 94306 in the United States Of America where all
executive decisions are made in regards to the company. During the internship
program I got to work with interns from Gaborone Botho University Campus and
Maseru Botho University Campus, as welcoming as they were the team picked or that
qualified for the program were both dedicated and passionate about learning software
engineering and it’s different career options. The company works in such a way that
interns are given tickets to different features and aspects for a client’s project where
by each of the interns would have a specific task at which they are supposed to
achieve before the put deadline. Since the company is located in America, the whole
internship program was carried out virtually where the tools such as Zoom, Gmail and
slack were used for communication and announcement or company code reviews and
Daily Stand Up meetings.
During the internship I got to work as a software developer under the developer’s
team where by the main task of my placement was to write code prior to the tasks that
were given. Every intern had a team of which they specialized on. The teams
consisted of Developer Team who were responsible of coding the features of the tasks
given, the designer team that were responsible of designing mock ups to help
developers to design the given task’s User Interface such that it looks appealing and
there was also the testers or the Testing team that was responsible for running tests on
the web applications developed such that error handling and debugging is done before
the project is launched for accessibility to users. The company made this possible and
an easier path for personal growth by providing mentors and instructors to assure that
code review is done and every intern is working tirelessly to meet the company
stands.
INTRODUCTION
Industrial Attachment (internship) is an intrinsic platform that is provided to anyone
mostly those that are undergoing a certain program study at a university or collage, it
is entirely initiated so as to allow students to get to experience professional working
grounds and get to apply their theoretical practice gained during their program of
study into actually applying that knowledge practically. During the industrial
attachment students get to acquire knowledge through the tasks that they are given,
this also helps in adding or enhancing their skills such that they can apply them after
graduation. This program runs from three months to six months depending on the
program of study one is pursuing back at their school or varsity or collage.
Purpose
The purpose of this report is to initially provide a report on the internship placement
so as to give a fully detailed report on how a student got to experience the internship
and a clear scope on what skills the student got to acquire during their internship. As
mentioned above in the introduction or description of what an Internship is, this report
aims at fulfilling the internship requirements that is; making sure that students get to
put what they have learned at school theoretically or practically but in professional
grounds so as to prepare them for life-after-graduation.
The objectives set for this Internship:

To provide a clear picture of the skills learned during the internship

To provide a clear scope on the goals i intended to achieve through this
internship.

To provide a report that clearly states all the objectives required from a student to
ensure the student managed to use the Botho Graduate Profile in the work place.

To provide a clear scope on the company background.

To bridge the gap between theory and practice

to determine what skills and knowledge I still require to work in a professional
setting

to gain fieldwork experience/collect data in an unfamiliar environment
Scope
This internship report will cover from the day the internship started till the last day of
the internship, its aim is to provide a clear view on the process that was taken to
successfully complete the internship, not only that , the report will cover all the
aspects of the requirements that were provided such that it makes a clear statement on
what was done and what was not done through both professional and self-evaluation.
It contains the knowledge and skills learned during my time in the internship program,
it also contains both the self-evaluated pros and cons on working grounds thus
providing the report with a clear view that would indicate if this program was
completed or not.
Method Of Gathering Information
Direct Method Of Gathering Gathering Information
This is a method of gathering information through accessing or looking for samples
from other sources so as to get an idea on what needs to be done or what is being
required by the report for the internship. So to for this report, the direct method of
data collection on the report was used in such a way that the report guidelines
including the Botho Graduate Profile handbook.
Indirect Methods Of Gathering Information
Observation: According to Literacy Basics (n.d) this is the type of gathering of
information of which one has to watch the proceedings of what happens on a day to
day activities in a certain work place or area.
As a student we get to learn how to learn from just observing current or running
events, so during this internship program I got to observe the daily activities that were
taking place every day in the work place. With that being said some of the
information included in this report were from trough observation and gathering the
information.
Research: Sometimes the most effective way to gather information is through
scrapping for information from web journals, books or websites, thus meaning that
most of the information included in this report document was deducted from the
internet and paraphrased. The guidelines of writing an internship though differs, the
information can be found in the internet and one can be guided on how to write a
successful report.
Documentation review: In this type of gathering, information is gathered without
having to distract the program by other sources that are in place such as learner
progress reports, written policies, performance appraisals. So in order to carry our
information gathering for this report documentation review was carried out to
evaluate and to capture the knowledge on how the report structure should be done.
COMPANY BACKGROUND
About Africa Code Academy
During the time I served as part for the ACA, the work ethic was carried in such a
way that it accommodated every intern where interns were given time to learn and
adjust to the work environment. Unlike other companies, Since ACA is an internship
residency program that is aimed at providing software engineering internship
placement to Botho University students from both Botswana and Lesotho are
provided with Teams where by there are Team Leads that are not interns but rather act
as supervisors, mentors and instructors. These same leads are the ones that carry the
code reviews or assessments that determine and nurture the growth of an intern.
Throughout the internship during the learning process interns in teams were swapped
together so as to instill team work and help interns adjust to the company before they
are given projects from clients.
Every team was structured in such a way that there were equal numbers of interns per
team. But as time went on teams were divided into four teams, Alpha, Beta, Gamma
and Zeta at which each of the teams had their own Team lead, Scrum Master and
team. Initially every team had their own speciality or their own team play, where by
Team Alpha consisted of Developers and Beta consisted of UI (User Interface)
Graphic Designing and Gamma consists of QA (Quality Assurance) Testers while
Team Zeta consisted of those interns that were given separate projects from those that
were given the rest of the interns, though with such happening, the teams helped in
making sure that all the given tasks were successful.
I was part of team Zeta where I had the responsibility to create the Foundry page that
is going to be used for recruitment of Developers for companies and the ACA. Team
Zeta consisted of the Program Manager that was responsible for overseeing all the
processes that were taking place, along followed the team lead who was responsible
for making sure that code was being pushed to github and deploying services, not
only that, the team lead’s essential job was to carry out the code reviews, provide
mentor-ship and motivation to the team.
Mission
Vision
Organization Chart
Team Zeta consists of the Program Manager, Team lead/instructor and developers.
The following chart shows the structural flow of the team. Number of staff 5
Program Manager
Team Lead
Interns-Developers
Interns- UI Designers
Program Manager: A program manager is the one who over looks all the processes
that take place in the work place, they make sure the environment is allowing for a
task to be successfully done.
Team Lead: Team leads act as instructors and mentors to the interns and making sure
that given tasks are carefully done, they also allow room for correction or help in
correcting an intern on the project given.
Developers- These are responsible for the architecture of a system, they are
responsible of writing code that is prior to creating the web application at hand.
Designers- These are responsible for the task’s ui design in mock up, they help
provide a visual guide of how the project looks.
My Role: As a system developer my responsibility was to use the appropriate libraries
to ensure that all the features requested for a task are done. During the web
application development as a developer we go through a series of research and error
handling, not only that, Developers are responsible for the architecture of the system
in such a way that tasks are given to us using the scrum or agile method, these
methods aim at organizing a developer’s work through individual tickets that move
from Unstructured to Ready for Review when working on the tasks. A developer is
responsible of also making sure that the status of the tickets provided is updated as
soon as the task at hand has been executed. With that being said, ACA has helped in
mentoring the spirit of team work to enable us to work well with each other in
structured tactics. During project development a developer is required to provide a
daily update on what they did the day before, what they are going to do on that day
and what are the blockers that hinder them from completing the task at hand, this is
done such that it updates the leads on the progress and issues that developers are
facing.
Work Flow- The project manager along with the marketing team spends time
approaching potential clients or existing clients to get to understand the market. After
this, the project managers look at what information was gathered in regards to the
business needs and prioritize in creating features that are necessarily to meet the
requirements. From there, the team leads are briefed on what task will be handed out
to the developers so as they will be able to help or provide guidance to the developers
on what needs to be done. When all this is done at management level, the
development team is called for project assignment where by they will be briefed but
throughly such that they understand what needs to be done, then tickets for different
tasks are assigned to the developer
.
Provision of resources, tools and innovations assists in increasing the efficiency of the
operations
 Slack: Slack is an interactive messaging app particularly for business people
to be able to connect and obtain any information they need, In the software
development world slack is used to manage teams of development and to
keep it as a communication tool that would be treated as a work place. The
AFrican Code Academy used this system to maintain professionalism in the
work place and by creating channels for different aspects in the business such
as announcements and updates.This system of communication beats the
practical way of handling work updates and announcements or any other
communications that can be done virtually than calling for meetings thus
needing employees to leave off their work stations to attend and leaving off
work unattended or undone.
 GitHub: While other methods have been used before, GitHub is a central
cloud for project repositories specifically Web based developments. It is
particularly used among the dev community, as it allows for continuous
integration where Developers would be able to work on the same project
based on their different specialities. This platform has also helped learning
aspiring developers to be able to access code repositories for their benefit but
in mind keeping the fact that there are licenses made towards the libraries
thus they can only inherit code to use on their learning or development.The
ACA used GitHub to utilize project repositories that developers create or
tasks that they develop, this also helps the Africa Code Academy interns to
request reviews on their codes from their instructors. Unlike the old methods
of sharing code over a Memory stick or harddrive, GitHub is a cloud for
software development files
 Zoom: Since the internship was virtual the Zoom Video conferencing tool
was used as a work place area so as to hold meetings and other processes of
the day that need workers to interact and discuss. Zoom Video Conferencing
platform is particularly used in modern business interactions,, it allows users
to use both their camera' s and mic's to meet virtually and discuss topics at
hand. Even though said, Zoom has been adapted through out a number of
businesses and also used for socializing.
 CircleCI: CircleCI is an integrated platform that is aimed at running build and
test automated tests thus allowing CI/CD (Continuous Integration/Continuous
Deployment).
REFLECTION & SELF-APPRAISAL
Implementation of learning
Articulation: This involves one being able to clearly note out ideas that are logical and
done such that it becomes effective. In another view point, articulation is made up of
having a sound mind and a growth mindset,being able to listen and provide ideas that
are meaningful prior to the topic at hand. During my internship at Africa Code
Academy my knowledge with articulation grew such that it is easy to note down ideas
when asked to present some, not only that being aculate helps With ensuring that
there's integrity and reliance in one's honesty. For example, during Code reviews
normally questions were asked is regards to what is being taught and everytime when
the rodd is handed to me i would answer on the spot, giving out ideas that could help
one learn.
Hardwo rking: as an intern it was espected of the student to be a hardworking team
player, not only that, hardworking involves a series of self-motivation and dedication
traits, when one is hardworking it doesn't only mean you have to see them working
24/7 but rather a hardworking person is the one that knows how to organise their
tasks such that they could be able to complete the given tasks a step at a time without
rushing. Working as part of the Africa Code Academy has taught me that
hardworking is an essential tool that one needs to take advantage of because the more
one completes and surpasses what is expected of them it ensures that the employer
chose the right candidate for the internship placement. For example, every ticket
assigned for a task, my priorities would shift to ensure that every code review i had to
show part of the progress i have made.
Knowledgeable: The ability to find oneself having less supervision during work and
more appraisal for completing tasks at hand shows that, that person is a
knowledgeable individual of which they can be relied on. Possessing such aspect
made work much easier and productive. for instance, in one of the platforms that we
use for communication purposes there's a channel named #qustions of which was used
for developer questions if they are facing an error in their code, i utilised this tool by
sharing my knowledge and my research skills to help out my colleagues.
Innovative and entrepreneurial: Being innovative and entrepreneurial means one has
the ability to face risks to gain knowledge and creativity by taking up opportunities
presented. Innovative on its own defines the ability to be creative without doubt.
During my internship program i got to learn about how to learn to learn and how to
define business rules in ragards to software development and financing. Being
innovative opens up rooms of opportunities that if implemented one can be both
innovative and entrepreneurial. For example,Africa Code Academy Once hosted a
Hackathon for pitch decks, where every individual intern would be get to formulate an
idea that can bring about change or solve some of the problems we face today, the
competition taught us how to evaluate on what idea can be long term benefitial, i was
one of the interns that made it through to final due to how i did my pitch deck.
Collaborative: This envolves being able to work with others well, meaning one has to
be good with people which strenghtens team work, being collaborative facilitates
personal growth which is one if the skills that i aquired during the internship program.
Africa Code Academy introduced peer programming of Which the ping-pong method
was used where one intern was a driver (was the one writing code) and one was the
one was the passanger, this method helped in error handling or parts where testing
needs to be done. Since then, working with other individuals have Helped instill the
spirit of collaborative work. For example, during the Introductory to the program, we
were divided into pairs of teams and given tasks to work on, by doing this, interns got
to work together such that they complete the task at hand so they could Move
forward, the Africa Code Academy made sure that teams were switched so as to allow
more collaborativeness.
Problems Faced during the internship
Unstable Internet: Since the internship was virtual the problems faced were around
unstable internet connection or lack of internet connection thus not allowing onen to
continue productively through the week. This is a problem that was persistent in terms
of how it occured. Normally during these times, continuing to work on tasks at hand
though it didn't allow access to other libraries not installed into the project repositories
interns would still be able to continue working on features that didnt need installation
of new libraries. To eliminate or curb this development from reoccurring i had to buy
an internet router running on 4Mbps which decreased the unstable connection thus
leading to one being back online to continue with the internship as its supposed to be.
Lack of motivation: lack of motivation in a work place is one of the recurring events
that mostly happen at some point to employees. This is mostly caused by
demotivation by other employees or other interns or bosses at work who are harsh, but
though that might be something that is faced in almost any work station, being in a
crowd of different people taught one to know that because you work for someone it
doesn't mean everyone gets the right treatment and when one doesn't or if one feels
offended or harshly treated by others, you can use this as a motivating approach to
keep on trying better. Motivation comes from self, but the Africab Code academy
made sure it provides interns with mentors that would help mentor the them for a
successful internship training.
List Of Skills Gained
 Interpersonal skills
 Communication Skill
 Front-End development
 Team Work skills
 React testing library skills
 Presentation skills on pitch decks
 Clean Cooding
RECOMMENDATIONS
I would recommend that such programs such as the Africa Code Academy to be
implemented during the second year or 3rd yea of varsity as such programs help
innovate student's and introduce them to world standard software development.
I would also recommend that internet bundles or internet access to be provided to
students on internship year so as to be able to get 24/7 access to internet to continue
with the tasks at hand, i would also recommend the school to provide computer
machines that can work with software like VSCode.
Another recommendation is for the school to Rethink or re consider providing
students on virtual internship with attachment allowances so as these individuals
would be able to buy the required tools to use during the internship program.
The internship should be done when a student is looking forward to their final
semester so as to give them an opportunity to be hired by those that hire them as
interns. Thats ofcourse in case the students proves to be the rightful candidate for the
spot.
CONCLUSIONS
The internship program is a great opportunity for students to acclimatize to
professional work grounds so as to prepare them for what is to come after graduation.
The program helps one to enhance their skills through interacting with other people of
same or different skills. With that being said, the Botho Graduate Profile is a great
program that can not only help students of Botho University but also help those who
are of need.
Download