Author Archives: xmurati

Sprint #3 Retrospective

The last Sprint we worked on was Sprint #3 Retrospective. We’ve finally arrived at the end of everything regarding the Software Development Capstone.

We did the same method on this final sprint as we did on the previous two sprints, where we first created issues and then worked on the project. We began work on Sprint #3 after successfully completing Sprint 2. It was different from the previous two sprints, but at the same time, we were more sure about the issues we would focus on to complete the project.

During Sprint 3, I assisted the team with conversations and issues, just as I had done with the others. However, one of the issues on which I worked was:

Write Up Documentation

To realize this issue, I went through the research issues that we had already completed. My task was to compile and finalize all this information in the documentation repository.

First, I included all of the research topics that we had already completed as an AWS Deployment team. After listing them all, I attempted to summarize each one in a brief part description. I began by mentioning the team member who worked on that research, and then I summarized the important features of everyone’s research. Working on this issue was interesting for me since I saw it as a look back at everything we’d accomplished during the project. At this point, I can see what role each study topic played and how important each one was. This was the issue I worked on, but that’s not the last one. I also worked on two other issues, but this time was assigned with Chris. Two of the issues were about communicating with groups. However, the issues we worked on were:

Communicate with team 1 of ReportingSystem

Our main task here was to have an understanding of their project’s architecture. And needed to understand from us, how we had organized our cluster. Everything went really well. Chris’s role was to talk more about our project and share our team’s process related with them, and my role was to take notes of what they had really done and record everything.

Communicate with team 2 of IAM

The same thing was even for the second team. Our task was to go to the IAM team and talk to them about the Kubernetes Cluster and also how their work fits into it, as long as they are working with Keylock. We needed to know what they are working on, as well as the design of their system.

What went well:

I think that Sprint 3 Retrospective went really well. We tried to share all the issues and work for them during the Sprint. We were all able to finish our issues and all the tasks we had.

What did not go well

I think that at this point when all the sprints are finished, the main thing we needed to do was closing up all issues. Including my issue that ended up in Process status. These seemed to be difficult for us at that point, and I wish we could have done better.

What the team should change

As we ended up doing our project in the right way, I think that in general everything has been really good. Anyways there is always a place for improvements, and where you can do better.

What should I change

I will specify again as I mentioned in the last sprint, the technical issues. I would have really liked to be involved more since we first start the project. And the other thing is as I could close my issue, I will say that I could have managed the time in a better way.

Conclusion

Here we are at the end of the semester, and I am happy that we as a team closed successfully not only Sprint 3 but also the whole project. In general, we tried to manage everything and make our best to have a good final project.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Record What You Learn

You should not also underestimate the power of writing itself….You can lose your larger sense of purpose. But writing lets you step back and think through a problem. Even the angriest rant forces the writer to achieve a degree of thoughtfulness.

—Atul Gawande, Better

This pattern grabbed my attention. It looks interesting, as most of the patterns in this book. Apprenticeship Patterns is a book that in a way, teaches and gives more lessons on how to be a good software developer. In relation to the title, we are also every day recording what we are learning, not only by writing the blog posts of this special book, but even in all the sprints, we are working on GitLab, by solving different issues. All this time we are recording what we are learning.

When I started my studies here in the US, the first thing I faced that was totally unknown to me was the way of teaching and how the class organization works. Firstly, it looked like something I won’t learn, but at the same time, I was trying to fit in with everything. After some lessons, I understood that the professors here try to help with learning, based on different methods of teaching and sharing the materials for the students and making those materials understandable in different ways. The first thing I noticed, was the organization of the class into groups, after that, I remember last fall in software process management we worked on some cards, by using Flowban (Kanban Simulation). Another thing was the blog posts using WordPress, and the last one is the sprints we are working on Software Dev Capstone, as I mentioned before.

The flow ban cards for me were unfamiliar. It was something we were only learning in class, but at the same time, we tried to work for them. Then I understood that we needed for our future job on the companies we will be working on and that its role was to help the teams identify bottlenecks in a workflow process of work. Later on, regarding blog posts, I understood that their role was in one way to make us record better what we are learning during all classes. And also last but not least is the Capstone class that prepares us for our future job. During this sprint, we are working on a software project and learning how to manage it by sharing areas it works in companies.

