At the start of the last week my new colleague Ayman and I had a small meeting with Islam and he talked to us about a new project Ayman and I will be working on it. He gave us an introduction about the project, the benefits of the project, and who we are targeting with this project. Islam told us we will work in a scrum fashion with a weekly sprint.
Scrum and sprint were just some technical terms to me and I had to know what they actually mean. At first to build a product you need somehow to manage the process of building that product -your project-, and there are many techniques and methodologies to manage your project such as waterfall methodology, Agile methodology .. etc. Waterfall methodology requires to complete an entire phase before going to the next phase. You start with the planning the whole project and sometimes without even having the complete vision of the final product and then start developing the product ..etc. This could take months and a minor problem takes you back to the previous phase and more time wasting, and by the time you deliver your product to the market you may found that it’s already too late, especially if you are in the Software business, and here comes Agile. If you are in the Software development industry you must hear of Agile which is wildly used among other methodologies. Agile simply is a set of methods and practices used as a tool to manage software projects and is preferred because it’s flexible and adaptive to changes, faster development and more.
Back to scrum, Scrum is an agile project management methodology or framework that used primarily in software development projects, it’s used to increase the effectiveness of team collaboration on complex products and complex problems and deliver new capability and features to your product every 2 – 4 weeks (which called sprint) with the highest value. So basically you do enough planning to get started and then start building, testing and then reviewing and do that again with new capabilities.
In Scrum there are three key roles that are needed; the product owner that define the features that are needed in the product, the scrum master is kind of the leader for the team, running the meeting and keeping things going, and finally the team itself that will be working on the project.
There are 3 artifacts or documents that are used in Scrum. First, the product backlog where featured got prioritized known as user stories that could go into the product and it can evolve and change with every sprint; user stories are a way of describing a feature. Second, the sprint backlog which contains the highest priority user stories, they get estimated for size and committed for the next sprint. Third, the Burndown Chart to show the progress during a spring on the completion of tasks in the sprint backlog, this chart should reach zero points as the work is being completed.
There are lots of things about Scrum and I just gave you a glimpse of it, so if you got interested in the Scrum methodology you will find tremendous resources online.
Regarding the project, I will be responsible for the Android application side and Ayman will work on the Server side.
Our first task was to start drafting the backlog. After finishing our first draft of the backlog Ayman and I started working on the APIs. Now there is a server and the application will make a communication with the server we need to agree on sets of APIs, so we can be on the same page in terms of communication and understanding each other. But what do I mean by an API?
Applications connect with each other to allow us to book a Mishwar ride and order our favorite food from our favorite restaurants with just some types and clicks, that won’t be possible without the APIs. API stands for “Application Program Interface, API is the messenger that takes request and tell the system what you want to do, and then returns the response back to you. You can say API is a software intermediary that allows two applications to communicate with each other. Each time you use Instagram or check the weather on your phone, you are using an API.
Last week Islam also gave me access to related codes in GitLab that I can use in the project and I start working on them. These codes were written in Kotlin.
But what is GitLab and what is Kotlin, and how I start learning Kotlin and also what I learned from these codes. These topics are for other posts. So that’s it for this week.
Till next week.