Author Archives: rickwphillips

The Abstract Class – Sprint Retrospective #2

Highlights:

  • Team communications
  • AMPATH application
  • Learned about Scrum

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns – Retreat into Competence

Summary

There are times when we are reminded of the vastness of our ignorance. As we travel outside our comfort zone of experience, we are sometime left feeling overwhelmed by just how much we don’t know. When this happens, we can take a temporary reprieve into one of our stronger skill sets and reinforce our confidence in our competence. Used wisely, this method can recharge our resolve to charge ahead into uncharted territories.

My Reaction

I think that this is great advice. I particularly like how it includes the warning to not misuse this pattern in a counter productive way. There may be times when it is inappropriate to revert to old habits and methods simply to forgo more difficult but correct methods.

It further reinforces this by stating that this is considered a risky method and further warns that repeated use could result in your skills becoming obsolete. It really accomplished emphasizing the handle with care mentality needed with the Retreat Into Competence pattern. While it is very powerful, it can also quickly become a crutch that could potentially stunt your development growth.

These warnings may prove to much for me to use this pattern very often, if at all. I may not find myself In the Deep End as I bring a certain level of previous professional experience to the table. I could see myself prioritizing tasks that involve items that I am more familiar with while pushing others down the list.

One of these tasks could involve a language I have worked with before while the other involves researching a new framework. I may stick with what I know while prolonging the unknown. I may be better served going with the unknown task and reserving the known item if I find myself overwhelmed with the new task. This pattern suggests that may help.

I agree with the simplicity of the pattern; its almost immediate potential impact; and the potential pitfalls with its misuse. The next time I find myself feeling overwhelmed by my ignorance, I will try to remember this pattern and look for an opportunity to reinforce my confidence by accomplishing a task in a familiar way. This sense of accomplishment could propel me to success in overcoming my original sense of being overwhelmed.

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns – Concrete Skills

Summary

We all need our set of Concrete Skills that we can build upon.  There are certain types of soft skills that allow you to contribute to a team. Understanding which ones are important to flesh out and explore is very important. In our current landscape, having a working skill set with Git, Agile methods, and other collaboration tools is of the utmost importance.

 

My Reaction

Understanding and using Git in today’s development world has become ubiquitous. It seems that every job description contains some reference to Git or software like it. I agree that this is a necessary concrete skill that each developer should learn early in their education.

I see the need for me to better develop my experience with writing build files and understanding what they are used for. I can imagine that having a better understanding of this concept is a good place to start.

In the chapter, there was a reference to a CV. I was not familiar with the acronym and looked it up. It seems to stand for curriculum vitae. I had not hear of this phrase and learned that it is a written overview of a person’s experience and other qualifications for a job opportunity. It is like a more detailed resume. I intend in creating my own CV and adding it to my website.

Once this is created, I will review it and curate it as I learn more about my craft and better understand my experience.

The other interesting point of the pattern was the statement that your virtues must be a little more overt in the beginning. I will have to give this idea a little more thought as I struggle to understand its purpose.

I agree that these concrete are a very necessary part to a successful career. There were times where I had to leverage my Photoshop or video editing skills to get the job done. I also lended my programming skills to many minor projects at my previous jobs. These minor skill sets have helped me remain valuable in many business situations.

Finally, now that I understand what a curriculum vitae is, I will begin to make one on my website. This is the perfect place for something like a CV. Once this page is completed, I can add a link to it on my resume. This will allow me to keep my resume concise while offering a more comprehensive version of my previous experience.

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

The Abstract Class – Sprint Retrospective #1

The Abstract Class – Sprint Retrospective #1

Our team, named The Abstract Class, reached the end of its first Agile Sprint today and this is my retrospective. This week, I learned about building and running my first Angular application cloned from a shared repository. This was part of a larger group of accounts and applications that had to be processed mentally. There is Trello, Jira, CatME, Slack Channels, and GitHub groups. As a team and individually, we each had to navigate the many new interfaces and learn the intended uses for these new tools. I feel out team effectively grasp and started using the tools as intended.

The most technical feat our entire team accomplished this week was cloning of the AMPATH application and connecting to our test server. We ran into a situation where we attempted to build the application with ng serve and not npm start. This caused errors. Once we realized our mistake, entering the correct command got us up and running.

