ActivitiesAtom Feed

Displaying activities 1 - 25 of 61 in total

September 28, 2018

  • Day 62

    Team Barcelona Duo (Exercism) [2018] — at September 28, 2018 16:47 UTC

    We are extremely sad that RGSoC is ending. We want to thank our mentors Katrina and Jeremy for the opportunity to work on Exercism. We learned so much and we hope to continue collaborating with the Exercism team in the future. We also want to thank our amazing coaches: David, Emily, Javier, Klaus, Maikha, Nacho, Jorge. This summer would not have been the same without you. A big thanks to our hosting company Thoughtworks, and all of the people that welcomed us this summer. Finally, we want to thank all of the RGSoC organizers. Thank you for all of your hard work, and for including us in this life-changing project. We had such a great time, and are looking forward to seeing what is next. ❤️

September 27, 2018

  • Day 61

    Team Barcelona Duo (Exercism) [2018] — at September 27, 2018 13:48 UTC

    We started the morning with an early session with our coach Ignacio to review the work we had done on the pagination. We created some mock data with the Factory Bot and were able to test that the code we wrote for the pagination worked. It was a great feeling to see the pagination in action. We finished our feature, put a lot of thought into the way we wrote our PR's making sure that we explained our logic and properly documented each one before submitting them. We are waiting for feedback and hope that our PRs will be merged. We also had a farewell call with our supervisor Ana Sophia and met with our coach David. Overall it was a great day.

September 26, 2018

  • Day 60

    Team Barcelona Duo (Exercism) [2018] — at September 26, 2018 16:30 UTC

    We spent the day working on the feature we have been assigned. We had two sessions with our coaches Jorge and Javi and made a breakthrough. Our understanding of ActiveRecord, active record design patterns and Ruby have increased a lot over the past week. Our mentor Jeremy was right, you learn more by building than from trying to fix bugs. Tomorrow we will work on figuring out the pagination and we will submit several pull requests.

September 25, 2018

  • Day 59

    Team Barcelona Duo (Exercism) [2018] — at September 25, 2018 08:36 UTC

    We will have a meeting with our coaches tomorrow. In order to prepare for the meeting, our plan for today is to:

    • Figure out the relationship between the user model and the track mentorship model.
    • Learn more about the pagination helper.

September 21, 2018

  • Day 58

    Team Barcelona Duo (Exercism) [2018] — at September 21, 2018 13:55 UTC

    We get to end the week on a positive note: our PR was merged!
    Had a session with Javier on ActiveRecord.
    We moved closer to finishing our feature.
    Monday is a holiday in Barcelona, unfortunately. So, after today we only have 4 more days of RGSoC.

September 20, 2018

September 19, 2018

  • Day 56

    Team Barcelona Duo (Exercism) [2018] — at September 19, 2018 15:11 UTC

    • Had a meeting with Ana Sophia, our supervisor, where we were thoroughly impressed with her cute cat.
    • Had two coaching sessions with Javi where we learned how to squash as well as more git best practices
    • Updated our PR and are hoping that it will be merged soon
    • Continued working on our feature and figured out how to put data into tables

September 18, 2018

  • Day 55

    Team Barcelona Duo (Exercism) [2018] — at September 18, 2018 15:03 UTC

    Public Speaking

    • Spoke at a Lunch and Learn
    • Worked on our feature for Exercism

    After weeks of encouragement from our coaches, our mentor Katrina, and random ThoughtWorkers, we signed up to give a presentation at a ThoughWorks, our host company. It would be an opportunity for us to tell everyone about Rails Girl Summer of Code, our project Exercism and what it was like being Rails Girls at ThoughtWorks.

    After signing up, we spent the next four days worrying about what we were going to say, how it would be received and wondered if we would fail miserably. All of our worrying was for nought. Amalia began by talking about the gender imbalance in open source contributors and how Rails Girls Summer of Code started in a effort to ameliorate this problem. She then give a brief history of Exercism and gave a walkthrough on signing up as a user, on using the platform and also how to become a mentor.

    Lori continued by talking about some of the things we worked on this summer on the project and describe the feature we are working on for Exercism. At the end of the talk she described what it was like being a Rails Girls at ThoughtWorks, emphasizing the importance of having a supportive environment when you are entering tech.

    It was a very positive experience. The best part was getting an opportunity to share with the TW community how much we have benefited from having them as a host company, professionally as well as emotionally. Our journey into tech has been a long and interesting path. It was here at TW where we grew. It was also a chance for us to share how important they were to our confidence.

    Our feature
    With our talk behind us we returned to focusing on our feature. Amalia figured out how to use ActiveRecord and wrote the code to display some user data in a view. A perfect ending to another amazing day.

