Skip to content

Latest commit

 

History

History
328 lines (156 loc) · 33.6 KB

VALUES.md

File metadata and controls

328 lines (156 loc) · 33.6 KB

XP Values Journal

This document has been created to maintain a weekly journal entry to ensure that the Agile XP values are preserved during the implementation of this project.

Week 1:

1. Simplicty - Niral Koradia

“Simplicity is the real beauty”

From the starting of the project, all of our team members have decided to go with the simple approaches throughout the project implementation. We believe that for all complex problem, solution is always simple.

In the first week, we discussed about the understanding about the project requirement and things that we need to research about the technologies. Our goal is to make best application for the given project requirement keeping in mind time frames and approaches. We, as a team, agreed to come up on next meeting with project architecture along with technology stacks.

After the professor’s confirmation on usage of simple or open source templates for front-end development, it’s pretty clear for us to focus more on Back-end service and it’s deployment on cloud cluster.

As a meeting conclusion, we asked each team member to research on different tools, application functionality scope and code-development approaches and share their opinion in next meeting before finalizing the project structure and flow of the application.

2. Eliminate Waste - Prathmesh

The best way to eliminate waste is to do what is being asked and not more than that. Right from the starting our priority was to discard unwanted features and processes.

During the first week, we used the knowledge that was available within the team members and tried not to reinvent the wheel. We shared knowledge throughout the week in our meetings and Meeting Minutes were documented.

We discussed to use open-source templates as the aim of this project is to implement Backend Data Service thus eliminating and focusing on what is being asked.

In the end of the meeting, we asked each member to think on what should be the suite of our application, what will be the process flow, and what complexities can arrive in the sub modules and share their understanding in next meeting.

3. See the whole

The first week constituted one of the most important tasks of the project. Decisions on the domain and individual sub-domain responsibilities were made. Research was carried out with respect to the domain, sub-domains and possible architectures. During the two team meetings that were held during the week, the team focused on analysing different workflows for their respective sub-domains. We then worked together to narrow them down to ensure that the modules when integrated would add value to the project as a whole.

The decision to use the MERN stack was made. This was done to ensure consistency in the different modules, keeping in mind that the project in the end would be delivered by the team. The focus has been on what "we" must achieve as opposed to what "I" must achieve, which would ensure that wholistic goals are always considered while building any component in the product.

The team has been supportive and seem to have no issues sharing their thoughts and collaborating on ideas. There is a great deal of enthusiasm and passion towards what we wish to achieve. We seem to be on the right track and will continue to collaborate to achieve our goals within the target time frame.

4. Communication