Atul at this pattern gives some different solutions on how to record while we are learning. But the one I apply for is having my own private records. Perhaps writing everything in my own notebook is something I used to have since I have studied in my country. But it is something that helps me express more what I think than writing on the computer. And I think a notebook will always be the only secure resource, where I can record what I am learning.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Nurture Your Passion

To only a fraction of the human race does God give the privilege of earning one’s bread doing what one would have gladly pursued free, for passion. I am very thankful.

—Frederick Brooks, The Mythical Man-Month

This week the blog post I want to talk about is Nurture your passion. In a broader concept, I see this pattern as an explanation of the importance that has my passion as a software developer. In my first start, I knew really well, that being a great software developer is something that will be developed over time. I also knew that this will be possible through constant practice and dedication, making a difference in some other professions.

Just like all other professions, the reason why we choose it is because we like it. We have to remember this always, not only during the time we are facing problems at school while studying it, but even later on when we will have our future job. I have always been with the idea that I want to do the job I want, and not that this job needs to be done.

The context that Frederic Brooks has given on this pattern, is that we can be “hired” as a software developers. Being honest this is the first thought I have about what the person who will hire me will think, before hiring me. And this is very understandable. He/she might be referred by the resume I will send or any of the work I will have done, but still the ability to do that job I have to show it over time and always by learning each and every day.

Is interesting how the solution that the author has given here, will help lots of software developers including me to don’t demoralize when might be faced with corporate hierarchies.  The passion for being a developer is sometimes not enough.  Otherwise, we need to take into consideration the author’s solution. Is good finding something that interests us, and identify this as something we enjoy. Also, I like the idea that we can consider putting some extra time into the work that we are not able to spare enough time for during our workday. This is a really useful statement and the pattern in itself is the most essential that will help us be prepared for any upcoming condition.

This pattern also will be so helpful for me in the future. I am also very aware that a company I will work for, will have its ups and downs. I might face a lot of problems, maybe sometimes I will have difficult situations while doing a specific task, I might have deadlines for that task, or even special requests about it. But I always have to remember that the love for what I will be doing, will help me grow more the passion I have for software development.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective #1

This blog post is about the sprint 1 retrospective. This is our first sprint as a third group in the Cs-448 class. The topic of the project that we will be working on, which was presented to us as a team is about LibreFood Pantry AWS Deployment. In the first moment, the professor sent an email as a beginning to present us that what group we would be in, who would be the members of our group, and most importantly what would be the project we would work on. That was our first familiarization with our team members. Working as a group for one project, I took it as a very positive thing. I really like when I share ideas with other people about a specific topic, and I also like when I take ideas from others from where I can learn too.

The first thing we as a team did, was that we first created the issues. After that, we shared the roles on what we will be working on. We had very good communication as a team and we also were really clear about the project. The issues I worked on were the Deployment Option for EKS and the other issue was research I did about the Microservices Architecture.

These were the two issues I worked on. In the first issue I had about deploying options for EKS, I tried to give some tips about deploying applications Amazon EKS in the cloud, also I tried to determine which deployment options for EKS we should be using. For my second issue, I mostly did research on what is Microservice Architecture, when, and how to use it, and most importantly the benefits that microservices have.

Working as a team on one project like this, looked like a little challenge thing for me. But at the same time, it helped me improve my acknowledgments. We as a team on this first sprint tried to share ideas, and give our contributions regarding the issues that we created. We had some struggles mabey in the first days we started working on the issues, but got the point. And I think that overall we have done a very good job as a team. We also tried to find other communication ways, like writing for any question or suggestion through discord, and also we have met each other virtually through zoom meetings. These helped us a lot as a team too. And hope that all other sprints will work better than we start.

The issues I worked on:

Deployment Option for EKS: https://gitlab.com/LibreFoodPantry/common-services/aws-deployment/general/-/issues/15

Research Microservices architecture: https://gitlab.com/LibreFoodPantry/common-services/aws-deployment/general/-/issues/14

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Practice, practice, practice

The people we know as masters don’t devote themselves to their particular skill just to get better at it. The truth is, they love to practice—and because of this they do get better. And then to complete the circle, the better they get the more they enjoy performing the basic moves over and over again.

—George Leonard, Mastery