September 17, 2018

  • Day 54

    Team Barcelona Duo (Exercism) [2018] — at September 17, 2018 13:24 UTC

    • Worked on RGSoC end of summer blog post
    • Worked on presentation (slides, practice)

    Almost every Tuesday ThoughtWorks holds a Lunch and Learn where someone gives a presentation and the company caters lunch. Tomorrow we are hosting our very own L&L! We are excited to tell everyone about Rails Girls Summer of Code, Exercism, what we are working on and our growth as developers.

September 14, 2018

  • Day 53

    Team Barcelona Duo (Exercism) [2018] — at September 14, 2018 15:55 UTC

    Today we spent the day working on the blog post that we need to submit for RGSoC on Monday. We want to convey the great experience that we have had so far and we dedicated a good part of the day getting the blog post ready.

    We also signed up to give a lunch and learn at Thoughtworks next Tuesday, September 18. We want to let the office in Barcelona know about Exercism and we want to talk about the great summer we have had as RGSoC scholars. Many people have asked us about our contribution to Exercism and it will be really great to highlight what we learned. While we are nervous to speak in public, we are excited to have people get to know Exercism and share what we have learned this summer. One of our goals is to encourage others to contribute to open source and we hope to give them tips so that they can make those contributions as meaningful as possible.

  • Day 52

    Team Barcelona Duo (Exercism) [2018] — at September 14, 2018 10:58 UTC

    After our daily standup we worked on changes that were requested for issue#28 and issue#3881

    For issue#28 we

    • Created a global gitignore file:__ git config --global core.excludesfile ~/.gitignore_global
    • Added the .DS_Store files to the global gitignore file: echo ".DS_Store" >> ~/.gitignore_global
    • Performed an interactive rebase git rebase -i <SHA before commit>
    • Removed the offending .DS_Store files
    • We will need to clean up the PR and review it with our coaches before we submit the final version.

    For issue # 3881

    For now we decided with our mentors to put this issue aside and focus on building out the feature that was assigned to us. Once we finish the work on the feature we will return to issue#3881.

    In the afternoon we had a meeting with our mentors, our RGSoC supervisor, and our coaches. Even though the meeting was difficult, it was good to have a conversation with everyone to see how we can get the most out of the remaining two weeks. We are grateful that our mentors recognized all of the effort that we have made this summer and it was helpful to recognize the challenge of simultaneously trying to learn Ruby and Rails, while also trying to figure out a large codebase and all of the components required to contribute to an open source project. One of the most important reflections that came out of the meeting was that everyone did the best job given the information that they were working with. The summer has meant so much to us, and it has been life changing. Before the summer we did not think that becoming developers was something that we could do. We know that it will take persistent effort and work to achieve this, but we are finishing the summer with the confidence that what we want is attainable. The importance of having clarity on what our careers will look like is something that we did not expect we would attain but are grateful for. This alone has made the RGSoC program exceed our expectations, and it is something we could not have done without RGSoC, our coaches, and the Exercism team.

    We do wish that we had aligned priorties with everyone sooner. The outcome of the meeting gave us many lessons that we will carry with us throughout our careers, and it will help us make the RGSoC process better for future cohorts. We hope to continue contributing to the Exercism project even beyond this summer because it is a project and team that we have grown to care a lot deeply about.

