Journey into “Craft Over Art” (An Individual Apprenticeship Pattern)

On this Software Development Capstone journey part of my assignment is to choose 10 Individual Apprenticeship Patterns out of 35 patterns among Chapters 2-6 from the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsmanby Dave Hoover and Adewale Oshineye. For my tenth and final individual Apprenticeship pattern I decided to blog about “Craft Over Art” pattern.

Summary

The pattern “Craft over Art” is the idea of choosing the craft of programming and making thing functional. Rather than choosing art of programming and making the program look beautiful but not so functional for the customer. Even though you may find an opportunity taking your customer problem and making something nice that will impress your coworkers, it is best that you put the customer needs before your own selfish wants or needs. When it comes to dealing with customer your goal should always be choosing creating a functional valuable product, rather than something else that only advance your own self interest. When dealing with customers it is more important to choose the craft of software development rather than feeding that desire to creating something beautiful, yet not truly functional or deliverable in the real world. This pattern is not telling you that things can’t be beautiful it more saying that whatever you build for your customer must be functional and useful, therefore you must be willing to sacrifice beauty over utility. “The more useful a piece of software, the more important it is that the software be high quality. But quality takes time. You will have to work toward a suitable level of quality by repeatedly making trade-offs between beauty and utility.”

My Reaction

This pattern helps you understand the impotence of building “Craft over Art” because it reminds you that creating something useless yet beautiful is not craftsmanship. I agree with this idea because crating a useful software program far more important than a beautiful non-functional one. I found this pattern to be interesting but also useful and thought-provoking. This pattern has definitely changed the way I think about my profession and the way I think, the reason being is that I should always be willing to sacrifice beauty before sacrificing usefulness.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

Advertisements

Sprint-6 Retrospective Blog

The time for the final sprint retrospective blog is here. It is time for Sprint-6 Retrospective Blog Post. As you are probably aware by now, during this semester I was working on a AMPATH project with a team I was assigned to by my Software Development Capstone professor. As part of our assignment we are assigned to complete a Sprint Retrospective blog post at the end of each sprint. As of May 6th, 2019, we have completed Sprint-6. During this sixth and final sprint we were able to complete a minimal viable product to show case in our final presentation.  For this final sprint our task was different from the previous ones. For sprint-6 our task involved the following:

  1. Pulling all final changes from team members and integrating new updates.
  2. try to integrate the other teams work with our own.
  3. Divide the work needed to be done by our team for the final presentation of this project.

During this sprint my team and I focus mainly on trying to get the minimal viable product for the project. That way we can have something ready to show for our final presentation. At the beginning of this sprint we decided to use this sprint to focus on wrapping up our project, and working on getting our final presentation ready. We decided to do this approach by first finding out what we should discuss in our presentation and what each of us in the team should and will be talking about. For the final presentation, I will be talking about building the left navigation bar using Angular Material and how I got the buttons to work and on a new page when clicked by using an app routing module.

Beside working on the final presentation I also, spent a lot of time trying to integrate the other team tabs bar with our left navigation bar. I found this process pretty complicated because I ran into a lot of problems. It sadden me to say but trying to integrate the other team tabs with our left navigation bar was an epic fail. I tried many different approaches and nothing works. I also believe that I would have found a solution to this problem if I wasn’t working on a sensitive time frame.

During sprint-6, I’ve learned a little more about Angular Material, and a different approach we could have done in creating the left navigation bar. If there was time I would have tried the different approach and probably would have found a solution to our integration problem. For this sprint I also spent a lot of time working on the final presentation and trying to make sure that the project looks good and it looks like it contains the minimal viable product. From everything done in this sprint I have learned how we should set up and divide the work we have to cover in the final presentation. I can honestly say that everything done in this sprint has been an interesting and worth learning process from how to work with a team and applying everything we have learnt those far in our software development journey. In light of everything I learnt there are a few things that went on during the integration process that requires details explanations or strategies that would be required for handling the integration step differently for next time. For instance integration should have been done earlier on and the approach we were to use in this project should have been something covered earlier on or in either of the third or fourth sprint. That being said this project has proven to be, fun and interesting.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

Sprint-5 Retrospective Bog

