Author Archives: rkitenge91

Nurture Your Passion

I decided to write on the importance of “Nurturing your passion” because as a senior who finished college and is going for the professional career, I think this pattern is a piece of advice. Being a great software developer isn’t something that happens over time. In contrary, it is time consuming, energy consuming and requires determination and sacrifice.

To become software developer, we will need to have a passion for software craftsmanship. Unfortunately, our daily activities often work to diminish this passion. We might be faced with demoralizing corporate hierarchies, project death marches, abusive managers, or cynical colleagues. It’s hard for our passion to grow when exposed to such hostile conditions, but there are some basic actions we can take to sustain it. Work on what we like. Find something at work that interests us, identify it as something we enjoy, and pour ourselves into it.

I have always said that loving what we do is what keeps us going forward and wanting to master I that specific domain of our professional life. When we don’t love what we do, we don’t even other putting the effort to master it or accomplish something great because our mind isn’t even there. Immersing ourselves I some of the great literature of our field can carry us through the rough spots when our passion is in jeopardy.

I think the best advice here is that if, as software developers, we find ourselves in a company that stifles or suffocates our passion, we need to have the guts to move on and go to for something that we love. This piece of advice is very relevant and important. I think finding a job that a software developer can at least partially nurture his passion is very important. We spend so much of our lives at work. So, it is very important to find happiness there, if possible. And when we don’t find it, have the courage and the positivity to keep looking until we find it because when we don’t love what we do, it affects our wat of working and also our mental health.

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

Retreat Into Competence

It happens to everyone to feel overwhelmed, confused, and realizing how little we actually know or that we’re working on a project that is actually not going well. Retreating into our competence and regain it is he solution to this problem. Sometimes, stepping on the side is a good thing because when we pull back, then it’s easier for us to launch ourselves.

In the pattern, the author Dave H. Hoover says: “An apprenticeship is a roller-coaster ride. You will experience the thrill of learning new technologies, leveraging your knowledge and creativity to deliver value to your customers. But you will also experience the heart-in-your-throat terror of perceiving just how little you know compared to the craftsmen and experts you meet along the way. It can be overwhelming, particularly when a deadline is looming or when you’re dealing with production issues.”. Wen reading this, we can understand that this is a normal and inevitable phenomenon along The Long Road. Overcoming the fear of your own incompetence is the bridge between Expose Your Ignorance and Confront Your Ignorance.

This pattern is most relevant for people who have stretched themselves far beyond their ability. If your apprenticeship has you taking reasonable-sized steps forward, taking on gradually increasing responsibilities and technical complexity, then you may not need to take shelter in this pattern. But if you are really struggling or are barely keeping your head above water in The Deep End, look for opportunities to temporarily retreat. Sometimes you need to take one step back in order to take two steps forward. From this pattern, I just understand that pressuring ourselves and feeling overwhelmed, or a project not working and feeling frustrated, stepping off and pulling back will help us go even far. I love the way the author explained and said that when we pull back, then launch forward, it is like a some from a catapult. I am pretty sure we have all seen catapult and the further back we pull, the further the stone will go forward. Same with software, when we feel like we can’t do it anymore, let’s pull back and retreat into our competence. That will be the way we will regain it.

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

The Deep End

This is one of my favorite patterns which is “The Deep End” because it talks about the importance of leaving our comfort zone and jump into the dep end. I love how this pattern explains the importance of being open minded and ready to confront anything because nothing guarantees that we will always be in a domain that matches our skill level.

Waiting until you’re ready can become a recipe for never doing a thing. Growth only happens by taking on the scary jobs and doing things that stretch you. There are opportunities that we will or may end up having, but they might be out of our comfort zone. Risks are opportunities seen through the half-shut eyes of fear. Meaning that taking that promotion or foreign assignment when it’s offered, even if the very real possibility of failure is staring you in the face. Being prepared to fail and recovering from that failure opens doors that the timid will never see.

Even though we advocate seeking out the most challenging tasks we are capable of, we still need to remember that if the water level is above our head, it means we’re drowning. Even in Enrique’s example, where he was changing his life in a big way, he was still moving to a country where he knew at least one person and could speak the national language. It is our responsibility to offset the risks of this approach by Finding Mentors and Kindred Spirits who can provide help when we need it.

It’s also your responsibility to Create Feedback Loops, so that if the challenging project starts to spin out of control you can catch it and get help immediately. Applying this pattern should feel brave rather than reckless. Willing to go and confront the difficulties and being ready to swim until we finally find the way out.

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