September 12, 2018

  • Day 51

    Team Barcelona Duo (Exercism) [2018] — at September 12, 2018 17:08 UTC

    The anatomy of a great pull request

    We spent the day working on issue#29. We had a meeting with our coach Maikha this morning to brainstorm how to break this issue into smaller components. We are learning that having the capacity to break a problem into smaller pieces is an important skill that you need to cultivate and refine to be a good developer.

    We spent the morning trying to understand how actions written in the controller are used to render data on to a view. In the afternoon we had a session with our coach Jorge to review what we learned in the morning. After our meeting with Jorge, we realized that in order to render data on to a view, we need to understand how to retrieve objects from the database using ActiveRecord. Tomorrow we will spend some time looking at ActiveRecord's finder methods and we will also look for hints to see how some of these finder methods are already implemented in the codebase.

    We received some excellent feedback from our mentor Katrina on a PR that we recently submitted. We wanted to share a few of the points she made with the whole community because they are important points that we all need to keep in mind.

    • Make it easy for people to review your PR.
    • If you submit a PR with hundreds of lines of code, chances are the maintainer will push your PR to the bottom of the pile. If your PR is large, a good tip is to break it up into smaller pieces that can be submitted independently.
    • Make sure that you provide all of the relevant context that is needed for your PR. Be meticulous with providing links to previous commits, adding links to relevant documentation, and providing the context that is necessary for the maintainer to understand the feature you are trying to add, or the problem you are trying to fix. Often times we assume that people have the relevant context, but in open source projects, with hundreds of contributors we need to make sure that our steps are clearly outlined. A maintainer needs to know the purpose of the pull request, the problem that is being solved, and the steps that you took to solve the issue.
    • All of these steps take an extra 5 minutes, but taking the time will make a big difference for the maintainer and for the entire community that is contributing to the project.

    We also wanted to share a video that Katrina shared with us on the anatomy of a great pull request. Getting your PR merged into an open source project is really hard. We have talked to people who have told us that they worked on a feature for days that never got implemented. This video outlines tips that you need to keep in mind so that your PR has the chance of getting merged. It helps you think about the things you need to consider when making a change, and it gives insight into the thought process that a maintainer goes through when accepting a change. It's really worth watching.

September 10, 2018

  • Day 49

    Team Barcelona Duo (Exercism) [2018] — at September 10, 2018 19:16 UTC

    The last three weeks

    After our daily stand up we had a meeting with Ana Sophia, our RGSoC supervisor who will be covering for Sophia while she is on vacation. Our experience with RGSoC has been incredible, and we are very proud of the progress that we have made in the last two months. One of the most important things that we learned this summer is that communication between all stakeholders is important. While speaking to Ana Sophia we realized that we need to have a meeting with all of our mentors, coaches, and supervisor to make sure that we are all on the same page, and that we make a plan for our remaining three weeks. We hope to schedule a call with everyone this week.

    We then reviewed the changes that Lori made last week to issue #28 . We wanted to make sure that Amalia understood how a controller within a namespace was generated. While reviewing the issue we realized that the build for our PR failed and that we needed to fix the test in the test/controllers/admin/mentors_controller_test.rb file. We fixed the test, and resubmitted the PR.

    For this week's sprint, we will be working on issue #29 and issue #30. One important thing that we learned from our coach Maikha is that we need to break each issue down into small components and we need to include each step in our trello board. This is a great way to figure out the things we do not know, and it is also a good way for our mentors, coaches, and supervisors to see the progress we are making on each issue. We updated the trello board with the steps we think we will need to take in order to solve issue #29 and spent the afternoon trying to render data in the view we created. At some point we got stuck. We hope to have a session on Wednesday with one of our coaches so that we can get some guidance. Overall it was a great day.

    Annoucements:
    Tuesday September 11 is a holiday in Catalonia.