It’s time for Sprint-5 Retrospective Blog Post. As you are probably aware by now, during this semester I will be working on a AMPATH project with a team I was assigned on by my Software Development Capstone professor. As part of our assignment we are assigned to complete a Sprint Retrospective blog post at the end of each sprint. As of Today, April 23rd, 2019, we have completed Sprint-5. During this fifth sprint we were able to get some task done and some task started during this past fifth sprint cycle.  For sprint-5 our task involved the following:

  1. Collapse nav-bar when clicking on button to go to the new page -> ME
  2. Add button in nav-bar to redirect back to the home screen -> ME
  3. Adding sub-menus to the existing buttons – Mike
  4. Move buttons farther down the nav-bar – kat
  5. Change colors of app – kat
  6. Left navigation bar – scaling -> Tim
  7. Start the final presentation – Quoc

During this sprint my team and I all focus on our individual task we assigned to each other. For this sprint one of my task was to figure out how to collapse the nav-bar when clicking on the button to go to the new page. My other task is to add a button that redirects you back to the home screen on clicked. Each of my team mates had task which I have listed them. In this retrospective blog I would only discuss my task and what I have done so far.

From the task I was assigned (more like picked) I had to make the nav-bar collapse once any of the button was clicked on to navigate to the next page. This took me a little while to figure out but one I did. I realize how simple this step truly was. The way I did this was by adding “(click)=”drawer.close()”” for each button after “mat-button”. The way this work is that when you click on the button it leads you to the page expected and closes the nav-bar. For my next task I have to add a button that will redirect me to the home screen once the button is clicked on. This task I have not completed I have started it but I have not finish this task yet. For the next and final sprint I hope to have this task completed. 

I can say that during sprint-5, I’ve learned a little more about Angular Material, and how to get the nav-bar close on click. For this sprint I am still doing some reading and tutorial on Angular Material because I found its tool pretty interesting and worth learning the different cool things that can be done. In light of everything I learnt there is nothing very special that went on that requires details explanations or strategies that would be required for handling things differently next time. That being said this project is still proving to be fun and interesting. So far this project is going without a hitch, and it’s not making anything more complicated than it has to be.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

Journey into “Breakable Toys” (An Individual Apprenticeship Pattern)

On this Software Development Capstone journey part of my assignment is to choose 10 Individual Apprenticeship Patterns out of 35 patterns among Chapters 2-6 from the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsmanby Dave Hoover and Adewale Oshineye. For my ninth individual Apprenticeship pattern I decided to blog about “Breakable Toys” pattern.

Summary

When you do not have much experience and you work in an environment where there is no room for failure and mistakes. Meaning mistakes are not tolerable, even if you can build experience from your mistakes/failure and grow and inevitably become successful the idea of failure is not an option allowed. Often the best solution to this problem is to build similar toy systems with a different scope to the one being built at work that will allow you to break it, test it, and budget for failure. This approach is the best solution because as a software developer having a comfortable safe environment where you are free to make mistake without any serious consequences. This approach will help allow you to learn from your mistakes and grow into a better software developer. When implementing this pattern it is important that the systems you build are relevant and useful to you. The book suggest: “For example, build your own wiki, calendar, or address book. Your solutions might be massively over-engineered for the problem they’re solving, and probably could easily be replaced by something off the shelf. However, these projects are where you are allowed to fail.” These are project ideas where only you are affected when mistakes or failure occur. As said in the book, “Breakable Toys is more about deliberately creating opportunities to learn by stepping beyond your boundaries and single-handedly building complete software projects.”

My Reaction

This pattern helps you understand the impotence of building “Breakable toys” because it allows you to build systems that you can break and learn from its failures and mistakes. I agree with this idea because the best way to success is through failure. However; in a work environment failure is not an option so the best way around that is to build your own toy. I found this pattern to be interesting but also useful and thought-provoking. This pattern has definitely changed the way I think about my profession and the way I think, the reason being is that it has made me realize that I need to start working building “Breakable toys” that would give me some experience.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

Journey into “Nurture Your Passion” (An Individual Apprenticeship Pattern)

On this Software Development Capstone journey part of my assignment is to choose 10 Individual Apprenticeship Patterns out of 35 patterns among Chapters 2-6 from the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsmanby Dave Hoover and Adewale Oshineye. For my eighth individual Apprenticeship pattern I decided to blog about “Nurture Your Passion” pattern.

Summary

When you feel as if you have been hired into a software developer job that is asphyxiating your passion. Sometimes the best solution is to work on some side projects that you find interesting in your work place. If you can not find something interesting at work, then you can dedicate some time on the side building some “Breakable Toys”. Another approach is to ensure that you keep reading great literature in our field that will essentially help carry you through difficult times, such as ones that threatens your passion for the craft. You should also make sure that when joining an organization, that you are joining one with a career path that is related or will lead to your passion. This pattern also suggest us to make sure we “set clear boundaries that define the sort of environment you are willing to work in”. Understand that sometimes you run the risk that the boundaries you set might cause you to “get passed over for pay raises, promotions, kudos, or popularity. But these boundaries are necessary if you are going to break free of hostile conditions and keep your passion strong”.

