An Excerpt from iLab's March 2014 Visiting Expert - Jukka Heinonen
Scrum is a management framework that follows agile software development principles. When the iLab’s Country Director, Teemu Ropponen, suggested me that I should visit iLab to share some of the software development knowledge accumulated over the years, I didn’t need much time to consider. It sounded so exciting that I couldn't resist.
After the initial excitement, I started to think about what would be the most valuable lessons I could share. I really didn’t know much about Liberia and my trip would be my first real visit in the continent of Africa. As I am a software development professional, teaching some programming language seemed the obvious choice. But even though I started as a software developer, my coding skills have become a bit rusty as I have had more managerial roles recently. On the other hand, I’ve learned that even though the coding skills of individuals are at the very core of software development, the efforts are wasted or not effective if the what should be done and how it is done questions are not addressed. As the ‘just start coding, ask later’ approach is a common pitfall everywhere I know, probably the same applies in Liberia, I figured, and that formed the core for my lectures.
Based on my background, I took three views to the what and how:
1. Software project management.
2. The next one extended the topic by introducing Agile Software development and the Scrum methodology.
3. The third course was about Mobile Software development and especially on what to consider before writing the first line of code.
Even though software development has some special characteristics, the basics of project management still apply. There are so many things to manage and control. In order to succeed, you need to plan before doing, coordinate the efforts of multiple people, communicate a lot to achieve shared understanding, imagine what could go wrong and figure out what the client expects and really needs. There is always more work to do than you have time available so you need to prioritize all work items. And it is not just such high level issues. You may also need to figure out how to fix the air conditioning, how to substitute the key developer that has fallen ill or figure out why two team members are no longer in speaking terms. Even though the project management basics may sound boring, in reality the software development projects are usually quite the opposite.
Agile development assumes that it is difficult or even impossible to fully define the features of a software product before doing any implementation work. It is hard to know beforehand what exactly is needed from a software product, which features are more important than the others and how they should be best implemented to fulfill the needs. Agility addresses this by focusing on individuals and their interactions, collaboration, getting feedback based on working software and accepting changes throughout the project. Both the resulting product and way of working are improved gradually based on what has been built and learned so far.
Mobile applications and services have a huge potential. Mobile devices are more affordable than computers, they go with people and they have many features that allow a wide range of uses. Mobile applications can fulfill many needs and solve everyday problems. However, the mobile landscape is fragmented in many ways. There are a lot of different manufacturers, operating systems, screen sizes, features and mobile operators out there. Even though the screen sizes have increased and touching is quite natural way for us to interact with devices, the user interface is quite limited. These are one of many reasons why mobile application development is challenging. Before implementing any mobile application, the use case, target group and features must be considered carefully.
As my visit was quite short, having three courses was quite a crunch. As there were a lot of big topics to cover in a handful of lessons, the lessons were more theory than practice. I was extremely happy that in all classes we had a lot of discussion on the presented topics. Discussion deepens the matters and makes things relevant to the students’ environment. I want to thank all students for their enthusiasm and active participation.
You really need to apply the taught matters yourself before they really become adopted skills. Thus, some kind of follow-up to these introductory courses would be beneficial. The follow-up could be a software product development course where a small development project is done as a team over a longer period of time. Or the follow-up could be that a group of people interested in one topic start meeting after the course to further share experiences discuss new topics and possibly working on joint projects.
There are so many ways in which information technology could be used in Liberia, not only to make things more efficient, but also to really improve people’s lives. Liberians are best positioned to understand the needs in Liberia and determined to overcome the challenges. I think that iLab is doing a very important work in Liberia to teach IT skills, provide access to the wealth of information on the Internet, and to work as a hub for people interested in utilizing IT in Liberia. It will take time to build the infrastructure and to learn all the needed skills. That’s why iLab’s work is so important right now.
I want to thank you the iLab staff for so warmly welcoming me and for their support during my visit. Everything was well-organized and I could focus on my courses. I had a wonderful, fun, unforgettable month in iLab and in Liberia. I really recommend iLab for anyone considering sharing their IT knowledge.
To learn more about me, check out my Linkedin profile: fi.linkedin.com/in/heinonenjukka/