September 07, 2018

  • The Last 15 Days

    Team Barcelona Duo (Exercism) [2018] — at September 7, 2018 15:16 UTC

    Project Progress

    • Submitted PR for issue#3881
    • Submitted PR for admin mentor dashboard (our feature)

    Routine day: start the work day by updating the Trello board, check the Exercism channels in Slack, merge any outstanding open PRs in the mentor bios then grab a coffee (decaf, always), before our 9 am morning stand-up. Today was super great because I could share the yesterday's progress on issue#3881. At the stand-up Emily changed the code and we watched as my test failed, then pass when we changed it back. It was a good moment. I submitted the PR, figuring if there are any problems, they can request changes. Truth is, I sat on the code for overnight before I made a pull request. So many things could have changed in the code in 8 hours. I was lucky.

    I had a moment today where I felt like a professional developer. I started working on our feature. I had a code review with Nacho, where he suggested some changes to my code to make it more consistent with the existing code in the Exercism codebase. In the process I learned a new Rails function bin/rails d controller <controller-name>. I made the changes and submitted a PR. Again, it is a small thing, but it felt bold.

    Pair Programming
    I have long been a fan of pair programming and the idea of two people coming together to solve a problem. Amalia and I have paired on multiple occasions, but I had never paired with anyone else before today when I paired with Salva, a developer at ThoughtWorks. I was a little bit intimidated at first, because he is brilliant and I was afraid I would not be able to actually bring anything to the experience. I was wrong, it turned out to be a very educational experience and a whole lot of fun as well.

    He started by describing two different types of pair programming, ping-pong and navigator/driver. In the first each programmer takes turns programming. In contrast, with navigator and driver model one person, the navigator is responsible for breaking the problem down into smaller steps while the driver is responsible for writing the code. We chose the navigator/driver model. After establishing some guideline (e.g. the, asking permission before touching the keyboard of the driver) we started working.

    I had chosen an exercise from the [Exercism](exercism.io) Python track, but instead of solving it writing code to past the existed test Salva suggested we ignore the included tests and use Test Driven Development. In TDD you write a test and then write the minimal code required to pass the test. Then you refactor and start the process all over again.

    He was brilliant as the navigator, not only with the technical part, but also in creating an atmosphere where mistakes are a part of the learning process. Moreover, he was patient and kind and acknowledged each passing test as a small victory for me. I learned a lot from this experience and look forward to next week where I will get a chance to pair with other developers.

    Reflections
    It dawned on me today that after today we only have 14 more days of RGSoC. We have spent the past two months being hosted by ThoughtWorks, a company that has supported RGSoC since 2014. Everyone I have met has a curiosity about different things and a passion for learning. It has been a joy to share space with this community.

    Most morning I arrive to work a bit early, ostensibly to prep for our stand-up, but really for a chance to have breakfast and talk shop with the other early birds. Some of my best learning experiences have come from this golden hour. It is during these moments that I have learned about on a range of topics: flying drones, quantum computing, music education, string interning amongst others. I am not sure I will be able to replicate this experience again, and I will miss it.

    Next Week
    Full Stack Fest ends today, so Amalia will be returning on Monday. Next week we have a short week since Tuesday is a holiday in Catalunya. We will focus on completing the next step in our feature.

  • Day 47 (September 6, 2018)

    Team Barcelona Duo (Exercism) [2018] — at September 7, 2018 02:51 UTC

    Hindsight is 20/20

    Today I wrote a few lines of code and altered the way we post items on our board.

    Process
    After our morning daily, I worked with Maikha and Emily on defining the epic and the stories and spikes that comprise it. The idea being that each step taken towards completing a particular goal should be broken down into smaller steps and recorded on our board so that at any point every team member and stakeholder can in a glance understand what we have done, what we are doing and what we have left to do.

    In our case, our epic was issue#3881. The stories were the parts of the code that needed to be modified in order to complete the epic. The spikes are the things we needed to learn in order to write the code to complete each story. Today's goal was to write a test for an area of the code that had not been tested, the link in an email to the mentors.

    What I coded today:

    • Added a failing test of the link in the mailer notifications.
    • Changed the code to get it to pass.

    Sounds so simple, doesn't it? To get to this point, there were so many things we had to understand. Once you become an expert, it is so easy to forget all the bits of accumulated knowledge that turns the complex into something simple and obvious.

    A short list of what we needed to understand to complete this task:

    • A bit about how mailers work
    • How to generate mock data to trigger the mailer
    • Mailer previews
    • How to recognize a Rails link
    • How to decipher said link
    • How links are generated
    • What a route is and how they are generated
    • How to find routes (bin/rails routes)
    • How to test routes
    • Where to add the tests in the codebase
    • How to change the link.
    • Rails helper functions
    • Know the difference between assert_body_includes and assert_text_includes

    Along the way we also learned how to better distinguish between what information we need to understand to complete the task and what need to put aside to learn about later.

    It has been a long journey through mailers, controllers and routes, to understand a single line of code #{link_to "view it here", [:mentor, @solution]} so we could fix it. Behind this simple PR is hours of tutorials, coaching sessions, and practice exercises, consistent with the RGSoC objective: "learn, learn, learn".

