Initially, choosing the problem statement was a slightly difficult, I would like to play to my strength and reputation of software development. With all the problem statements, all the problem statements seems to have to the possibility of being solved with software solution. But in the end I chose the Workato challenge because the possibility of creating a automation solution really enticed me compared to solution such as the OCBC scam problem statement.
When we came into the first lesson of PFD aftering selecting our classroom for our respective problem statements, we were made to write our strengths and weaknesses on the cards.
I came into Workato challenge presenting to the group as a wonderful and expert level software developer, hoping that if anyone was to pick me, we were going to do a software solution as that was my major strengths that could definitely helped a team to victory. With my talent and already plentiful portfolio of experience, I am very sure that I could helped my team achieve a web, desktop or mobile solution.
When it was time to generate ideas, most of the ideas that came out were vague and directionless. Nevertheless, the lecturer chose those the people as group leaders, and forced to pick the cards of the people they wanted in the group out of their discretion. Hanisah chose me, along with Ming Feng, Jie Ren and Denzel Lee.
During the meeting with the stakeholders, we met with Lava from Workato and Steven from the Business Technology Team. What I was impressed was the speed and accuracy Hanisah was quick in taking notes of all of Steven and Lava's background, what they currently used, and their pain points. At that point, I thought that the professionalism of the team members would be great asset in achieving greatness in the this module.
When we came together and pitched the our ideas, I pitched my ideas to my group members of a software solution of a pop for the employees but I put that idea down after reading the room and finding out that my team members might not be interested in that kind of solution.
Afterwards, we came together to setup the Trello board after deciding to do a Snowflake integration with Workato to Slack to notify the people who had not done the security training.
While working on the solution that we came up with, we were assigned conflicting roles. I was assigned to do Snowflake but the another team member had already created the database and started working on the query. I was confused, and asked if there was any specific item I should worked ion and had no reply. Everyone was working and I felt rude to interrupt further. The whole experience was confusing felt lost and guilty because I was not able help my team members. The only time when I was valuable to them is when they faced a specific problem like Snowflake queries not working due to errors int the SQL script.
When I thought I had the opportunity to make the most impact so far in the group, I was wrong. After completing one of the wire frames for the solution in Adobe XD requested by one of the our team members, I realized that the team member has already completed it in Figma. Looking at some of the wire frame for the solution, most if not all of them were unnecessary, and to be honest, I would question why we need wire frame for a no code solution?
Around the time when we were working on the solution, I also started applying to companies for my internship the next semester. That let me have to prepare for interviews for a week, which led to my team finishing most of the solution before the Hackathon in a single weekend.
If you thought my experience was bad before the hackathon, and I thought so myself, you and I thought wrong. The hackathon to summarize the work done during the hackathon were, configuring the Databox and tweaking the Workato recipe and Snowflake SQL code. And like before, I asked if there was anything I could do, but it was a little better, I had the job to fix a bug with the Workato recipe. But guess what? There was no bug to begin with and the recipe magically fixed itself. I was immediately placed with nothing to do, and left to idle, asking times again for something to do. To keep it short, I was asked questions regarding the Snowflake, Workato, and Databox which required relatively common sense for me to solve for them for the entire 2 days. I was again left feeling lost the entire hackathon and guilty for me to go to the call for the stand up meeting. One of the days I had to leave earlier to attend a job interview to secure a job contract I felt relieved compared to my position at the school campus, idling and waiting for work to be delegated to me.
When it was the final day to come for the trip to Workato to present our solution, I was so unready that the solution was partly presented badly on my part. But the overall solution was unpleasant, and we didn't manage to convince Workato that our solution is good. Looking at the comments provided by the Workato employees, our solution. At the very least, we got a decent group photo at Workato. I am midly upset that I was looking down when the photo is taken.
We had a break after the final day presentation of our solution, I had a fun time at Malaysia spending Christmas with my family. But the bland and bleak atmosphere settled in at Week 12, with half the team at the table and the other having medical reasoning for their absence. The only people left, were the group leader, Hanisah, and Ming Feng. Despite the bleak outcome of our first iteration, I was determined to make up for it in the second iteration. During my trip in Malaysia, I was not completely stagnant. I was active even after the first iteration was a complete flop and had reflected on some of the issues in the first iteration on my part. During the first week, I did rapid research on my own, trying to think of the solution from a software perspective, something that I was always good at. I even had to ask the group leader of the winning team, Roseller for some advice directly.
To continue, I requested his presentation slides, which contained his ideas. Even though it was a rather blunt way of asking someone for their ideas, Roseller, being the kind person he is provided his files for the presentation. After looking through his solution, I was surprised, at their very concise and clear solution, as an IPAAS, it solve the necessary items and requirements without needing too much development time, comparing to the solution of other groups which suggested the development of an LMS for customization purposes, which flaws with it's high cost ratio to development time put in to it's own customization flexibility.
Initially before asking Roseller for help, I initially concocted the idea of a software wrapper we made to connect an LMS to Workato Integration and then to Slack and explained it to the remaining team members who were present for the first lesson for PFD after the break. With the help of Roseller's idea, I decided the best optimal move that we could make going for the improvement in the second assignment was to make an IPAAS for LMS Integration with Workato to Slack. I started testing appropriate LMSes that we could deploy to a web server and explained a lot details that we needed to do for the second iteration.
I continued from the start of the second iteration, with a new refreshed and energized, mindset to finish this module with such a good work done and present at the end. Ming Feng quickly made the user interface I used for reference to write the ASP.NET code for the web application component of the solution. To explain further, the solution would contain a web application would used to as a user interface for save the settings needed to configure a second web application that would handle HTTP endpoint that the Workato HTTP Polling will be pinging the and sending back the data to automatic the reminders for the Workato employees on Slack. For the second application, I decided to implement it in Python Flask which I relayed to my team members. The following are the work that we manage to complete:
For the home page, Ming Feng has suggested and eventually we decided to use Google Charts to display as a dashboard, and the way that we retrieved data from an API endpoint. The endpoint is also designed in Python Flask to retrieve the LMS data. The goal of structuring this way, is that the the LMS data can be retrieved from a common endpoint, displayed on the dashboard of the home page of the web application, or polled by the Workato recipe in order to retrieve the employees who didn't do their security trainings and remind them using Slack Integration with the Workato platform. Me, Ming Feng and Hanisah get together, with the absence of the rest to do the endpoint and website. The hardest part of getting them to do that was that they weren't skilled in programming in general and had to guide them mostly to guide them to write the code that I wanted to. But they put in the effort to be independent at points where I was writing the endpoint
During one night of what is supposed to be early Wednesday morning, the week before on Friday which we had to submit the our solution, I was working on the solution alone, sleep deprived. I spent the whole entire morning trying to get an endpoint to work but to no avail. I looked at the time, and it was 5.30am in the morning. We were supposed to present what we have as a prototype, and after spending a few minutes recounting the past few days of sleep deprived nights and the effort I put in and the minuscule output it return led me to totally give up the current solution. I was so tired, sleep deprived, depressed that I decided to skip the PFD class that day. I signaled to my team members to come up with another solution or to continue on my behalf.
When I woke up, mildly refreshed, the first thing that shows up on my phone is one of my team member messaging me that the PFD lecturer has rejected our half baked solution. I wasn't surprised at all but felt pretty empty about the current situation we were in.
My team members decide to postpone the execution of a plan B on the week that we are supposed to submit our PFD solution to make way for all the rest of our assignments. Of all the team members, I am very far behind in terms of group and individual work related assignments in other modules because I was the one mostly managing the Firebase, the ASP.NET, Python Flask web application, VM Instance and Google Cloud Platform. The two other team members that were mildly involved in the process of creating the applications were Ming Feng and Hanisah, two people who I can count to have an independent motivation. Although they were not so technical people, they gave their best to assist in the creation of the software solution.
On Monday, we decided to go with Ming Feng's plan of using Odoo as a learning progress tracking tool. In the HR Management System, we can add courses which tracks the completion rate of each student that enrolls in the course. We used Jie Ren's idea of using UiPath to automate the process of getting the data from the data exported as a Google Sheet from Odoo to triggering a Workato recipe to send reminders to employees who have not completed their security trainings. I took the job of ensuring the HR Management System course quiz were created. The solution reused alot of the Workato recipes which allowed us to complete the solution in a one or two days.
After finalizing our solution, we joined multiple calls to record our respective parts for our demo video. I edited the video, cutting away unwanted parts and piecing the video together. We checked everything was ready to submit and rest is history.
Overall, what I meant by horrible, was just a lack of sense of teamwork and direction for the project made me very confused most of the time and helpless whenever they charged into a solution without some coordination. Some of team members will probably miss out the detail of the software solution of the second iteration because they weren't involved at all.
I don't have any grudge against my team members but I just had an overall more polarizing experience from this module compared to my team members even though we are from the same group because my other team members have a fairer share of having their ideas or solutions be part of the actual solution. I personally feel that I could better express my skills and experience in another group in the same problem statement, but I do not regret being chosen.
To summarize, this experience has not really been enriching and has been frustrating for me but it reinforced my idea that not all experiences will be good and we will face failure along the the way to success. But the most important thing is that writing blog like this has been enriching, not only a pure reflection on sequences of event, but the emotions that we might feel during it's execution.
I am still a god tier software developer even after this man made disaster, look at my Github profile, https://github.com/joshuang321 for more details.