Witsmind welcome a couple of new interns to join the Witsmind Team, on the technical team. They arrived in July 2019, worked until September as a process of joining the company. They later on started serious work and got paid a enumeration that month and since then they are now treated as full team members with real responsibility for real projects.
“My First Day at Witsmind”
by “Michael Tendo Ssemwanga”
My first day working at Witsmind began how I expected the first day to begin taking a lot of notes, setting up the development environment, and getting familiar with the company, its values, and products. Myself and the other interns Derrick, Stuart, Kelvin were sat down in front of monitors and told to read through brochures and documents about the company and presentations given by the Chief Technical Officer. It was evident that he had clear views on problem solving and building intelligent software solutions, ideas that resonated through the company and shaped how every member of Witsmind operated.
I had envisioned for the rest of the year that I would be doing a lot of grunt work tasks that didn’t require much thinking but needed to get done. I heard stories from friends about how they ended up doing menial tasks at other work-places, so I was very happy to find out that an entire program had been designed with the goal that we finish the internship fully prepared for the world of software development, startups, and problem solving. We were assigned weekly tasks and had time set aside to discuss the projects with the whole team especially on Mondays, who were also doing the assigned tasks.
The two books we have been assigned are;
- Getting Things Done.
- Code Complete.
- Seven Habits of a Successful person.
The first is aimed at improving our productivity and the other at improving how we think about programming and constructing software solutions. Ironically, I have owned a copy of Getting Things Done for many years now but have never managed to set aside the time to sit down and read it!
By the afternoon of the first day Isaac from the support and development team had introduced us to the SCRUM software development process, an agile development framework, and before I knew it I was working on real world projects. Joel pitched in to explain how the projects were generated and where all the data was kept in the database. I felt very unprepared and under qualified to be working on my first day, so I was constantly checking back with Isaac and Joel on any tasks assigned.
School vs. Work
Before joining Witsmind I had never programmed in PHP. I considered myself an intermediate programmer having just finished up my third year in Computer Science in Makerere University, but I was faced with the hard truth that I hadn’t done that much actual development other than an Android application for one of my classes. I don’t feel as encouraged to develop software solutions as I should.
I felt very out of place in the office while Makerere University stood proudly looking down at me through the window and a code base written in an alien language before me. I poked at the code, changing character-by-character, line-by-line, routine by routine trying not to blow up the program before I accomplished another task.
Much of what I had read in Code Complete started to fall into place and conversations I had with the team made more sense: constructing software transcends what language it is written in, the programming language is just a tool.
The First Week
By the end of the first week I had code in production throughout the system, in a system that all of the company’s customers use. I cant imagine many people being able to brag about that, especially an intern on their first week! It was very exciting! I remember sitting down at my desk on that Friday afternoon reflecting at how much PHP I had learnt in a couple of days as opposed to the numerous programming languages I had used throughout university for assignments. It was a profound experience sitting there questioning how little I learn during a semester of university compared to a week working with Witsmind.
The Development and Release Process
After developing a solution to a bug or adding in a new feature, every new piece of code has to be put through Quality Assurance. This involves another member of the team scrutinizing the source code before passing the code along to be tested extensively. In the beginning weeks, QA session was a daunting process and every task sent back felt like a jab at my incompetence, even if the issue was just “Comment what this variable is used for or Use spaces, this is hard to read”.
This process ensured that I was actively applying what I had learnt by reading Code Complete and every time I submitted code I endeavored to make sure I wasn’t repeating my mistakes.
In the coming weeks I will undertake a larger Intern Project. Its very exciting approaching software development formally as opposed to a small project in my spare time. Consistent with the Witsmind processes, the project will require clear definition of the problem, understanding the clients, and proposing a solution.