AMPATH-WSU Sprint 6 Retrospective

Hello dear readers and welcome to my last blog post for the CS 448 class. This blog post will close the chapter of this amazing journey I have had with all the writing and experience with my capstone project.

Recap from last Sprint: we decided to work on the CI/CD of AMPATH project in order to provide productivity and efficiency for all the other teams working on this project. While we were aware of how to set up a regular Java project with Travis CI, the difference here was that here we were dealing with an Angluar project. To be honest I felt a bit discouraged when the professor showed uncertain on how this could be done. However, of course we didn’t give up. We actually (as always) had our best allay, Google to help and figure out how to work with angular projects.

Kristi was able to find a very useful and basic link that showed how to connect a simple angular project with Travis CI. Yayyy we found it. Well half of the job is done. We did our research, we learned the basics and it was time to work on our real project now. Kristi went ahead and tried to make the connected and he was able to, but as the project was added to the Travis account it was failing and not passing the tests. From the tutorial we saw it should be able to at least build the very first time.

I went ahead and tried to find what was missing in the configuration process. I was able to find out that somehow the travis file was not added in the format .travis.yml to the project which is weird as Kristi had added it as a .yml file. However I made the necessary changes and I am waiting at this moment for approval for my professor. I am also going to suggest to the professor the idea of having a dev branch for this project. The fact that there are multiple groups working on the same project at the same time, will probably create conflicts when trying to merge all these changes. Dev branch will have CI/CD and will be deployed within minutes. Efficient, right?

Today is the last day of our class and despite that the presentation of this project is not until May 15th. Therefor we will still be working on this the integration issue and also another part of the team will be working on the other issue we saw in github about figuring out how to store angular components in a library so they can be shared between multiple apps.

This coming week we will be meeting to practice out presentation and also talk about the line up and important points of the presentation.

I would want to say that working on this project was a good experience. However, I wish this is somehow better organized for the next capstone sections next year. What I especially mean by organized is the ability to reach out to the customer. I was aware of the time difference but as we are trying to help them on building their own system, more communication should be provided on their end. I am very happy for my team and what we have achieved and can’t wait to present all our work.

Until the next blog post… Take care you all!


Practice, Practice, Practice

Hello dear readers. Welcome to my last blog post about the Apprenticeship Patterns. This is the 10th Pattern that I really found interesting and wanted to share with you all.

You are graduating, you probably have a job offer (or a few) in the table, you are ready to start this whole new journey and you think you have a good background to create a successful career. YES you do and Congratulations, but it doesn’t end here. You have worked hard to be here but you still got a lot of work to do.

After you Find your Mentor you will see that the Mentor will be giving you different exercises for you to work on based on your skills and weakness and you will see that every exercise will teach you something better or perfect your skills. When you start working in the company, you will face challenges in every project but don’t stop your exercising outside of work. I feel like in companies you apply a very specific knowledge and you would want to be on top of the new stuff that come out if you want to have a good career.

I really like the title of this pattern ” Practice, Practice, Practice”. I used to have a Math teacher in high school and she was always saying “It’s 99% hard work and 1% talent” and I totally agree with her now. That’s why the practice should never stop, doesn’t matter how far up you have gone in your career.

Also look at the bright side, while you just pick random exercises or small projects to work on, you don’t have to worry about deadlines and no pressure. You will notice at the end how happy you will feel about what you have worked on independently.

So just like the authors of this book suggest, go online and find different problems to work on. If you want to feel more challenged find coding competitions and enter them. Don’t worry if you don’t win. You will definitely learn something out of that experience.  After a while go back to where you started and you will see how you have progressed. my last advice you all of you would be: don’t just settle when you start working in a company. Keep growing outside of it. Practice, Practice, Practice…

AMPATH-WSU Sprint 5 Retrospective

Hello my dear readers. Welcome back to my next sprint retrospective blog post for all of you who have been following me through my journey and welcome to all new readers (I would strongly suggest you to read all the sprint so you are familiar what I am talking about). Are you excited to know what we have been up to this past sprint?!

The other team working on this project was able to push their changed and the professor merged and deployed their changes. I got to say they did a very good job in the tool bar. Now it is our time to add our search bar. While doing that we were thinking that we wanted to work on some other stuff in the project to feel more productive. We started to look at the issues that were listed in the github repository but an idea crossed my mind.