September 05, 2018

  • Day 46

    Team Barcelona Duo (Exercism) [2018] — at September 5, 2018 13:31 UTC

    We started our day with our daily stand-up followed by a call with Sophia, our supervisor. One bit of feedback from both Sophia and one of our coaches was that we needed to keep a keep them informed of the work we are doing. One of the things that we have learned this summer is that there is a need to maintain consistent communication with the different members of our team. It was clear that we needed to update our process, so we updated our trello board to include the steps we are taking to learn more Rails and Ruby. This will allow them to know at a glance what we are doing at any time.

    Later we had a session with our coach Jorge who helped us parse areas in the codebase that were still unclear. It is still hard to identify the helper functions on our own so the session was very useful. We did a lot of experimenting by generating code through the rails console enabling us to map different routes. We had some success manipulating the path. We are just about ready to move forward on issue#3881. Tomorrow we will write some tests and see if we can get them to pass. We are trying to complete this issue, with complete being defined as submitting a PR. Our goal is to start working our feature next week.

    As a side effect taking extra time to solve what should be a simple issue of changing a link, we have managed to really understand how Rails works . This new knowledge will come in handy as we move forward.

September 04, 2018

  • Day 45

    Team Barcelona Duo (Exercism) [2018] — at September 4, 2018 21:49 UTC

    Technical Stuff

    After an early morning coaching session on Ruby syntax, I created a new Rails blog , trying to recreate the process from memory. I started writing some tests and realized that I still do not know the correct syntax. Assessment: I can piece together the parts of the app, so I understand the general relationships, but I had an unacceptably high number of syntax errors.

    In the afternoon I mapped what I had learned to the exercism codebase. Tomorrow I have a session with a coach to go over the parts I do not understand.

    Feedback Session

    I had my first feed back session with Maikha, one of our coaches. I was nervous, but she quickly put me at ease. The hardest part for me was coming up with things she could improve on. She was more forthcoming. After listing my strengths she gave me feedback on things I should do more of: believe in myself more, seek out individual coaching sessions, and pair-programming with ThoughtWorkers. Tomorrow I will start.

    Surprises
    After several weeks stuck in customs, our package from our mentor Katrina Owen arrived today. We are so in-love with our new gear we will probably spend the rest of the summer wearing it. Every. Single. Day. She also sent us stickers! What is it about stickers that make grown developers get in-touch with the kid within?

    After two intense days at Full Stack Fest Amalia will be in tomorrow taking advantage of the conference day off to come to the office.