My Reaction

This pattern helps you understand the importance of doing something you are passionate about. I agree with this idea because it make sense, we need to insure that we are nurturing our passion in order for us to remain happy and passionate about what we do. I found this pattern to be interesting but also useful and thought-provoking. This pattern has definitely changed the way I think about my profession and the way I think, the reason being is that it has made me realize that whatever I do, I should make sure it is something I am passionate about and I am always trying to find ways to keep that passion for the craft alive.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

Sprint-4 Retrospective Blog

It’s time for Sprint-4 Retrospective Blog Post. As you are probably aware by now, during this semester I will be working on a AMPATH project with a team I was assigned on by my Software Development Capstone professor. As part of our assignment we are assigned to complete a Sprint Retrospective blog post at the end of each sprint. As of Today, April 9th, 2019, we have completed Sprint-4. During this fourth sprint we were able to get everything we intended to get done during this fourth sprint cycle.  For sprint-4 our task involved the following:

  1. Learn about Angular Material
  2. Start working on the left navigation bar for the ampath mobile app
  3. As a team we had to divide the work to start working on the left navigation bar for the ampath app project. The work to be divided: setting up the project in GitHub, working on the left navigation bar skeleton, scaling, design, its content and button.

During this sprint the reason we had to learn about angular material is because it provides a Google’s Material Design Specification. Angular material is a UI component library that is well-tested and reusable for functional web pages and web applications. Since, in our project we are working with angular with the goal to contribute to the ampath mobile app.  Learning about angular material was considered an important steps to getting the left navigation bar started. After I had done the tutorial on angular material I started on our left navigation bar. Where I worked on the design, and minor button function. I generated a routing module, a few sub module and sub component that can be used for button function. During this sprint we was able to make the left navigation bar; however, it still require some tweaks and extra work to it. We decided that for the next spring we would focus more on improving the features in order to have a side bar with custom design and add some function it as well. For this sprint we only had to get the left navigation bar started to have some visual progress. Where next sprint the goal is to have a little more details.

I can say that during sprint-4, I’ve learned a little more about mobile angular doc, and about angular material. While reading and doing tutorial on angular material I learned the benefits and the different type of possibilities that can be done working with angular material. For example, you can use angular material for working on standers app layout, stander design, creating stander navigational tool and etc. Which I found pretty interested and will keep doing further research about it. In light of everything I learnt there is nothing very special that went on that requires details explanations or strategies that would be required for handling things differently next time. That being said this project is proving to be fun and interesting. So far this project is going without a hitch, and it’s not making anything more complicated than it has to be.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

Journey into “Retreat into Competence” (An Individual Apprenticeship Pattern)

On this Software Development Capstone journey part of my assignment is to choose 10 Individual Apprenticeship Patterns out of 35 patterns among Chapters 2-6 from the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsmanby Dave Hoover and Adewale Oshineye. For my seventh individual Apprenticeship pattern I have chosen to do “Retreat into Competence”.

Summary

There will be times, where you will feel completely over whelmed because you have taking on more than you can handle. Feeling over whelmed can be caused by other circumstances like having lack of knowledge and/or lack of understanding on just about anything regardless of complex level. Using the “Retreat into Competence” pattern is a good solution for this dilemma, even if  this solution is only a temporary solution. This pattern suggest that when you are way over your head the best solution is to take two steps back in order to be able to take 10 steps forward towards the right directions. The way the book puts it is to “Pull back, then launch forward like a stone from a catapult. Retreat briefly into your competence to regain your composure.” We must understand that to use this pattern we must set a time limit to our break or however long we choose to take a break. The reason is that if we take to long we can get stuck and never end up moving towards our true end goal. Another suggestion given is to seek guidance from your mentors because with their help and the new information you had picked up from your past experience will help you “be better equipped to handle the inevitable bumps on the road when you try again”.

 

My Reaction

This pattern helps you understand the importance needed to retreat into competence in order to have a clearer mind that can help you solve whatever, issue you might be facing at the moment. I agree with this idea because I found this pattern to be interesting but also useful and thought-provoking. This pattern has definitely changed the way I think about my profession and the way I think because it has made me realize that I should not panic if I do not know something but instead I should be taking steps back to see the big picture in order to be able to move forward and handle the situation I was presented with.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.