I am taking this class in parallel with another software development concentration class: CS 348, Software Process Management. There were two classes were our professor wanted to teach us about CI/CD and Travis CI. Yeah I know most of you are like: “English please!” For all of you that are not familiar with the terms, CI means continues integration, CD means continues deployment and Travis CI is a software used to set up your project with CI/CD. But why is good to CI/CD?

First time I cam across with CI/CD  it was at work, when one of my teammates suggested to have CI/CD in one of our systems. After his idea was approved, he set up our system with CI/CD and it was seriously a life savior! At my work place we use two main branches: dev and master. Dev branch is for all developers to merge and test their changes in a live environment. Dev is not production. Master branch is the production branch where only managers can merge and deploy. Whenever a change is made, we merge our branch into the dev branch and that’s where CI/CD kicks in and makes everything easy. Before we had to wait for the managers to deploy our changes to dev and then we could test. Long story short, CI/CD made us more productive and efficient.

My idea was to set up the AMPATH project with the CI/CD via Travis CI. The good thing about using Travis is that differently from Jenkins you don’t need a server. We talked with our professor and we were very happy that the idea was welcomed and approved. While me and Kristi will be working on integration for the next sprint, the other team members will be picking up another issue.

This past sprint was mostly a reflection on what we have worked on and what else we should do. I am very excited for the next sprint though, as this is the last sprint and then we have to present our work. I am really looking forward to figuring out how to set up an angular project with Travis CI and make everyone’s job easier. Please don’t miss my last sprint for this capstone class..See ya next time 🙂


Find Mentors

Hi dear readers. Welcome to my next blog post. In this blog post I am going to talk about the next pattern called “Find Mentors”. I strongly believe this is a very important pattern and I will explain why below.

In the path of your career, you will always find yourself struggling learning about new stuff or not knowing what to learn . Don’t freak out though, this is normal. I know it sounds weird, but this is just the start of your journey and you are expected to not know everything. However, sometimes is very hard on to determine what to learn next or what is your next step in your career. So as the book suggests, a mentor is always a good help to have.

Finding the perfect mentor for you is not easy and you probably will never find him/her. It is true that there are a lot of people out there who  are professionals in what they do, but that doesn’t mean they are meant to be mentors. However, do not get discouraged because there are plenty of people who like to be mentors, you just got to be patient until you find him/her.

Another good point that the authors make in the book is that you might change mentors often or have multiple mentors as different people are specialized in different areas and have different knowledge. The hard part in all this process is finding and convincing this person to be your mentor. It might be awkward for you to ask and also weird for them. Unfortunately there might also be cases when they will refuse, but do not get discouraged. You will find other mentors. If you really really like a specific person to be your mentor, you got to win his/her ‘heart’.

While you grow you will be able to understand if you are in need of changing mentors and there is nothing wrong with that. Also as they teach you, you will understand what you really like and what you want your focus to be in. So start being part of communities and look for your mentors based on what you’re interested.

AMPATH-WSU Sprint 4 Retrospective

Hello my readers and welcome to my next blog post. For all of you who have followed my blog, this is the 4th sprint retrospective and I will be talking about how sprint 4 went for me and my team. For all you guys who are new to my blog, this is a summary of the what me and my teammates have been doing for our capstone class.

If you guys remember last time, I mentioned that me and my teammates decided to do the search bar task where users and doctors can search for patients in their application by putting their name. While the development of the search bar has been done on our end, we have been thinking for options of where to actually put the search bar. One of my teammates Kristi, suggested to the professor that would be better for us to push the search bar task development after the tool bar has been added to the application. While trying to support our idea with reasons, professor K. Wrust agreed with us and talked with the other team on charge to push the changes to master. As I am not very sure on how the development of the other team was going, we were told that we had to wait a bit as the professor wanted the other team to do the development of the tool bar differently.

As we were waiting for the other team to push the changes to master, we were starting to talk about what we were going to do next as a search bar was not ‘enough’ in our opinion. While there is a whole application to be build,  not having the right way of communicating with our user is a problem.

When I started this class, I was really excited on the output that we were going to have at the end. However, now in the middle of the semester I think that despite the learning process which has been great, we don’t really have a big output to show. One of the ideas that came into my mind, was to ask the professor to have other teams work in the web application for this project and we would work in the application ( IOS or Android whichever the user would prefer). While the professor found the idea interesting, we were not sure how long it would take for the user(customer) to accept and approve it. Therefor we just went back to the phase of trying to plan what to do next.