The pattern I will be talking about in this blog post from the Apprenticeship Patterns book is the “Practice, practice, practice” pattern. What we can understand from the title of this pattern, is that practice is the solution to learning things in general and is the only way that can make things easier.

As George Leonard has described in this pattern, based on context to develop concrete skills in new areas, we will try our best to get better at the things we do. I totally agree with this context of trying to develop our skills. We always need to practice new things and not only the thing we have known better. It won’t help us for sure.

There is an expression in English that says: practice makes perfect. This expression is used for encouraging someone to continue to do something many times, in a way that the person will learn to do it really well. Specifically, this phrase means that if we practice something enough, eventually we will be able to do it perfectly. But George doesn’t agree at this point. He thinks that in fact, practice makes permanent. The only reason he says that, is because we need to choose the right thing to practice every day. And this thing, according to him, is the most important skill than repeating practice. I totally agree with him at this point. When it comes to practice, we have to know what we are doing and learn it in a perfect way. And then we need to try a new exercise to solve and then practice it. In this way, we can learn new things and at the same time, we can be able to solve whatever problem we might face.

That said, when I first started to work on programming I needed some time to fit in and learn new things. It was some hard and at the same time, it was slow and something that looked so difficult to be comfortable with.  But the good thing was that my school was a post-secondary and was based on practice. I did two years in a rowing practice and then we had a theory part. This was really helpful for us as new programmers. By practice, we learned a lot. And here I am after some years, practicing again for new programs and learning every day a new thing that can be useful in the future.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Be the worst

Be the lion’s tail rather than the fox’s head!

Tractate Avot

I found this pattern interesting, but at the same time, a pattern that has a lot of space to describe from different perspectives. “Be the worst” is the title that when you see it at the first glance doesn’t sound really good. It grabs your attention, and also sounds like a piece of advice.

In every work environment, there are employees who are not at the same level of knowledge. Someone is good at factual and theoretical knowledge, someone is good at accessing and applying information, another one is good at coding, someone in communications skills, and someone in the way of organizing the work. A company might have also a person that is capable of doing all of these, but also it might have people that can’t do any of them.

There is an expression of Mahatma Gandhi. It says: “Practice as you are the worst, perform as if you are the best!”  This quote looks the same as the pattern that Tractate Avot talks about. Even if you are the worst on the team, you still need to practice and learn from the best ones. But at the same time, whatever you learn, you have to share and perform as the best thing you can do.

The solution that the author gives here, is to be surrounded by developers who are better than you. Based on him, also the solution is finding a stronger team where we can be the weakest member. Okay, when I read in this context it looks like advice that I can learn from. But at the same time looks a little challenging to me. Being in an environment where you are the worst of all the employees, firstly could make you feel as inferior. You might feel uncomfortable in a place where you know less than anyone. I think that nowadays anyone has the possibility to be informed about something is not sure about. Nowadays everything is well explained through information, tutorial videos where anyone can learn something new or when you are not really sure how something works. In this way, it might not be necessary to feel like someone that is just “the worst”. Of course, we can look for help when we are not sure about something or for learning something new and unseen before. But I don’t agree with being the worst.

To sum up, the point where I totally agree with Tractat Avot is when he says that one thing that can help us maintain a more accurate self-assessment, will be collaborating with great developers. Only in that way, we can have a successful software project on our teams.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Learn How You Fail

Ingenuity is often misunderstood. It is not a matter of superior intelligence but of character. It demands more than anything a willingness to recognize failure, to not paper over the cracks, and to change. It arises from deliberate, even obsessive, reflection on failure and constant searching for new solutions.

—Atul Gawande, Better

Learn how you fail is the second blog I’ll discuss from the Apprenticeship Pattern book. I’d like to begin this piece with a quote from Morihei Ueshiba: “Failure is a key to success, each failure teaches us something”.  Everyone wants to be successful, but not everyone is willing to accept failure. However, I will add that my greatest life achievement thus far has been learning to accept my failures. This is, at the end of the day, motivation.

Failure, according to Atul Gawande, is unavoidable since it will happen to all of us at some point. I hold the same viewpoint. We won’t be able to learn if we never make mistakes. We are called losers when we fail at something, but victors when we learn from our mistakes. Failure serves as a reminder that we are all the same, and that success is earned through hard effort and determination