The value 'communication' is one of the important aspect of an agile project. Communication in our project is classified into two areas viz.,

  • Team communication
  • : Team members working together need to communicate in a manner which is most effective and result driven. The team meets twice a week in order to discuss the ideas, current progress and issues related to the project. These meetings are driven by an agenda with all the minutes recorded and published on a weekly basis. We have also created a channel on **slack** as an official outlet for team communication.
  • Review communication
  • : Reviewing the work that is complete at regular intevals is an integral part of any project. For our project we will be having regular review sessions with project manager (Prof. Paul) so that our work aligns with all the guidelines and processess defined.

    As on the first week, the team is actively and equally involved in the team meetings as well as on the slack channel. The minutes of the meetings have also been updated in the project repository.

    5. Feedback-Abhijitsinh

    From the very first day itself, we as a team decided upon taking feedback from each team member before taking any major steps for the project. We as a team understand that early and frequent feedback will help us see things with different perspective. This will give us plethora of option from which we can choose the best one for the project.

    Feedback from team members

    -As a team we decided that each team member would come up with ideas on project domain and sub domains to choose for the project. Each team member presented ideas for the same. Each idea was followed by feedback from team members with pros and cons about the idea.

    -As a team we decided that each team member would come up with the basic idea about their respective sub-domains functionality and architecture. Each team member presented functionalities of their respective sub-domain. The presentation was followed by feedback from all the team members. We discussed what obstacles we would face and what could be the possible solution to overcome those obstacles.

    Feedback from professor

    -As a team we decided to simplify our project by using open source templates for front end requirement. This idea was discussed with professor and based on professors feedback we decided to go with available open source templates for front end.


    Week 2:

    1. Simplicty -- Niral Koradia

    In the second week of our project, we decided to finalize the basic architecture of the system. Each team member comes up with their understanding about the type of functionalities that their respective sub-domains. We discussed the approaches to achieve those functionalities and basic workflow of subdomain module.

    Initially, we are confused with so many functionalities and how to incorporate it into our project. To make it simple, we have noted down the functionalities sub-domain wise on the White Board and decide to go with the basic working functionalities first and make it workable. Our motto is to be simple in each stage with core functionalities.

    To make the process simple, Each member has finalized the functionalities that need to build in the first go. Each team member will start with their frontend part first. After the completion of front-end, we will start will back-end. To make the back-end simple and scalable, we will be creating micro-service for each functionality.

    As a meeting conclusion, we asked each team member to start working on their individual domain with the simple approach of the building project by creating micro-services for each functionality.

    2. Eliminate Waste

    This week, we finalized the Graphical User Interface and the architecture. We searched for open source User Interfaces so that our focus stays on the back end part. The meeting took place in the MLK Library meeting room where we collectively searched for open source user interface suitable for the project. After finalizing the user interface we discussed about various architectures. Each team member had their own pros and cons for the architectures and in the end we settled for one. We also made flow diagrams on the white board to to get a better understanding of the processes. We also finalized the templates for Unit testing and how we will approach it.

    After that we discussed the TO-Do's for the next meeting in which each member had to create the User interface for their respective sub-module and how we will be integrating all these sub modules together.

    Instead of researching individually we researched as a team for the User interface templates on the big screen thus eliminating wastage of time and energy. Our team's weekly agenda is clear, eliminating unnecessary confusion and doubts among the team members.

    3. See the whole

    This week, the focus was to have a concrete architecture for the product. The team got together and discussed the various options available for implementation and each member shared their thoughts on the pros and cons of using the respective architectures. At times we found one model to be perfect a specific component, but were able to drill down to see its impact on the other components. This allowed us to eliminate a variety of options and come up with an architecture suitable considering the project as a whole.

    The team continues to focus on a wholistic approach by refining the ideas behind each module to meet the requirements and goals of the project. There is a clear understanding on individual responsibilities and the impact their decisions have on the project. The mid-week meeting assists the team to ensure that all aspects are taken into consideration while making component and architecture based decisions to reduce complexities during the implementation phase.

    4. Communication

    This week the focus of our meeting was to go through the various options for our application. In order to facilitate this kind of a discussion it was necessary that all members met together and express their ideas using visual communication aids. A meeting room was booked in the MLK Library and the team was engaged in a productive discussion.

    It was good to see each of the members actively contributing to their own sub modules as well as sharing inputs to others. We made full use of the projector and whiteboards that we had in order to have a collaborative and effective team meeting. There were times where the group diverted to sub topics but were quick enough to come back to the proposed agenda.

    The project artifacts were shared on our slack channel and the minutes of the meeting were updated on to our wiki pages. It was decided that we have these meetings at least once in two weeks where we can discuss our ideas/progress in a meeting room.

    5. Feedback-Abhijitsinh

    This week we as a team decided to come up with basic architecture of the system. Each team member was asked to come with the type of functionalities that their respective sub-domains will have, different ways to achieve those functionalities and basic workflow of sub domain module.

    Feedback from Team Members

    Each team member came up with functionalities of their sub-domain. Each team member presented the functionalities to the team. This presentation was followed by feedback from the team. Feedback consisted of how some functionalities would complicate the overall system or would conflict with working of other sub-domain modules. Based on the feedback we redefined functionalities for each sub-domain.

    As we all have selected particular sub-domain, at end we will be combining these modules to form complete system. We as a team took the functionalities of each sub-domain into consideration and created a basic workflow of our system. This would not have been possible without the feedback of each member on how each sub-domain would be functioning and interacting with others services.

    As every project has its own problems and challenges, so does ours. We as a team discussed on different workflows for the project and what challenges will be faced if we follow a particular workflow. All team members gave their feedback on each workflow and finally came up with a workflow by using which we can avoid as many problems as possible. This would not have been possible without the inputs and feedback of each team member.


    Week 3:

    1. Simplicty -- Niral Koradia

    In our 3rd week, we worked on analysing design of the front end components and it's flow. In our analysis, we discussed various designs and it's complexities. Since our objective is to build the functionality working of the project rather than building it's look and feel, we have finalized the simple UI wireframes to kick start our project. One of our team member has prepared UI wireframes and our team has started building there individual UI modules. Once we build our simple working skeleton of the project we will work on enhancing it's look and feel.

    2. Eliminate Waste - Prathmesh

    This week, the team analyed the UI wireframes to understand how our user interface will look like which give us a better idea when we will design the user interface. We tried to identify the complexities which would arise when we start with the coding and tried to analyze how we were going to challenge them so that project could runs smoothly. Thus eliminatng waste by saving time which had been our moto from start.

    3. See the whole - Aashish

    This week, the team got together to analyze the use cases and agree on the layout and design to get a better picture of the workflow. We identified implementation complexities and decided on options that would assist in simplifying tasks throughout all modules, stressing on reuse and clean code. We discussed the inter-dependencies that may exist and how to tackle them to ensure that the project in its entirety is simplified. The team continues to be enthusiastic and motivated to complete the project.

    4. Communication

    The focus for this week was to complete the front end aspects of the application for all the modules. The meeting was setup to this effect and the front end aspects. During the meeting we discussed about the GUI for the login screen as well as the concurrent shopping cart screen.

    The discussion continued with the wireframe model for each page, the model was updated wherever necessary and front-ends from real world applications were shared and discussed upon. It was decided to use some ideas from these into our application.

    The minutes of the meeting along with the reference documentation were shared on our slack channel The timelines for certain aspects of the project were discussed and in some cases reviewed. All in all, in this meeting we were able to close our GUI screens for the modules of our application.

    5. Feedback -- Abhijitsinh

    We as a team decided to come up with the design of the front end components for each of the sub domains and a basic flow for all the sub-domains for this week.

    Feedback from the team

    We as a team discussed the front end components of each sub domain and discussed the look and feel of each one. Each team member presented his idea on the front end design and how is he planning his user interaction for the same. Each presentation was followed by feedback from team memebers on what should be flow for the fucntionality for each sub domain and what front end components needs to be placed where . This feedback helped each team member to get an over all idea of how their sub domain would interact with the user.

    One member from our team designed the wireframe diagram based on the frontend components and flow decided by the team. This wireframe was analysed by the team and because of this process of the feedback we where able to figure out the parts that he has missed with the wireframe. After this he updated the wireframe accordingly.

    Week 4:

    1. Simplicty -- Niral Koradia In the 4th week of project, we have the midterm week and hence it was decided that project related deliverables would be reviewed in the next week and there will be no face to face meeting during the week.

    2. Eliminate Waste - Prathmesh

    This week, finalized the architecture of the shopping portal where each individual contributed. The architecture was designed by keeping aim of the project in mind and following the core values. During the discussions each members were given equal opportunity to participate and contribute so that in the end all the ideas could be aggregated. During the whole process our target was to stay focus and eliminate waste.

    3. See the whole -- Aashish

    This week, the team got together with a fair understanding of the architectural requirements of each sub-module. Each team member presented their respective submodule architectures. Decisions were then made to modify, add and eliminate certain features keeping in mind that the final product needs to provide a seamless experience to the customers. The team continues to discuss and make decisions with the big picture in mind instead of focusing solely on the individual module. This approach has enabled us to come up with a concise architecture that we feel is suitable to achieve the defined goals for the product. We have decided to have our architecture validated by the professor to ensure we are on the correct path and can soon move to the implementation phase.

    Overall, the team continues to stay motivated and looks forward to the challenges in the implementation phase. We beileve that with our plans in place, we will be successful in delivering the product within the defined timelines.

    4. Communication -- neville

    This week was the midterm week and hence correct communication about project work was of utmost importance. It was decided that project related deliverables would be reviewed in the next week and there will be no face to face meeting during the week.

    Our discussions continued on our slack channel where we discussed about the user activity logging functionality. Keeping the project timeline in mind it was decided to start uploading code for the respective modules onto our repository so that a peer review can be initiated.

    Looking forward to the next week where we will be starting off with the complete application architecture design and building, deploying pieces that are ready.

    5. Feedback -- Abhijitsinh

    This week we as a team decided to finalize our architecture, activity diagram and use case for the project. All the three are a vital part of a project and thus feedback for each is at most necessary.

    Architecture: Deciding the architecture for project is the most important thing. A right architecture would help avoid many complexities and get system work smoothly. This could not be possible without the input from each team member. We as a team discussed how each individual was planning to implement their subdomain and based on that each of the team members gave there feedback on combining these approaches to form most suitable architecture for our project.

    Activity Diagram and use case: It was my(abhijitsinh chavda) duty to come up with the activity diagram and nevilles duty to come up with use case diagram for the system. we presented the diagram to the team and each team member gave there valuable feedback on the necessary changes required in the diagrams . These feedbacks will help us to optimize our diagrams and come up with the final version for the same.

    Week 5:

    1. Simplicty -- Niral Koradia

    In the 5th week, the team got together with the clear understanding of the architectural requirements of each sub-module. we have finalized our architecture and project related documents in very simple and efficient manner. Deciding project architecture is very important part of a project and we took utmost care to make arhitecture simple so that it will lead us to correct project outcome.

    User story: It was my responsibilty duty to come up with the user story document. I have presented the document to the team and each team member gave there valuable feedback on the necessary changes required in the document to make it simple and efficient.

    2. Eliminate Waste - Prathmesh

    This week, the team mainly discussed what front end framework we will be using for the online portal. The Architecture of our applicaction is finalized and now was the time to get our hands on code. The team actively took part in the discussion where each member presented their ideas. This week we shifted from kanban approach to scrum approch and we plan to meet daily for the stand up meeting just like the scrum process to discuss the progress this eliminating waste.

    3. See the whole -- Aashish

    This week, the team meeting focused on the progress made in the respective modules. After having the architecture approved by the Professor, the goals for each module have become more clearer to the team. Team members discussed their idea of independent module implementations which fit the project goals. Implementations have begun and the team hopes to have basic operations available in the next couple of weeks.

    Overall, the team is on track and continues to share and support each other in technical and motivational aspects. The big picture continues to be in the mind of individual developers, ensuring that every decision is made contributing towards the project success.

    4. Communication -- neville

    This week we have met after a gap of one week due to our midterm commitments. We had a face-to-face meeting in an open setting where each of us discussed about our current position in the project implementation.

    We reviewed the deliverables and set up targets for the upcoming week. The entire project timeline was discussed and put into perspective. After our discussion we were clear about modules like User Management, Product Catalog, Shopping cart. The inter-communication between these modules was discussed too and the module owners are now in a position to start implementing their respective modules.

    We also discussed the end to end architecture and proposed a couple of them best suited for our application. Deliverables were assigned to be completed by the coming week and a prototype for each module discussed above is expected in the coming weeks.

    As a usual practice the artefacts of the meeting such as minutes, reference docuementation and links were shared on our slack channel. In the next meeting we have decided to approach our project lead(Prof. Paul) for further advise.

    5. Feedback -- Abhijitsinh

    This week we as a team decided to start implementation for the project. Each one of us came up with some part of our modules. The starting is the most important phase in each module and thus establishing the understanding between team members via constant feedback is necessary.

    Feedback from professor:

    As we designed the architecture for the project, we thought it would be great for us to take professors feedback for the same. We went up to the professor and discussed the architecture. The feedback from the professor cleared our thoughts and helped us to idetify the errors in the architecture and make necessary changes to avoid it.

    Feedback from team members:

    As a team each one of us presented his work on respective modules. Each presentation was followed by discussion on wheather it is the best way to implement it or not. Based on the feedback each one of us noted the necesssary changes. These feedbacks played vital role for each member as this week we have started implementation of the project.

    Week 6:

    1. Simplicty -- Niral Koradia

    In the 6th Week, As we are getting closer to our application launch date, we have started building the code. Every team member started building their individual part.

    During the meeting this week we discussed various ways for implementing and deploying our code. Every member came up with unique ideas for the same; feedback was provided to each of the ideas. At the end of team meeting, we have agreed to follow the same coding pattern for each module to make the application in simple.

    2. Eliminate Waste - Prathmesh

    This week, our aim was to continue with the implementation part. We all are trying to create individual back-end services for the respective modules. We all have replicated out databases for partition recovery and we all meet 3 times in a week to discuss each others progress an challenges. We try to solve each others doubt so that we all are on the same page thus eliminating time wastage.

    The project is in line with the dates and the sprint cycles are being followed as expected. This is achieved as our team is following all the core values that were given.

    3. See the whole -- Aashish

    This week, the meeting was primarily on the implementation aspect. Each team member provided an update on their module status and any dependecies that may exist during their deployment. The team discussed frontend integrations and look to be on track for the completion of the backend services for the project. Overall, the modules being developed are in line with the project goals. We collaborate on different issues to ensure efficient implementation of all the project modules. The team continues to hold the vision of the project in entireity, and continues to push towards executing the tasks successfully.

    4. Communication -- neville

    As we are heading closer to our application launch date, having crisp communication flowing between team members is of utmost importance.

    During the meeting this week we discussed various ways for implementing and deploying our code. Every member came up with unique ideas for the same; feedback was provided to each of the ideas. The conversation was smooth and opinions were put forth and listened to by all the members.

    Of late our slack channel has been buzzing with activity and we have been using it as one of our major communication channels. We share use case specifications, architecture diagrams, ideas among other things on our slack channel.

    One can notice the energy and enthusiasm among the members based on our communication pattern and we look forward to a hectic but fruitful weeks in the future.

    5. Feedback -- Abhijitsinh

    This week as the main motto of our team was to decide on the frontend technologies and discuss the how and what of the frontend. As the frontend is expected to be a team effort it requires ample amount of discussion and feedbacks from each team memeber.

    Feedback from team members

    This week we had to come up with the frontend how and whats. Keeping this in mind each of the team member came up with an approch that they consider would be best for the frontend. We as a team discussed each approach presented by the fellow team member. Each team member gave their feedback on the same. Based on the feedback of team members we decided the approach we will follow for developing the frontend. With the feedback and discussion for the frontend design it would have been very difficult to integeate the frontend developed by each team member for their respective modules as each of the module will have seperate backend but the web application would have a single frontend for all the services.

    Week 7:

    1. Simplicty -- Niral Koradia

    This week we started building shopping-cart project using nodejs. To make it simple, we have decided to work together and commit to the Github on master branch only and merge the code changes in front of all the team members and commit it. For next week, we have hackathon, so we need to come up with a bitly prototype. Because of this new project, we need to maintain the balance work for ninja project as well as for the hackathon project. To make it simple, we have divide the task amoung the team and work the bear minimum requirement for the project as well as on the hackathon. The main moto of this week was to come up with the hackathon architecture and also keep the development flow for ninja grocery at steady pace.

    2. Eliminate Waste - Prathmesh

    This week, our agenda was to complete the backend and the front end part of individual submodules. So that we can start with the intergration. We also decided to meet next week and sit for prolong hours to complelte intergration as its the most important part. While sitting together we will be eliminating wastage of time. We also descussed about our statergy for the hackthon. We alwasys try to keep all the core values in our mind so that the best outcome could come.

    3. See the whole -- Aashish

    This week, our team meeting consisted of two components. The first revolved around the primary shopping cart project. The team provided an update on the progress of their respective submodules. The challenge around concurreny in the shopping cart was discussed with each member providing their strategy to accomplish this task. The complexity of each method considering the impact on modules such as product catalogue and sessions was considered to arrive at a suitable decision. The second part focused on the hackathon problem. The team now has an architectural solution in place to accomplish the bitly service task. Overall, the team continues to strive to accomplish both tasks in the speculated timeframe with a timeline in place to complete each service in time so that dependencies are not stalled. From a project perspective, we continue to be on track to a successful completion.

    4. Communication -- neville

    As the team is heading into launch phase it is imperative that all team communications be handled clear and coincise way so that we all avoid errors due to miscommunication or the lack of it.

    To be more connected during our launch phase we have decided to have a team-codeathon; this will involve spending 48 hrs together completing the pending coding bits of the application. The team members have agreed to this idea and the next week is selected as the codeathon week. The energy around task completion and project demo preparation is great and we will keep up the same pace till our presentation.

    Our slack channel conversations have been very high this week. There was certain confusion around a module but that was cleared during a zoom conference call during the middle of the week. As we enter the last stretch , the team understands that we need to reach out to each other either for asking help or to help out and the best way to do that is via the many forms of communication we have been using as a team.

    5. Feedback -- Abhijitsinh

    This week we all had a new project to contribute to as a team. As a part of hackathon we had to come up with a bitly prototype. Because of this new project it was very necessary to maintain the work for ninja grocery parallel to the hackathon project. The main moto of this week was to come up with the hackathon architecture and also keep the development flow for ninja grocery at steady pace.

    Feedback from the team

    We as a team decided to come up with the architecture and technologies that we will use as a part of hackathon. With this we also had to work on our respective modules backend and frontend.

    The major issue for ninja grocery was to finalize the approach that we will be using to tackle the group share functionality in shopping cart. For this problem we as a team came up with multiple approaches. As it was a hectic week with two projects to focus on, it was very neccessary to take multiple feedbacks for each members and finalize the approach for group share functionality. We as a team came up with multiple approaches for group share functionality. Each approach was discussed throughly and received feedback from each one of team memeber. We finaly decided the approach that we will follow based on the feedbacks of team members.

    Week 8:

    1. Simplicty -- Niral Koradia

    This week we started integrated shopping-cart project. To make it simple, we have decided to pick each individual's module first and merge the code changes in front of all the team members and resolve the conflicts. We started integrating the code with Login/Signup module first, then product catalogue, Shopping cart and payment modules. We also worked for Hackathon implemenatation. Integration went smoothly and each team member enjoyed working the project. Each Member like the simplicity we followed in the project implemenatation.

    2. Eliminate Waste - Prathmesh

    This week, we integrated all our individual functionalities which was a big challenge in itself. We have started with Unit testing and the functional testing. Everyone must test other module so that errors can be found and corrected timely. Our team have successfully completed the project and are now focusing on testing and minor updated for stabilization. Our team always kept all the core values in mind while focusing on work.

    3. See the whole -- Aashish

    This week the team got together and integrated the respective modules. Unit testing for each module has been completed. Integration testing is now in the final stage. At each step of the way, the team has kept in mind the wholistic view of the project ensuring that any change made has minimal impact on other modules. The values of simplicity, elimination of waste, timely feedback and effective communication, along with this wholistic project view have led to a successful implementation.

    4. Communication -- neville

    The team has spent considerable amount of time in joint meetings in the week 8. All members of the have been equally communicative and vocal about building the best application. A second code sprint has been planned for the weekend where the team members will complete the testing of their respective modules.

    Our slack channel is buzzing with activity and the team have also collaborated on the upcoming hackathon. It is very evident that the team communication has grown over time and it seems to be in a positive light. The team will be meeting over the weekend for multiple meeetings and the members have booked the meeting rooms in advance.

    5. Feedback -- Abhijitsinh

    This week is the last week. As it is almost the end of the projet the feedback between each team member for their respective module played a very important part.

    Each Team member has finished their respective module with their server and mongodb replicaset locally. Each team member has constributed to the UI development and integration for each modules UI. The major challenge was to integrate each modules and see that interconnection between each modules work fine. Feedback played a major role in integration of modules. Each member provided their feedback on the interconnection and this helped us to successfully integerate the project.

    Feedback has always helped the team to avoid major conflicts and stay right on track. The importance of feedback is realised by each team member during the project and has been followed throughly.