Category Archives: Week 1

Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman

The Introduction to the textbook sets the goals for the book and the targeted audience.

“One of our goals for this book is to inspire the people who love to create software to stay focused on their craft.”

“This book is written entirely for you—not for your boss, not for your team leader, not for your professor.”

What Is Software Craftsmanship?
The book considers software craftsmanship as some overlapping values, listed here are those values with my thoughts on them.

  • Growth Mindset, the belief that you can always improve and find faster, easier ways to do things if you are prepared to work. Failure should be seen as an incentive to change your approach. “Effort is what makes you smart or talented” – Carol Dweck. I think the growth mindset it very important to quality and success and avoiding burn-out.
  • Constantly adapting to constructive criticism and learning to improve areas where you are lacking. This idea is essential to ensuring quality work and keeping up-to-date on the best practices.
  • A desire to be pragmatic rather than dogmatic. This important trade-off allows you to get things done and avoid spending too much time making things “perfect”. This ties in well with YAGNI.
  • A belief that information is better shared than hoarded. Everyone benefits from shared knowledge which is the basis for the idea of Open Source projects. This allows a greater population to improve shared code and learn how things work.
  • Ability and willingness to experiment and not worry about failing, because you are able to learn from the experience.
  • Taking control of and responsibility for our destinies rather than waiting for someone else to give us the answer. I think this is basically saying to take initiative, or try to think differently to solve a problem.
  • Focusing on individuals rather than groups. This book is meant to help you as an individual improve your skills.
  • A commitment to inclusiveness. I think this is a good rule in everyday life but works with being a craftsman.
  • We are skill-centric rather than process-centric. It’s more important to be highly skilled than using the “right” process. I think it boils down to it pays to have the knowledge to use your skills in any situation, not having to rely on a template of tools.
  • Situated Learning, the idea of learning a skill around those using those skills. Working your first job as a software developer would be a good example of this.
  • Based on the introduction, this text appears to have very useful information for someone who wants to improve the quality of their work and what they contribute. The book includes good lessons that can apply to any aspect of life. It stresses the idea of improving skills by being open to learning from others, learn from mistakes, and never stop improving.

    The post Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman appeared first on code friendly.

    From the blog CS@Worcester – code friendly by erik and used with permission of the author. All other rights reserved by the author.

    Apprenticeship Patterns Chapter 1

    From the blog CS@Worcester – BenLag's Blog by benlagblog and used with permission of the author. All other rights reserved by the author.

    CS448 Intro blog

    Hi everybody, I’m Buvan, and I’m enrolled in CS448 with Karl Wurst, Ph.D.

    From the blog CS@Worcester – thewisedevloper by thewisedeveloper and used with permission of the author. All other rights reserved by the author.

    Apprenticeship Patterns Chapter 1

    Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye opens up with a really great hook that makes you want to dive deeper. The book, so far is extremely simple and easy to read. The authors do not overwhelm you with too much information. It feels like they are talking to you rather than telling you something. I like the medieval inspiration of guilds, masters, and apprentices. It brings me back to the days where I wanted to be a blacksmith apprentice (in 5th grade we went to Old Sturbridge Village which sparked my interest in blacksmithing). I never became one, obviously because there are no blacksmith masters around. Anyways, just the word apprenticeship gives me a feeling of being useful (or at least learning to be useful) and I enjoy the thought of having a master to teach me the crafts.

    My favorite line from this chapter was “Our goal here is not simply to hand people a rule book, but to give them the ability to create new practices for new contexts, which in turn drives the discipline of software development forward.” This is important because even the most skilled of teachers can learn things from students that think differently. Giving us the tools to make our own decisions is what we need to continue developing new and better technology.

    The authors include a bulleted list of values that describes the phrase software craftsmanship. Some of the most important values being:

    -Growth mindset. The author accurately explains that failure is just momentum to try again. Keep learning and growing from your mistakes an you will become very powerful.

    -Adaptability. Recognize that the world is changing around you and just because you think it is right, doesn’t mean it is.

    -Open source sharing. Share what you know rather than hoarding it. This will help progress software development as a whole.

    -Manifest Destiny. Go out and create your own opportunities rather than waiting for someone to give them to you.

    -Learn form your environment. Swallow your pride and ask for help from people around you. They have the knowledge and skills to advance your skills.

    The authors go on to explain what it means to be a journeyman, master and an apprentice.  As an apprentice you should always have the attitude that there is a better and faster way to do things. You should continuously absorb information from the people around you and use that information to your advantage. A journeyman is an apprentice that might switch between masters and relay ideas off each other. They are focused on enlarging their portfolio and working to become a master. A Master is the all powerful leader of the three. A Master retains all responsibilities from his journeymanship, with the added responsibility of furthering software development as a whole. He/she does this by teaching and continually learning.

    The phrase apprenticeship pattern does not mean that this book will teach you how to become a software designer. The patterns are simply a guide to bring you to the next level and get you better at what you want to do.

    From the blog CS@Worcester – Rookey Mistake by Shane Rookey and used with permission of the author. All other rights reserved by the author.

    Software Craftsmen, chapter 1, week-1

    Chapter 1. Introduction (Summary) The authors tell us that the concept of apprenticeship is one that encourages cooperation among the experts and novices. This cooperation results in the enrichment of the novice with respect to the expert’s know-hows. Apprentices eventually … Continue reading

    From the blog CS@Worcester – thewisedevloper by thewisedeveloper and used with permission of the author. All other rights reserved by the author.

    Intro – CS 448

    Hello Everyone in Cs-448  !

    My name is Kwame ofori and i am really looking forward to this class and getting some real world experiences. I believe experience is the best teacher so i am ready to learn !

     

     

    From the blog CS@Worcester – Le Blog Spot by Abranti3 Dada Kay and used with permission of the author. All other rights reserved by the author.

    CS-448 Capstone Blog Intro

    First Blog post for the capstone!

    From the blog CS@Worcester – Rookey Mistake by Shane Rookey and used with permission of the author. All other rights reserved by the author.

    Testing Categories and Tags for Syndication

    To help me with finding student’s blog posts that have been syndicated to the CS@Worcester blog, I have been asking them to tag them with the course number (e.g. CS-343). That has worked well for finding just the posts for a particular class.

    But, what would make it even easier for me, would be to also have them add a tag for the week that the post is due (e.g. Week-1) so that I don’t need to scroll back until I find the first post from the previous week.

    So, I’m tagging this post in the same way that I’m thinking of asking them to do it to see if it works.

    From the blog CS@Worcester – On becoming an Eccentric Professor… by Karl R. Wurst and used with permission of the author. All other rights reserved by the author.

    The Clean Coder, Chapters 1 & 2.

    “The Clean Coder: A Code of Conduct for Professional Programmers” is the first book I am reading by the author Robert C. Martin. Going through the pre-requisite introduction portion of the book Martin noticeably states that this particular book is full of catalog of his errors from his 42 years of experience in software engineering field and a set of guidelines to avoid them. I am expecting a lot of takeaways form this book for my Capstone course and professional career as well.

    Chapter 1: “Professionalism” discussions about the taking responsibilities and the various ways to be able to accomplish the responsibilities in regard of the true essence of professionalism. First part of chapter surrounds with the things every software professional should be familiar with such as Test Driven Development approach, QA process, code flexibility and so on. Of course these principles are important during the software development process. When the writer starts to talks about gaining credibility and trust through continuous learning, practice, collaboration, and customer service; things get excited. I agree with the writer how learning process is necessary for self-empowerment. Being up-to-date with the new disciplines and techniques is a must in Computer Science field. Similarly, practice help individual to refine and enhance our skills. Personal drive and team-building skills are valuable and necessary for developers striving for the top of the profession, but more is required. Though most developers bring a project to the table, pushing it through requires a strong ethic of customer service. Customer is critical because it establishes a path that helps make sure that the features you are developing are really going the address your customer’s need.

    Chapter 2: “Saying No” focuses upon team work. Martin gives a clear vision of how to be a successful team player. He states a team player is not someone who says yes all the time. Sometimes the only way to get to the right yes is to be unafraid and say no. I completely agree with the thought that, “What we all have to realize is that saying yes to dropping our professional disciplines is not the way to solve problems.” It rapidly becomes impossible to control all aspects of all the projects within a large area of responsibility. It is critical to develop teams that can bring the necessary talents to bear without requiring your direct intervention.

     

    From the blog CS@Worcester – Software Dev Capstone by osworup007 and used with permission of the author. All other rights reserved by the author.

    Reflections Week 1

    During this week we were put into groups and asked to join the courses Slack team and to make a channel for out group. We also learned about Scrum and how we should be working on our upcoming project in the Scrum fashion. Using the Scrum way of working together I think will help us to stay motivated and organized. I then researched OpenMRS and AMPATH, we will be working on projects within AMPATH. While working on this project we will be using Angular 2, so I did some research about Angular and looked up some helpful tutorials that I can use later to help start the learning process for this language. The Scrum way of working together I think will be a valuable skill that I can take away from this course and apply to my professional career.

    From the blog CS@Worcester – Software Testing by kyleottblog and used with permission of the author. All other rights reserved by the author.