It has been the same for me. I accept that I make mistakes and that I have learned from them. I didn’t understand how programming worked well enough. But I learned by doing, and I’ve made a few blunders along the way. I knew that to be an effective programmer, I needed to mix knowledge, attitude, and technical capability with soft skills when I initially chose my future job would be. I needed to apply my talents, which are methods and processes that supply computers with instructions on which action to execute, to prepare myself to be a computer programmer. But the most important thing I prepared for was that I would fail a few times until I arrived at the conclusion that I will be a decent coder.

One other thing that I would like to talk about, is also the solution given to this pattern. It is a good choice that when we are becoming conscious of the things that trip us up, we allow ourselves the choice between working to fix these problems or cutting our losses. I totally agree and for sure that we have to accept that there will be also some things that we are not good at. Also when we encountered by failing this “thing”, it will be a lesson on how to prevent it in the future. Only in that way we won’t fail again. But the most important thing we need to know is that the only thing we learn from is a failure and not success.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Your first language

By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and in effect increases the mental power of the race.[…T]he technical terms of any profession or trade are incomprehensible to those who have never been trained to use them. But this is not because they are difficult in themselves. On the contrary, they have invariably been introduced to make things easy.

—Alfred North Whitehead, An Introduction to Mathematics

The individual Apprenticeship Pattern detached from the book that I wanted to choose as the first one and discuss is Your first language. I choose to start with this pattern because it sounds so familiar to me.

Knowing programming languages has been way too early for me. And now I am studying here, ending the third year of my computer science major. But at the same time, I have done kind of the same major that was for Informatics. About eleven years ago, I chose to study programming because it looked so challenging as a major and that could have courses where I could have mostly learned. The first programming language I used to study there, was the c++ programming language. This course was really helpful for me as the first language, because it helped me learn how to develop operating systems, games, different browsers, and many other things. After the c++ programming language, some other languages I studied there, were Java, Unix Systems Programming, etc. These were programs that helped me a lot in relation to my major. But there was something different. Here firstly I had to choose Introduction to programming, which I think is the base for being a good developer, and then study other helpful programming courses.

I find somehow myself at the solution that Alfred North Whitehead has given on this pattern. He said that first pick a language and then became fluent in it. After some years, this language will be the main one we can solve problems. And I totally agree with this solution because as much as you work for something specific, as much fluent you will be in solving problems. One other solution that he has also given, is that we can also ask the most experienced and available programmer we know for some help. And at this point, I have been lucky. Not only here that I have my cousin, but even when I first studied computers in general in my country, I used to have friends that were more experienced with the programming languages and with whom we have the possibility to discuss different problems faced while programming. But still, I agree when A.N. Whitehead says that we don’t have to be completely dependent on experienced friends. I have always tried to take lessons from them about the problems I can’t solve and also learn from these mistakes.

To sum up, I think that working on programming languages is challenging at the beginning. But once we learn about it, and make that our own language, we will get used to that. It will become something we will like to work on and solve problems as experienced programmers.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Thea’s Pantry GitLab Group

Thea’s Pantry is a GitLab group and a food pantry for our WSU school community. In this Documentation project one of the items that I found useful, interesting, and surprising, is Workflow. The main reason I specify this item is that helps the developers and is the way we will be working on this food pantry.
I choose to write about it because the workflow is one process where we can coordinate and organize well, and also give our contribution toward this project.
In this way, we as students will learn how to work by collaborating, by using the git workflow developed for Thea’s Pantry project.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

LibreFoodPantry

This community-building free, which is called “Libre Food Pantry” is also an open-source software for food pantries. This source also will be the project that I and my other classmates will be working on during this semester on CS- 448. I found this project interesting and I am just waiting for working with this source. Some of the items that are linked with “Libre Food Pantry” are Mission, Values, Code of Conduct, Licensing, Acknowledgement, and Coordinating Committee. All these items are interesting, very important, and explain the role of the source really well. But the item that I will specify about this source, is Mission.

I really like and support at the same time the mission that the construction of this source has, about students and professors. It is a very good opportunity for students to face an open-source and which is free and above all to prepare about the major and the work we will be working on. The mission that this software has is a very good opportunity for us as students, and I am sure it will help us a lot.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.