Enable javascript in your browser for better experience. Need to know to enable it? Go here.
Blogs Banner

Level Up Kampala: New University Training Program

Recently, Thoughtworks Kampala hosted a seven-week long training program called Level Up, for students at the Makerere University in Uganda. The aim of the program was to teach students best practices in software development as a part of Thoughtworks’ capacity building program.

Background

Since Thoughtworks opened an office in Uganda two years ago, we’ve collaborated with universities and technology hubs in the region. Our goal is to evangelise agile, continuous delivery and design practices and open source. While the concept of training university students wasn’t new to the office, we adopted the name “Level Up” from our sister office in Australia. Level Up in Australia is a series of programs that help create a bridge between the software industry and academia. The program has evolved from a three-week-all-day schedule with 17 participants in 2013 to a seven-week, once-a-week schedule with 21 participants this year. We incorporated a lot of learning based on the feedback we’d received from earlier participants and facilitators into the planning of this year’s program. We tried to make sure that we addressed all the challenges we’d faced in our last program in Uganda.

Course Structure

The first program we ran was a three-week Object Boot Camp at the university. Since these projects were to count towards the students' class record, they wanted to focus on completion. Quality and best practices, however, took a back seat. 

Knowing this, we had to rethink our model to organise the new program. Professor Hugh Cameron from Makerere requested that we incorporate a project like problem for students to work on during the training. He also requested that we teach them how to build a client-server application using RESTful web service architecture.

Topics

Content

Environment and Tools

Ubuntu+ IDE + Programming Language + Git

Version Control Systems + Pair Programming + TDD

Git commands + techniques of PP + TDD on very simple examples

OO basics 1 + TDD

SRP + Expressing intent + Four principles of simple design

OO basics 2 + TDD

Value objects + Delegation + Collaboration + Inheritance

Continuous Integration + Frameworks 1

Travis + Snap, Play or Spring

Frameworks 2 + Deployment

Frameworks continued + Heroku/Appfog

Finalise Project

Finish up + Q&A + Agile

Facilitated in Country

In past capacity building initiatives we had a challenge finding facilitators to conduct bootcamps and trainings on a regular basis. Since we don’t hire anyone to be an exclusive trainer, we have to balance these activities against our delivery commitments to our clients! So, we decided not to rely just on Thoughtworks’ global network to send facilitators for such workshops. Our local office had to step up and take this responsibility. We had spread our content over seven Saturdays. As with everything at Thoughtworks, we needed a pair to lead each day – a total of 14 facilitators. To make it an easy sale, I asked facilitators to commit just a Saturday each. Before we knew it, we had more than seven pairs available to lead the program.

Internet connectivity

On our earlier program we had a tough time grappling with poor Internet facilities at the university lab. It became quite difficult for students and facilitators to work effectively with an erratic Internet connection. So, we decided to host the program at our office on Lumumba Avenue. Apart from a good Internet connection, the facilitators also had the incentive of a familiar venue.

Candidate selection

Like any other learning program, we had to shortlist participants with relatively similar knowledge of programming. We don’t have a very huge office, so we always had limited slots for the program. In the past program, the facilitators noticed the students had varying degrees of skill and experience. This made it difficult to cover certain topics as some students took longer to get up to speed. This time, we worked with the Software and Business Incubation (SBI) lab at the university to shortlist students with similar skills and experience. Alongside, we also gave a stronger preference for women in the selection process.

Technical sessions

We kicked off the program with an insightful discussion between students and members of the Thoughtworks Emerging Economies Leadership Development (EELD) team at the university campus. Students talked about their experience as upcoming technologists and asked the team several questions ranging from startups and business, research, women in technology etc.

We followed up the kick off with seven Saturdays of training at Thoughtworks Kampala. Each weekend had a similar pattern. We’d begin the day with an interactive lecture on a given topic. In the afternoon, the participants would practice the techniques as a group while working on the class project. The Thoughtworks lunches made for a great opportunity to not just ‘talk tech’ but to also build bonds that we believe will outlast the training!

We are building a unique community of Africans developing software in Africa for Africans. Come join us! 

Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.

Keep up to date with our latest insights