September 03, 2018

  • Day 43

    Team Barcelona Duo (Exercism) [2018] — at September 3, 2018 21:36 UTC

    Reflections on Learning

    Amalia is at the Full Stack Fest this week. I am working on learning Ruby and the Rails framework.

    Before this summer I had never coded in Ruby or used the Rails framework. Over the past few weeks I have spent a few hours on and off playing around with Ruby, but if progress can be measured by what I can do with Ruby or Rails, I have made little.

    So over the weekend, I decided to take everything I have learned in the past decade of teaching and design a study plan that would take me to where I want to be. In particular, I wrote a series of mock lesson plans on Ruby and Rails. While I am far from a Ruby rock star, I finally have a clear idea of what are my particular weaknesses and how I can improve going forward.

    Mapping teaching to learning

    There are four basic steps that guide lesson planning and I will share them here in case they might be of use to others who are learning something new. This is how it works.

    First, there is the sorting the material into the key points that you want to cover and divide them in a series of coherent lessons. A few of the key points of my lessons are routes, models, views, controllers, classes, instance variables and relevant gems and their helper functions are critical to understand how Rails structures its apps.

    Second, each lesson is designed around a "heart". That is, for each lesson there should be one thing that you want the learners to be able to do after they complete the lesson. An outcome of a lesson on routes could be something as small as being able to decipher the output of ´bin/rails routes´.

    Third, after deciding on the focus of each lesson, you identify what does a student need to know in order to understand your lesson and identifying what you need to 'pre-teach'. In teaching a grammar lesson, for example, you want to make sure the students know the vocabulary you are using, so they are not distracted from the lesson's key objective. Analogous, Rails apps are full of <%= %>. While not fundamental to using Rails, encountering such syntax without understanding what it means increased my cognitive load and made it difficult to decipher the basics of routes and controllers.

    Finally, each lesson is placed in a logical order (scaffolding, in teacher-speak), from simple to more difficult, where each parts builds on the previous one.

    For my study plan, after every mini-lesson, I should know something and be able to do something new, whether it is identify the helper functions when reading the codebase or actually being able to write the code behind each one. As for what I needed to know before I could fully get the most out of a tutorial, I needed to know more Ruby and have some familiarity with the embedded Ruby syntax.

    To remedy this I dedicated a part of the day learning Ruby syntax by mapping it onto Python, a language I am more comfortable with. For example, when I saw .each I thought for. It turns out, knowing <%= is embedded Ruby syntax makes it easier to understand a Rails application.

    The long term objective of learning Rails is to be able to fix bugs or create features for the Exercism platform. It has been just a few days of this new approach to studying, and yet I feel that I have made more progress towards that goal in this time than the previous two months of studying without a plan.

August 31, 2018

  • Day 42

    Team Barcelona Duo (Exercism) [2018] — at August 31, 2018 15:09 UTC

    Back to the basics

    We started the day with our daily standup. Our coaches recognized that we are struggling to understand the issue we are working on due our current understanding of the rails framework. Our coach Emily suggested that we go back to the basics and to spend the day learning about rails. We both spent the day reviewing different aspects of the Rails framework. We looked at how the MVC structure in rails works, generated controllers, and looked at routes.

    It was important to learn how to generate models and to underrstand how to create tables and columns in the migration file. The migration files in the Exercism codebase make more sense now.

    The important lesson for today was that sometimes you need a pause. Reviewing the basics was helpful to take a step back and gain some more understanding. Next week we will come back to our issue with a fresh perspective.

August 30, 2018

  • Day 41

    Team Barcelona Duo (Exercism) [2018] — at August 30, 2018 19:55 UTC

    Patience is bitter, but its fruit is sweet

    Today we had a meeting with our supervisor Sophia. We filled her in on what we have learned this summer and what we are currently working on. After this, we spent the rest of the day digging into various aspects that we need in order to solve the current issue we are working on. Lori spent the day figuring out the flow of the mentor dashboard and mailers by manually entering data through the rails console. It was a very useful way to see how the different components in the mailers and dashboard work. Amalia worked on understanding REST patterns in Rails and looking at how resourceful routes are structured in the codebase. Our sprint ends tomorrow and we hope to apply what we learned this week in order to close the issue. It can be tempting to rush to finish things, but having the patience to struggle through an issue makes the moment when you figure it out magical.

    This week has been challenging. We have learned many new concepts. There have been moments when concepts clicked and other moments that were filled with loops of confusion. One of the best things our coach David taught us this summer is that programming is like climbing a series of steep hills. Initially, you have quite a steep climb before you are able to do the smallest of things. However, you quickly adapt, you get better with practice, and eventually...you still have the climb, but the climb gets easier. 🙂

August 29, 2018

  • Day 40

    Team Barcelona Duo (Exercism) [2018] — at August 29, 2018 17:01 UTC

    We started our day with a workshop at Thoughtworks on Impostor Syndrome. When individuals doubt their accomplishments and fear that they will be found out as a fraud this can have crippling effects. It is touching to see that this is talked about openly in a company and that through awareness we can identify when those behaviors appear within ourselves. It is also useful to undertand the signs so that we can be mindful when we see those behaviors in other people. It was reassuring to know that this feeling of being an imposter is common and that there are small steps we can take to practice not feeling this way. Experiencing the culture at Thoughtworks where curiosity, play, vulnerability, and failure are encouraged has been a fruitful space to experiment and learn.

    After the session, we retraced what we learned yesterday and we found an error in the mentor_notification_mailer_preview.rb file. This was causing an error in the way the view of a new iteration is being rendered in the mailers. We still need to figure out how the routes work in order to write our tests. Piecing together where different routes, tests, methods, and classes are used throughout the codebase has been a slow process. However, this has gotten us to be more familiar with the codebase, and we are now able to navigate through it much faster. We are looking forward to seeing what tomorrow will bring.

