I want to talk about my experience working on this project and my feeling working with a team and a client.
The first week
Like I said before, the first week was almost wasted, but I don’t feel like it was like that at all. We were given a set of requirements for the project, at first glance it would seem a simple “project”, we met and thought about what was the best approach and everything that could make the project appealing to the client. But in the end it had the opposite effect, the client told us that what we were trying to do was nothing like they said at the beginning and told us to do it again.
From this moment we started to have longer meets to fix our approach and deliver a better one. On the first day of the second week we presented it again and it was finally accepted, not only that but we received a lot of feedback about what went wrong the last week, both from the client and some of our mentors.
The second week
From this point we finally started coding, the reason I said last week wasn’t wasted at all was because we documented ourselves enough to start the project so as soon as we got their approval we started the application.
We divided the task using trello, so everybody knew when a ticket was completed or what was in process or done. This is the first time I used this system to track the process of a project and I have to say that it is very efficient, because as I finished some of my tasks then I went and saw what was left and if I was behind everyone else they helped me.
The second week’s meets were long, every day we would meet early, talk about our task and then meet again later to see the progress if it was the deadline, but it was because we were behind the schedule that we needed to do so.
By the end of the second week we have the walking skeleton of what would be our final product and present it. Our project had two parts: an API and the App. What we presented was the app, we showed the minimum viable product, the one they asked at the beginning, everything else would be implemented if we have time.
The third week
We continued with the workflow we already had, now that the app was ‘completed’ we started with the API, we decided to do it like this because we weren’t sure the platform we’re using would be used in the future, so in case that one they decide to change (which we were told was not very likely to happen) they could keep the progress. This was probably the fastest part of the project, all of us already have experience with this thanks to the last phase so we decided to use most of our time fixing things from the app.
The day of the demo we received a lot more feedback, things that I’ll explain later because it is very important.
The last week
We were too confident about our progress, for us everything was good and maybe we had time to do the ‘nice-to-have’ we’re thinking at the beginning
Little we know about the problems we would face later. Two days before the deadline we found a serious problem with our database and how the user would interact with the application. We stayed the last two days trying to fix this problem in a way that future developers would continue with the application without worrying about this problem. It was the day before, or actually the very day that we solved this problem but because of that a few things were left uncompleted, they weren’t needed but we wanted to implement it.
The final demo
The final demo left me thinking a lot about this phase and what we could have done better, while we delivered the final product we also made a big mistake. Everyday we reunited with one of the clients, we talked about what we did the day before and what we would do that day, this means we have contact with the client everyday but even so in the end we realised that we never really talked to the client about the project at all. The final day they told us that they didn’t like the app’s design at all but far from feeling bad I felt that it was just too obvious, we never actually asked about how they thought about that part, the part the final user would be using. We’re given more feedback, things that a real client could ask or disagree but if you are an academy reading this then I’ll let you experience it yourself, trust me, it’s worth it. :)
What I learned from this phase and what do I need to improve
I learn a lot, not only by myself but also from my teammates, other developers and the clients.
One of the thigs I learned is about being realistic, we tried to impress the client trying to add more features and that cost us a few days that could have been used to improve the product that the client asked for.
Being able to define the scope of the project, we were thinking about how ‘we’ would like to use the app, we almost forced our perspective to the client, but in the end they are the one who decides what they want.
Talk to the client not from a technical point of view but as someone who isn’t a developer. The client should be able to understand what we’re trying to do so they can decide what is better.
The hardest part and what we need to improve is about the scalability of the project, I still need more experience here because it’s easy to say what resource we’re going to use but the important part is about how the system is going to behave as it grows bigger. Not only in term of computational resources but also also in monetary terms.
IF YOU ARE NOT SURE ABOUT SOMETHING THEN ASK!!!! not only in this phase but in the whole program, to your mentors, the education team, clients or even other developers. Thanks to this phase I talked to other developers and learned a lot from them, really, they always help when you ask.
Even if the final product wasn’t like we wanted, what we learned from this phase and everybody involved is very valuable, from soft skill to technical skills. I’m already implementing some of those in my personals projects and even found motivation to keep with the program and see where can I get from here.
See you next time!