Skip to content

Sprint2

Ali edited this page May 7, 2023 · 12 revisions

Scope

Sprint 2 issues

Challenges and Lessons Learned

  • Pull from main before the merge request: We had a lot of merge conflicts when reviewing the merge requests originating the fact that our local versions weren't up to date with the main branch

  • JSON deserialization in Arduino: In the beginning when working with this task, we found it confusing on how to optimally approach this since the researching enlightened different ways of doing it accompanied by different libraries. The main takeaway is that there are many ways of transfering and storing data

  • C++ is more low-level than Java : Since we were accustomed to the more high-level-language Java, we were forced to devote time in understanding the foundational logic of C++ intending to meet our ambitions. One of the problems that arised in this sprint was that declaring a string where it would make sense in Java would give us a compilaiton error. We learned the two following things: std::string --> Used for manipulation of strings and char* --> Pointer to data type char

  • MQTT Broker: We quickly realized that the public MQTT broker services that we were using such has hivemq.com or emqx.io were not very stable and were causing lots of disconnects and bugs within in our product, so it was clear to us that the broker that we're using should ideally be our own locally hosted one to steer clear of any potential bugs.

  • Commits: We learned that when committing, it is a better practice to commit in small cohesive commits instead of a single large one, this has many advantages which include safer failure prevention due to more frequent commits, other members getting features earlier, and less conflicts.

Learning Outcomes

The importance of working in an agile way as a team: Even though we have a discord bot in our discord channel that notifies us when changes are made remotely, we still need to communicate when important pushes to main are made. As for now, we have a discord channel solely responsible for storing the messages from the bot, but these changes represent every possible modification pertaining to this GitLab project (Wiki, ReadMe, Milestones, Issues, Boards, commits in every branch, ...). Although this wide range of information brings awareness to each member in the group on what changes in the project are made, we realized that in the context of finding the merge requests, the channel becomes bloated caused by the large quantity of messages. Many members have therefore started coding on a new feature using an outdated version of main, entailing larger merge conflicts in the future. In other words, we want to create a new discord channel for the bot that only notifies the acceptance of merge requests that allows us to know when to pull. Unfortunately, this feature is beyond the scope of this project, and we have a more time efficient solution: The individual who accepts the merge request has to notify the entire group to pull from main. We need to communicate important remote changes that quickly needs to be pulled to surpress the severity of the presumptive merge conflicts.

Presentation

Presentation

Sprint 2 Retrospection

Overall, we feel that sprint 2 was extremely productive and have delivered many of the planned out features for the app during it. From the android UI to the terminal, our progress was exponentially better, indubitably due to increasing familiarity with the technology we are working with. Communication regressed and yet progressed at the same time. We met just as often on campus however we started communicating less while we are away. That change could have led to increased productivity as each member knew their role to play in the puzzle.

One thing to note, the TA's highlighted that our commit numbers were either off or that some members are not doing enough. Upon reflection we beleive it was improper commits at the start of the project as changes were pushed in large chunks instead of smaller pieces. Not to say that unequal contribution is not completely absent, as with any team project, the degree of contribution will vary based on numerous factors.

Clone this wiki locally