August 28, 2018

  • Day 39

    Team Barcelona Duo (Exercism) [2018] — at August 28, 2018 17:28 UTC

    One step closer

    Our day started with an early meeting. Every day we are filled with gratitude towards our mentors and coaches. We appreciate the pockets of time that they carve from their schedules to support our learning journey. This morning Jorge arrived to work early to dedicate some time to us. He gave a great overview of services and explained why they are used.

    It is possible to have controllers that included methods with thousands of lines of code in them. However, extracting logic from the models and controllers makes your code easier to maintain, and it is easier to add functionality in the future if needed. We also discussed the issue we are currently trying to resolve and talked about the importance of being able to see the changes we make in the mailers.

    After our meeting with Jorge, we spent the morning trying to see how we could preview the email sent to a mentor when a new iteration is available. One of the things we are really proud of is that we were able to work out how the mentor_notification_mailer_preview.rb file works all on our own. We were also able to apply what we learned from our coach Nacho yesterday to create a new discussion post through the rails console. We were feeling puzzled because despite being able to piece together quite a few things, we still had not managed to see a preview of the email. Finally we reached out to our mentor Jeremy, who pointed us to the correct link, and we were able to preview our changes.

    We finished the day summarizing what we learned and outlining the next steps we will take in order to solve the issue. The first thing we will do tomorrow is work on breaking the tests to see how the routes in the mailers are generated. Now that we can preview the outcome, it will get us one step closer to figuring out how to solve the issue.

    One of the things we were both touched by is Jeremy's willingness to help and mentor us. We are incredibly lucky to be surrounded by such amazing and caring people who go beyond anything we could have ever expected. We have learned more in the last 2 months than we did in a year on our own. It is thanks to the dedication and support of our entire team that this has been possible.

August 27, 2018

  • Day 38

    Team Barcelona Duo (Exercism) [2018] — at August 27, 2018 17:37 UTC

    The River and the Rock

    "In the confrontation between the river and the rock, the river always wins... not by strength, but by perseverance."

    We think that this quote summarizes our day today. Last week we were a bit disappointed that we had not resolved the issue that was assigned to us. While we did not manage to finish the issue today, we were able to uncover more pieces of the puzzle, and we feel we are getting closer to finding a solution.

    We had a great session with our coach Javi today. We managed to log in as a mentor and see the mentor dashboard. This helped us understand how the code in the mentor dashboard works. It also helped us see that the notifications that a mentor receives through the platform are separate from the email notifications that a mentor receives when a new iteration to a solution is available. We learned how to use the rails console to create records in our local copy of the database. This was useful because it helped us see how notifications appear on the mentor dashboard. We also learned that FactoryBot helps create mock data for the tests to use.

    We still need to process what we learned today, but we have formed a new hypothesis that we will be testing out tomorrow. We will be trying to

    1. Understand the files in services/creates_mentor_discussion_post.rb and services/creates_user_discussion_post.rb.
    2. Writing tests to test the changes that we make.
    3. Figuring out how to interact with factory bot to create mock data for our tests.

    Honestly, the connection between the pieces is not super clear yet, but our enthusiasm is high. We are one step closer, and tomorrow we will have another chance to make another attempt.