Confront your ignorance

I was reading the pattern on “Confront Your Ignorance” and it talks about what to do when you realize that there is/are gap(s) in your skillsets that you need to work on and need for a daily work. Some people are scared to confront their ignorance because they hate thinking of themselves as ignorant and hide that side of theirs.

While reading this pattern of chapter two, confronting our ignorance is the best way to become better in what we do because we will actually improve our skills and master in what we will do. There are many ways to actually confront our ignorance: For some people, the best approach involves trying to get an overview by reading all the introductory articles and FAQs they can get hold of. Other people find that jumping straight to the construction of Breakable Toys is the most effective way to understand something. Sometimes others will be trying to acquire this skill as well, and by working together you can make better progress. At some point, with this ways, we have gained a satisfactory level of ability in this new area, and then we can decide whether it is more productive to dig deeper or turn our attention to the other gaps in our skillset.

This pattern is closely tied to Expose Your Ignorance, but implementing it is less of a challenge to your pride because it can be done in private, without anyone else ever finding out the things you did not know. We need to know that learning in public is one of the ways in which an apprentice begins the transition to journeyman. It’s a small step from learning where people can see you to teaching.

What I love about this pattern is that many times I love to challenge myself and go do thigs where I feel I need to confront my ignorance and learn. It’s a factor that everybody should have, especially software developers. This field requires a lot of practice and we need to keep in mind that it’s not everybody who knows everything in this field. We may have some skills but we also all have to confront our ignorance at some point.

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

Kindred Spirits

Apprenticeship is a long road, a road that doesn’t look easy at first, a road that is filled with uncertainty, doubt, questions, a road that can bring lack of self-confidence, a road that can take away your passion and leave you to think that you are not good enough. What is the best thing that someone might desperately need during this long journey to feel reassured, to feel understood, to keep that passion burning and ideas flowing? This chapter is telling us how kindred spirits what is exactly we need in our journey as craftsmen.

As the book states, the problem today is that organizational cultures that encourage software craftsmanship are rare. We find ourselves stranded without mentors and in an atmosphere that seems at odds with your aspirations. I remember talking couple of weeks ago with one of my classmates about this issue. Today graduation is around the corner, and we are at the door of apprenticeship with the fear of not being supported, of landing in a company that doesn’t value progress, ambition, passion, and willingness to achieve. I want to work in a company that feeds my aspirations, where ideas are exchanged, where there is life in the job that I do. And not just doing exactly what is expected of me, making things hard and boring.

It is important to be surrounded by people who share similar goals and values as you. People that enjoy learning together, advice are shared among the group and there is the enthusiasm to get out of a comfort zone. I also believe it is important to stay connected to the people that inspire us and fee our mind. Making a list of communities and getting involved is important. I am thinking that LinkedIn is a great example of this. It is not just a platform where you can find job opportunities, but it allows people that share similar values and goals to connect, stay connected and grow they passions together.

The last point the author mentioned is about the need to retain our thoughts and the ability to ask critical questions and not just go with the group. This was very relatable to me as I sometimes find myself having a great idea and hesitating to share it with the group. Or a better idea can be shared before I share mine and I end up losing the confidence. I realize that we should not feel intimidated by other people’s ideas and mindset. Creativity and critical thinking are things we all possess. I personally will not hold back anymore and will speak my mind because it might benefit my community.

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

Be the Worst

When reading this chapter, I found it challenging because I asked myself who actually wants to be the worst? I tried to project myself and put myself in that specific position and I found it very hard to do. However, after second thoughts, deep reading, and analysis, I am very impressed and humbled by the content of this book and this chapter. They say: “You have to be the best”, “You have to master what you do”, “You have to always be the head”. However, we never hear the opposite of those sentences. We never hear: “Be the worst”, “It’s okay to start at the end of the queue”, “We all started from the bottom”. It is discouraging to know that nowadays when working as an apprentice, the expectation and the pressure is greater than the willingness to be understanding and people tend to forget that they have been there once and act as if they were the best from the start.

 There are points the author mentioned that I found important when being the worst in a team. He talks about couple of risks associated with it like brining the team down, the risk of getting fired when falling behind or inability to catch up and feel bad about ourselves. This part tells us that it is a great thing to accept being the tail of a lion. However, it comes with some risks that require hard work and regularly updating ourselves on where am I? Am I making progress? How much time the team is granting me and what happens if I don’t meet specifications? Being the worst is just a way to make us confident in the lion’s den, but we must really be motivated to learn, we must show the desire of doing better, bringing ideas that get us noticed with time.

