The team met to discuss the project plan and there were a lot of details to cover. As we went through the requirements, it quickly became apparent that every decision that we had to make had to be considered holistically. ex. how it impacts UI/UX, the required APIs, team-mate’s reactions and comfort level, tasks allocation, etc.
1 example that stood out was this week was the Login Flow: Do leverage on OAuth and avoid having to redo the administrative user registration flows? Do we have to create traditional login logic on the server and have the datastore store user-data along with the authentication logic?
Being familiar with OAuth and understanding its flow, I was quick assume that everyone understood the benefits and the amount of time saved without having to deal with creating screens for user registration, logic for authentication, etc. However, as I presented my idea, I realized that I had to back off and educate the team on how the login flow works, what is a JWT token, and how it would actually translate into a login flow in “baby-steps” from the client and server perspective.
This week, I felt that it was more education and communication work compared to coding/technical work and I am glad that my team-mates were receptive. Somehow I am pretty happy and feeling positive after this event. I realized that in order to sell an idea, I had to do the ground work and have the patience to explain and communicate clearly. I believe this will be helpful in the real software collaboration environment.
Let’s get some coding done next!