I would say that if I were to go back I would somehow try to have a better communication with the client, as it is very important in a development project.

Unfortunately, this sprint wasn’t a big progress on our end but we are not getting discourage as we are probably going to come up with something interesting for the next sprints. We will be done with classes soon and for this class we are going to give a presentation on what we did, what we learned and how the work in team was.

I am so looking forward for the next sprint as I am sure we will be coming up with a great idea on what to do next. Stay tuned for the next sprint as I am sure I will have great news about our progress.

AMPATH-WSU Sprint 3 Retrospective

Hello dear readers. Welcome again to my blog. This blog won’t be for the patterns I have been writing about, but for the progress of me and my team in our Capstone Class. It is exciting to see that things are progressing and we are moving forward with this project.

As I mentioned at the end of the last blog, (AMPATH-WSU Sprint 2 Retrospective) we received videos and actual output samples of how the new application should look like. I think that this is a very important step and want to say that I think it should have been sent earlier to us, as for a long time we kept researching about the tools we were gonna use and to be honest it got a little bit boring as I was really was looking forward to this part of the process. It’s true that in order for you to start working on a project you should know the tools and systems but I also believe in the theory where you also learn while working on it.

So during this sprint we took our time to watch the videos and after we made sure we all had seen and understood the videos and the requirements, we created Zeplin accounts. For all of you who don’t know Zeplin, Zeplin is a collaboration tool for UI designers and front end developers. It goes beyond the design workflow and helps teams with the design. I had never used Zeplin before but I found very useful in sorting the project and handling off designs. Recommended if you ever do front end development!

A Github section was created for all WSU participating in this project and each of the teams created their own branch. We discussed if each of us should have their own branch but we ended up in the conclusion that it would be very messed up for each of us to have their own branch pulled from master, so a branch per team was the final decision. However, each one of us could create its own branch from the team branch and that would be great in case any of us wanted to experiment. we left the option available  to whoever wanted to do so.

After we created our branch we choose our task to do, which is a search bar.  Something I really would like to point out is the team environment we have. We all are very communicative and express ourselves and our opinions. For us it was easy to agree on the search bar as a start up to do task for this project.As a lot of steps on this process don’t depend on us I would say that everything is going fine and I wouldn’t change anything if I was back in the same situation.

While working on the search bar we keep checking with our teammates and how is the progress going. I am really glad we haven’t really been facing any major issues and our team is working strongly together. I am really looking forward to getting the search bar done and move on to the next task. Stay tuned for my next blog post to see what happens. Until then..Have a good time 🙂

Use Your Title

Hi my readers. Welcome back to my blog.  In this blog post I am going to talk about an interesting pattern called “Use Your Title”.

Most us, who have worked in big companies and most of you who will in the future, are gonna have a FANCY title at your job. Sometimes even the person itself will get confused by its own title as at the beginning might not describe well what it means.

The best advice given by the authors for this pattern is: “Don’t allow your title to affect you! & Don’t be fooled by an impressive title!” It happens a lot nowadays that people have to explain what they really do because not everyone is aware of what a job title might be and what are the duties and responsibilities. There are also a lot of other cases where people misinterpret the job titles. My job title in my company is Support Engineer. and when some people would hear the name Support they automatically told me ” So you like talking on the phone with customer huh?!” That’s where I had to explain what my real position was and what was I actually doing. As I come from Albania, at the beginning I used to ‘blame’ on the company for giving me this title, but later on I realized it was the people who were to blame.

As you might know by now, I am graduating this May with a major in Computer Science and Software Development concentration. While having a conversation at my office with my teammates we all agreed that our titles were a bit too much as we hadn’t graduated as Engineers but developers. However, we all like using the fancy title.

The other side of the coin is where you have such a high job position and your job title doesn’t fully express much about it until you say what you actually do.

In both cases, the most important thing is to explain what you do with your own words and not the title, fancy or not. It is always good to have a written definition of what you do and what your duties are as you might never know who you might come across to.

Record What You Learn

Hello dear readers. Here we are again in another blog post with another Apprenticeship Pattern. Today’s Pattern is called ‘Record What You Learn” and by the name you can kinda tell what this is all about.

One day before I started my job, one of my friends gave me the same advice “Take a notebook with you and write down everything they explain. Sometimes even the easiest things can be forgotten. Also this gives a good first impression on how seriously you take your job.” I got to say that my friend was definitely right and I can say with prof from my experience at my job and also from this pattern that I am writing today.