August 24, 2018

  • Day 37

    Team Barcelona Duo (Exercism) [2018] — at August 24, 2018 16:36 UTC

    Using Retrospectives to Turn Disasters to Success

    Today we had our retrospective. Both of us felt a bit disappointed that we did not resolve the issue assigned to us. We spent a lot of time reading Rails mailers documentation, which taught us a lot about how things work, in general, but not the specific information that we needed to resolve the the issue. We had a Slack session with our mentor that helped us immensely, but we had already spent a day and a half interpreting the documentation with very little to show for it. So we entered our retrospective a bit disappointed. But we were immediately put at ease by our moderator, Álvaro, a ThoughtWorker not officially affiliated with the project. He reminded us of the four parts of a retrospective: what went well, what can be improved, puzzles followed by a discussion to decide on action items. It would be these action items that would allow us to do better as we move forward. Following is a summary of a few of the issues raised and the action items that we have agreed upon.

    What can be improved
    In part because of the Rails Girls holiday, we had skipped our last retro/planning session after we finished our sprint. As a result, we started the week without having accurately sized the issue. In particular, we did not identify the concepts we needed to know in order to complete the task assigned to us. In other words, we improvised. This led to a lot of time spent studying a Ruby gem that we had identified as important, but not other gems which were equally important.

    Action Item 1
    Retrospectives and planning sessions are the key to our success. It is important to identify the knowledge we will need to complete a given task and schedule time with our coaches and/or mentors to get any training we need to remedy our shortcomings prior to the start of our sprint .

    What can be improved
    A second issue that emerged is that we have not figured out how to divide our time between working together and working independently. As Jeremy mentioned during our last meeting with him, collective knowledge is displayed during our pair coding sessions. While beneficial, it may obscure individual shortcomings. He encouraged us to work on Exercism exercises separately. It is true, individually we have different strengths and weaknesses and we need time to work on these.

    Action Item
    At TW some teams schedule "pair time", the hours during the day they will work with others. This allows each team member to define their work activities outside of certain time as they see fit. For the next week we are going to dedicate 2 hours each day to working together. As with all things, this is an experiment. We may find that we need more time together (or less) so we will assess this arrangement at our next retrospective.

    What can be improved
    Related to the previous issue, we have been struggling with how to divide our time between study time and coding. Within this, we have not found a balance between studying for general knowledge acquisition (e.g., learning Ruby through Exercism exercises or ruby koans) and learning concepts need to apply to the issue we are trying to resolve (e.g., learning about a Ruby gem). As lifelong learners we know that studying can send you down a lot of rabbit holes. It is fun and we enjoy the process. At the same time, we have tasks to complete and we need to ensure that are passion for learning does not interfere with our responsibilities.

    Action Item 3
    Our coaches Emily and Maikha explained to us that during their planning session they identify what the need to become familiar with in order to complete a task. These "spikes" have to be considered when we are estimating our velocity. With our coaches we will identify our spikes during our planning session. Individually, we will decide when we schedule these into our work day.

    Some thoughts on our host company

    We are continuously impressed by the people of ThoughtWorks. We ask people who have no official role in the project for help and they give it selflessly. We are invited to events and made to feel at home. Everyone we come in contact with makes us feel like we are part of the ThoughtWorks family. Take for example, Álvaro. He enthusiastically agreed to act as our moderator, and he also took the initiative to look at the common TW calendar to schedule a time. After, he thanked us for asking him. There is something really special about this place.

    Not project related, but very important

    • After her first drone flying lesson with Donald, another cool ThoughtWorker, Lori is an official member of the unofficial ThoughWorkers Drone club.

  • Day 36

    Team Barcelona Duo (Exercism) [2018] — at August 24, 2018 04:33 UTC

    Breaking the Codebase

    Yesterday one of our mentors encouraged us to play around with the codebase and try and figure out how each part of the code works. We discovered that there is something really liberating about making bugs instead of trying to fix them. What became apparent is how different parts of the code work together. If we changed one parameter the code broke in different places. It is quite an adventure.

    As a result of playing with the code we learned more about how the tests work. We had been running system wide tests, which take about five minutes, but we learned with the help of Jeremy that we could run individual tests if we included the path to the location of the tests.

    We finish our sprint tomorrow and have scheduled a retrospective for tomorrow afternoon. It is doubtful that we will finish the issued we have been assigned. Unfortunately the progress we have made is not apparent if we list it as one issue. We still need to break down goals into smaller steps so we can recognize the incremental progress we make. It is an iterative process and the important thing is that we are learning from our mistakes.