Our team handled AMPATH application ladda build errors using the class Slack channel. We shared screenshots, log files, and advice when one of us was having trouble. We accomplished getting a teammate up and running strictly through this Slack channel conversation. This provided other class members the ability to view our conversation and avoid the same issues, potentially. We could continue to publicly resolve future issues in hopes that this inclusive feedback will help resolve issues quicker.

Our team worked very well together on this sprint. We used Slack appropriately and resolved issues on that platform efficiently. We could have used Trello more effectively during the sprint, as we were moving the boards around during the end of spring class. Our stand-ups were a little spotty in the beginning but we, as a team, finished strong.  

We created our GitHub team group and began discussion on the best way to manage changes and pull requests. We are unsure of which of the following approaches is best:

  • Create individual branches for each developer on the group’s fork of the Master branch. We would create an additional branch called merge_changes which would act as the buffer between our branch changes and the Master branch. Pull requests would be merged as a group.

  • Create individual forks for the group’s fork of the Master. Then each individual form would create a branch on their fork. Merge requests would still be handled by anyone who did not create the pull request.

We have yet to determine which of these is best. Our next Sprint planning meeting will have to include discussion on this point.

We also discussed the best way to handle our group’s Trello board. During this spring, most of the tasks were required to be done by each member. This caused some confusion on the boards. We were not sure of the best method to have some of us done a particular task while other were not. There were some suggestions about checkboxes, multiple cards, or color coding. In the end, we determine that the future tasks should be more individualized. This makes the requirement for us to find a better way less important.

Here is a list of things I would recommend for a better and more productive sprint:

  • Log into Slack everyday of your sprint. Your teammates may have left you messages.

  • Get Slack on your mobile device. It is a seamless transition between the desktop and mobile versions.

  • Ask for help. Your teammates are usually more than willing to give a hand.

Looking towards the next sprint, I expect to get much more technical and in-depth. I will also be looking for opportunities to find retrospective material to include.

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns – Reflect As You Work

Summary

Self reflection is not always easy. Still, we must find a way to look at our work as objectively as possible. Using a Personal Practices Map and a feedback loop, we can gain a better understanding of the current state of our practices and methods.

My Reaction

The Personal Practice Map is the first thing that was be to me. I am not sure if I can remember back well enough to create one from my previous experience. But I can make one for today and begin to map my methods moving forward.

An approach I could use with the map would be to note the things I did not know back then. Some of these legacy items could include, “I did not use proper testing for my code,” or “I was not coding to an interface.”  These are some of the items that could be included on an earlier version of my personal practice map.

I agree with the concept of mindful and unobtrusive observation.  Watching and learning from those who have the skills that you would like to obtain is an excellent way of absorbing those skills. I look forward to engaging in group programming in my career and think that I would try the write a test then code to the tests patterns. This seems to be an interesting and efficient way to get fast results.

In conclusion, the Reflect as You Work pattern makes a lot of sense to me. It reminds us to be mindful and observant for opportunities to learn from ourselves and others. It makes the claim that watchful introspection is key to real personal growth. I agree with the sentiment wholeheartedly.

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns – Create Feedback Loop

Summary

Self assessment can be a very difficult thing to accurately accomplish. When learning a new skill, we may not be aware of our mistakes as we are making them. Creating an early and open feedback loop can be a very useful tool for identifying and mitigating these mistakes.

My Reaction

This pattern is very useful in that it teaches us to remember our tendency to overestimate our own aptitude. It even notes a correlation between our lack of real ability and the lack of perceived ability. This was an interesting concept that seems obvious in retrospect, but I found to be intriguing.  

Finding opportunities to get feedback involves being willing to hear both praise and criticism. This may be scary for some, but understanding and learning from our mistakes is worth much more than our fear of failure.

I had not considered the idea of stop energy. This is when feedback received does not provide constructive, actionable input. Instead, it is meant to stifle and discourage. This type of feedback is mostly about the person giving it and usually lacks any kind of real consideration about you or your current situation. Understanding how to identify the difference is important to maximizing your positive feedback loop. This was a new concept to me and it taught me a new approach to my future feedback opportunities.