This pattern talks about the learning process and how important it is for you to record what you are learning. When starting a new job or working in a new project, you will be facing a bunch of new material and believe me you won’t remember all of that. It is very important for you to keep notes about everything you are learning but not only. There are a lot of people out there who keep notes and when they go back to review, they don’t even understand their own writing or what they were trying to note.

It is true that is very important to keep notes but it is also as important to keep clear notes. The authors strongly suggest to keep a blog post about these new information that you are being exposed but I would say that a blog  is not required or necessary. In my opinion it is perfectly fine to have all your notes stored in a notebook as long as everything is clear and clean. I would say that another advantage of the blog posts is that while writing about you learned, you also reflect about it.

It is totally your choice to decide on how you would like to record and store all your notes. I personally was very happy to show up on my first week of work with a notebook with me. Even after 6 months I needed to look at that notebook once in a while. Another use of my notebook was for my new teammates that joined the team. As I passed it along, they also found it very helpful and started to create their own.

AMPATH-WSU Sprint 2 Retrospective

And the issues continue… 😦

Hello dear readers, welcome to my second retrospective blog post. I don’t know why did I decide to switch to using MAC laptop on the last semester of school. As I mentioned on the first spring blog, I was able to fork and clone the code but was having issues in the terminal when trying to build the code. We figured out that the build environment was not fully set up and there was also something else wrong. To be honest I got pretty mad at MAC as I was having issues in another class for installing a virtual machine. I had an old windows laptop at home so I just started to install everything form beginning on that laptop. Sam, my other teammate which is also a MAC user had issues but different ones.

I would like to mention that I really like the way our team works. Kristi was able to help me and Sam with the issue of building the project locally. We always help each other and we don’t leave any of us behind. In my opinion this is a very important behavior to have in a team because that makes a team more productive and brings the teammates closer to each other. StackOverflow and Google helped a lot as well. Realized other people had had similar issues in the past as well. I would strongly suggest to research about the environments and tools you are going to use before you start installing them.

After we made sure that everyone was in the same page and each of us had everything set up we went and checked our to do tasks. I mentioned in the first sprint that that spring felt like a research sprint, I would say that this sprint wasn’t that different either. Actually I was not expecting  to start development right away as we were exposed to new tools. I would like to say that even though we haven’t started with development yet I am very happy about all the material that we are learning as its very useful and gives us a great experience.

Before the end of the second sprint we were notified that the developers in Kenya gave some additional information to our professor about what do they want the app to look like and what are some of their requirements. I also know that they send us videos of the wire-frames. This will allow  us to analyze the requirements and apply all the knowledge we are learning in the CS-448 (Software Process Management) class. We are all very excited to get started on watching the videos and start working on this project.

I would say that we did a lot of learning during this sprint and I would like to assume that the next sprint will be the same as we are going to study, analyze the requirements given, and separate out duties within the teams and within each other. I opened a few of the videos that Greg had posted for us and I am really excited about this. I can’t wait to let you guys know where’re we at by the end of next sprint.

The Deep End

Hi dear readers. In this blog post I am going to write about the next Apprenticeship Pattern called ‘The Deep End’. I am sure all of you are wondering now what does that mean?!

This new Pattern talks about how to be able to realize if you can take over different kinds of projects and realize where do you stand in terms of your knowledge and career.

For a lot of developers there comes a phase in the career where you start thinking about how are you doing and where do you stand. Questions like: have I achieved enough, am I in the right position, should I move to another company, is my portfolio where it should be, etc, cross your mind.  I liked the expression the authors used: “Waiting until you’re ready can become a recipe for never doing a thing”. I totally agree with this expression as I personally think you can never be fully ready for any type of job. There are always new things to learn and new technology coming out.

Two years of experience with my company and I have been a witness of people asking these questions to themselves and moving on and out of the company because they didn’t feel right anymore, they did’t see space for growing and said it was hurting the career. Every move you take it has its own risks, some bigger than others but always present. I personally think that risks shouldn’t just be avoided but should really be considered. Moving out of the company you are working or taking over big projects that you know that you can’t handle can fail your career. I believe this is big enough reason to hold back and really think about  this new step you are about to take.

Always challenge yourself with different  bigger and bigger projects, but don’t just climb 5 stairs at a time. ‘You can fall and seriously get injured.’ I like the author’s suggestion about making a list of your all achievements, projects and skills you are at. This list will definitely show you were you stand and give you a better idea on what your next step should be.