The last interesting point the author mentioned was reaching out, asking to join a team and observe the team’s dynamics and ways of operation. For me, this is great because it shows the desire for personal growth and the team might be motivated to take you in because you have shown initiative and interest. I feel more confident now to “Be the Worst” in a team of professional software developers because that position will unleash my confidence, allow me to be myself, learn and improve at the same time in my craftsman’s journey.

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

Craft Over Art

This week I decided to read “Craft over Art” from chapter 3. This chapter simply teaches us that as a craftsman, our prime focus should be to build something that serves the need of others instead of using a project for self-interests or to impress colleagues. This reminds me of most of the projects we are working on in class right now, especially the Thea’s Food Pantry. The focus is to build something that will serve the Worcester State Community.

I believe the benefit of doing something that serves the need of others is that we are doing something for real people. Seeing customers benefit our work, being happy with the product, use it and see it being successful is a great feeling of achievement. We see customers happy, satisfied and using something useful that will probably be there for a long period of time. Working directly for a client can also be stressful as there is a timeline that needs to be met, there are requirements, specifications, policies to follow and it is not always easy to satisfy every customer.

This is where I am bringing the beauty aspect. While reading the book, I understood that focusing on the usefulness rather than the beauty might only apply to a craftsman as he is still in the learning process, embracing his ignorance, taking the long road. Focusing on the beauty aspect of a project can be stressful, distracting and take away the usefulness which should be the priority. However, I believe in a more professional world, for a reputable company, being able to deliver both the value of a product and adding the refining beauty aspect is definitely advantageous. From my perspective, In the future, when I develop projects for customers, I will focus on the value and the usefulness it will bring to the community. However, one client is different from another. One community is different from another. Depending on where I work, if after getting to know the mission of the tech company I will work with and studying the type of customers we usually have, I find that beauty is something they want on top of the usefulness, I will want to deliver that and meet their needs. I think beauty is used nowadays to attract people even when the product itself is not well developed, has flaws and will not be durable. It is unfortunate that art to attract money is put first over craft to serve a community.

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

Individual Apprenticeship Patterns: Expose your Ignorance

Reading the chapter “Expose your Ignorance”, there were mainly four words that stood out to me: Ignorance, Pretending and Learning ability. This chapter is telling us how important it is in the professional field to embrace our ignorance which is our vulnerability and transform it into our strength by embracing the learning process.

I have been going to school since I was two years old. Even though school is meant to be a place where we all must learn and support each other, exposing our ignorance is not quite something that makes us comfortable. We feel behind everyone and sometimes, asking questions can give a sense of “nonbelonging “or “not having the appropriate level yet” for the class and it is frustrating. This frustration gets worse in the professional world where we are expected to know a lot of things and sometimes, don’t. We are driven to believe that the knowledge of everything is what allows us to keep a job or impress the employers or recruiters.

The other word that stood out to me is “Pretending”. This is actually very interesting because pretending is a temporary mask that sooner or later ends up falling and revealing your true face. However, I wonder if “pretending” can be used by someone to gain time for example, to boost someone’s confidence level and allow the person to learn/ improve while not necessarily exposing his/her ignorance and be uncomfortable.

The third thing that stood out to me was “Learning ability”. I believe that we are never done learning no matter what stage we are in life. Leaning is what keep us going and growing, learning demonstrates a sense of modesty. We put aside what we know, and we learn something new to add to what we knew already. The world is everlastingly growing. New technologies, new improvements, developments happen every day and that should always motivate us to seek more, to want to feed our intellect more on any subject.

In conclusion, I definitely gained confidence about trusting the learning process and not being afraid to expose my ignorance. I personally never worked in my field yet and I anticipate it to be a challenge to get hired in a tech company and meet all the specifications as a freshly graduate. I am planning to be honest with myself and with my team, managers, and clients. That way I am confident to deliver quality and not under deliver because I didn’t have the courage to be myself and allow myself to grow in the process.

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

Sprint Retrospective 1

The AWS deployment project was very surprising to me as it was not among my first choices. But with time, I am very confident with the evolution of the project and what the final product will look like. The god thing about our project is that we are all learning what to do. There is no sense of feeling behind or being ahead of others in the team as we are all new to most areas of the project. I believe this has allowed our team to be very open minded to any idea and to accept each other’s participation without any previous knowledge of what could be wrong or right. I appreciate the team workflow in the project and the trust we had in one another to get things done. The professor has been a great source of reassurance when we had couple of blockages (especially with the AWS) website. I believe that the accesses we have been given so far will be enough to get us started however, having worked with AWS website before, knowing how complex it can be, we might always need something more. Overall, we are a great team, out scrum master did a great job keeping the team together and maintaining respect and work ethics.