There are two types of positive feedback that can be used to constantly adjust and adapt. This is the biggest take away from the pattern for me. The two type to consider are balancing and reinforcing feedback. They operate to push a system to relative stability and maintain longevity within that system.

Balancing feedback encourages us to do less of something while reinforcing feedback encourages us to do less of it. This is a very simple yet profound idea. The distinction between positive and negative feedback seems much easier to determine. This finer granularity within positive feedback is much tougher figure out.

Getting better at this takes practice. It takes understanding more that just what someone says but how it is said. It involves considering context and meaning. These things take time and are tough to convey in a book. I will try to use these lessons in my next project, assignment, or human interaction. There is always an opportunity to establish and learn from a feedback loop. Simply interacting with others and seeing what they think and feel is an example of one.

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns – The Deep End

Summary

The need to grow your skills is a necessary part of being an apprentice. Part of this is getting outside of your comfort zone and trying new and challenging projects. Understanding what your deficiencies are can help. Waiting until you are comfortable is a recipe for accomplishing little. To truly understand what you are capable of, you have to jump into The Deep End.

My Reaction

In Chapter 1 we were warned that some of these points may seem obvious. When I first read through The Deep End​, I believed that this was one of those. But the very next point in the first chapter was that successful people around me were already doing these things. That was the most profound take away from this point was for me. I am struggling to expand my understanding beyond the web centric background from which I come from. My attention could be better directly communicating with those in class who have completed larger projects that me.

I do not believe that this pattern has changed my opinion about my intended profession. In fact, this articulates a gnawing hunch that I couldn’t quite grasp. It motivates me to find ways to expand my understanding and abilities. Just today, I created, signed, and installed a new SSL Certificate for a client which allows them to process credit cards on their site. I believe these are the types of incremental boosts in confidence that jumping in The Deep End may provide. 

I agree with this pattern because it makes obvious sense on the surface yet may be one of the hardest to put into action. I enjoy branching out in class creating applications in Java but find a certain comfort in Drupal web development and its environment. I have done it for years and know it well. But if it is not plateauing, I may be in a bit of a rut. This pattern helped me realize this about myself.

The other part that I agree with involves how you can ask yourself the question regarding your past projects and their scope. You should have the answer to this handy to determine where to go next. This can also help you gauge to measure every project you have ever been a part of. I will try to see how well I am able to do this. 

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns – Find Mentors

Short Summary

 

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns – Chapter 1

My thoughts on the first chapter

The opening chapter of the book Apprenticeship Patterns serves as a brief introduction for what to expect throughout the rest of the book. There were a number of concepts that I am unfamiliar with and am looking forward to learning more about. I had previously heard of the terms apprentice; journeyman; and craftsman;  but never I had not thought of them in the context of software development. 

Once we wrap up all of these new concept applications, we arrive at the idea of the Software Craftsman. Within this moniker are suggestions on applicable mindsets that encourage pragmatism, information sharing, and surrounding oneself with those with better skills. Each of these taken individually seem obvious. But once you line then up under a single purpose, they highlight an approach to becoming an accomplished developer through community and experimentation. 

Breaking down the titles

The opening chapter offers us a loose definition of the hierarchies we can expect to encounter in this book: Craftsmen (or Master), journeymen, and apprentices. But beyond these archaic titles is a value system that should be imbued on the reader. This system lays the foundation for becoming a better software developer. 

The apprentice is probably what most of us in this class would classify themselves, yet this assumes a journeymen/master who is teaching us. The classroom model is our current vehicle, but soon it will branch out as we become journeymen and expand on our skill set. 

The master or craftsman designation seems to be reserved for those that can and are willing to further the zeitgeist of his or her craft. These are those who reach a point that they re-examine the methods and rules of his or her craft and attempt to better the tools and means of it. 

My takeaways

I am learning that there are pattern languages for just about any discipline one could imagine. I am not confident enough in mu understanding to say whether I agree or disagree with the material but am intrigued by the prospect of bettering my skill set and understanding of the development world. I am eager to dig into the material and begin to apply it to my career. 

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

WSU SP18 CS-448 Introductory Blog

This post is to satisfy the WSU CS-448 blog entry post required for class. 

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.