Let us talk about what I did for the last year. After college Ive started working as Android Consultant, which had its ups and downs. This is what I want to talk about today and how a normal day looked like.
A normal day for the last year
As being a consultant normally includes a lot of travelling I will devide this into two subsections. The first for the time I was at our office and the other section about travelling.
For the whole time I was assigned to the same project. This project includes travelling every second weeks. I am not allowed to talk about the project or for which company weve worked, but I will try to give a general overview about how such a project works.
Weve used SCRUM for organizing our daily work. SCRUM is an agile framework for managing software projects which short, normally two weeks, iterations. The big advantage is that the customer or project owner can change his mind about nearly every detail every two weeks. This two weeks iteration is called SPRINT. Each sprint contains several tasks. The amount of tasks depends on the velocity of the team and the complexity for each single task. We need to keep this in mind for later. For more details about SCRUM, just ask Google or Wikipedia. One little and important thing: Each day the team has a short meeting about the progress. In this meeting you are just telling the team what you did yesterday, what you are planning for the current day and if you have any problems.
Normally, during the days in our office, Ive started the day which slack. Slack was our main tool for communication. As I started working early, I was also the first person to leave work. So I started with reading the messages and mails when I was gone. Depending on the problem this took up to 10 minutes each day. After this Ive logged in to the VPN and took a look at our SCRUM board. The board contains the tasks for the sprint and you can see which developer is working on which tasks. It also provides a basic idea about the progress for each task.
If I was done with my tasks and there were unfinished tasks left, I started working on a new tasks or told my coworkers that I have some capacity left and could help them, if needed. A task was done when a short Definition of Done was completed. This means that the Unit tests are green, the merge request was successful and at least one developer took a short look at your code, regarding style, bugs, smells and so on. After all this was completed the task had to be burned, which means that we presented our work to the customer. If he was statisfied with our work, he approved the task otherwise we had to do some refactoring. We called this process burning. Depending on the complexity of a task this could take about one hour.
Slack was present nearly every minute. Asking coworkers, the product owner or sometimes the SCRUM Master is a very important part of being a developer, regardless for which platform or programming language! We used slack also for discussing how to implement things, asking questions about parts of the code you dont know and where to find something.
Each week when I was in the office contained the grooming. Grooming is a relativly long meeting with the analysts in which the developer team is sizing the tasks for the upcoming sprint.
The days in the office were pretty straight forward: Searching for a free place to work, setting up notebook, putting on headphones and starting the daily routine describes above.
As a sprint is two weeks long, we need to plan the next sprint every two weeks. As the customer was part of this meeting and the planning is very boring aswell as time consuming, we all meet in person.
For me this means a lot of travelling and a lot of time in the air. Our first meeting was at 10:30 am which means I had to get up at 4:30 am, starting with my morning routine (sometimes a bit slower) and leaving at 5:40 heading to th airport. At the airport go throu security check, waiting in line at the gate and finally getting into the plane. The flight was about 50 minutes, then leaving the plane at roughly 9:00 am. I personally made use of the public transportation system as much as possible but other colleges prefered to get to the customer by taxi.
The first meeting was a presentation of the work done last sprint for the customer. Each workbench (iOS and Android) presented their work in a 15 20 minutes timeslot. Normally the customer is asking questions about the layout, behaviour or other little things afterwards.
When the presentation was done, we meet in private without the customer for our retrosepctive. We talked about the good things and the bad things, problems of the last sprint and wishes for the upcoming sprint. In average I was able to be at the hotel at 16:30 pm. Most of the time I was really tired and exhausted so I wasnt in the mood to leave the hotel. Most of the time I went to the next grocery store and bought myself dinner. Later when I got used to this routine I started running and afterwards enjoying my dinner on the bed and watching TV. Ive seen a lot of different hotels which are close to the customer and most of the time it was not possible to watch Netflix or something similar.
The next day was breakfast between 7.30 am and 8:00 am and heading back to the customers HQ for Planning 1 and Planning 2. So a day full of sitting around and talking with others. This may sounds interessting but I can tell you, noone (not even the customer) was enjoying this. I was long, boring and full with senseless discussions. If you have some people with economical background in your team, I feel sorry for you At roughly 4 pm I was heading back to the airport. Same airport routine as the day before. It was very exhausting so when I was back home at 9pm (planned) I got directly into my bed. Most of the time the organization at german airports is very bad, so the planned time of departure was nearly never correct. Planes got cancelled or delayed one or two hours, which means spending more time at the airport, without getting much overtime.
The part about programming and development was very cool with nerdy coworkes. The other things like wasting my lifetime at airports, in hotels or in senseless and boring meetings made me rethink my descision about being a consultant. On the one hand you get into very different projects with different technology, on the other hand you will loose a lot of your sparetime. I think this is just a personal descision. I am happy and exited to start my new inhouse job next month!