Improvements as a team

I have always been skeptical when it comes to working as a team. The reservations and worries about whether the work will get done, whether everyone will be involved, and the quality of the work reflected on our grades has been inevitable for me in the past. However, in this class, I feel very confident in the way we work as team and the way the professor assists us regularly to make sure we are involved and progressing. During our first sprint, we needed to make a lot of research to familiarize ourselves with the project. We didn’t find the need to meet outside of our stand-up meetings. That resulted in us not really communicating on the discord server, or any other platform outside of the classroom. In the future, as we will get more in depth in our project, I expect to improve this area and communicate more outside class for better planning and understanding among the team.

Improvements as an individual

As an Individual, I believe I did a good job on providing ideas, communicating with the entire team. I believe I specifically played the role of the reflector. The scrum master did a great job, but I was always willing to keep everyone on track when it was necessary. One area I could work on in the future is help improving the efficiency of our stand-up meetings. I noticed that my team is a quiet team which is not necessarily a bad thing. However, more common, and altogether conversations and unified ideas can be a good thing for the development of our team. Another thing I am planning on focusing more on the future is provide more in-depth reports on GitLab of the research we make. Our project is definitely a very interesting one and it would be great to share as many details as possible. The third area of improvement is to merge with the Identity and Access Management System(IAM) team regarding our project. We know for sure that keycloak will be a crucial part in our project. Meeting regularly with the IAM team to work together will make it easier for the two teams to move faster and not slow down each other on other things we could separately work on.

Evidence of GitLab activities

I did add the files in the General repository

https://gitlab.com/LibreFoodPantry/common-services/aws-deployment/general/-/issues/1

I did make research on Keycloak and worked a little bit with the IAM team. Keycloak is an open-source software product to allow single sign-on with Identity and Access Management aimed at modern applications and services. It helps securing applications. It is a reliable tool to help manage users identity and accesses.

https://gitlab.com/LibreFoodPantry/common-services/aws-deployment/general/-/issues/10

I did the Research on the best practices regarding the AWS EKS. Some of the best and important practices are the security, reliability, cluster autoscaling and running containers.

https://gitlab.com/LibreFoodPantry/common-services/aws-deployment/general/-/issues/8

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

Apprenticeship patterns chap 1 and chap 2-6 introductions.

Apprenticeship is the beginning of our long road journey as a software craftsman. We discover more about ourselves and use it to become better at with we learn and at what we do.  Chapter two has a great way of explaining what we, simply as humans, find difficult to do in our daily lives: “Be open minded” to new rules, new experiences, new patterns, and new ways of thinking. We are born in a society where history is written, spend our lives living the same way our ancestors lived, and following the same patterns. And that applies to knowledge as well. Putting aside what we know or have known to be the way and embrace something new and different is a huge challenge. However, it is important for our self-development and of others around us.

Chapter three reminds me of how often I want to take the “short road” thinking it would be easier and faster, only to realize that the long road is not always pleasant, but it is as Dave described it: discouraging or inspiring. Thinking that we must complete 120 credits, pick a concentration, meet specifications for four years minimum to obtain a piece of paper that you might end up not even using because you are not even sure if that is the career you want? Or being inspired during those four years by how hard work pays off and the reward and satisfaction of long nights working on projects or crying with classmates after failing a test only to rejoice later after you made it till the end is unmatchable.

Practicing self-assessment is very crucial. I believe in order to self-assess ourselves, we need to know ourselves, our strengths and weaknesses, our goals and where we stand on the “long road”. Once we know where we come from, we will know where we are going. Having others around us should not arise competition with them, but instead inspire us and motivate us to check ourselves and be the better version of ourselves everyday along the road. “Repetition is the mother of learning, the father of action, which makes it the architect of accomplishment” – Zig Ziglar. We are never done learning; we learn until the very last moment of our lives. This chapter teaches us the power of learning – not only for ourselves but as well for others. Perpetual learning shows us that we should always be willing to learn, put aside what we know and learn some more. That is how we do better. Each chapter of this book brings us to the deeper discovery of ourselves and on a journey that helps us find out that we are all on the same road.

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