Author Archives: Nhat Truong Le

The IncreEdibles Sprint 1 Retrospective

For our project Software Development Capstone course, we got assign to working on food pantry. After we got to know our group members, we started to research about food pantry. We looked at how the data stored, what kind of software there are and what steps we need to take. At first, we meet our first problem, our project still in the early stage we didn’t know what customer are looking for. We took one by one step to set up our operation. We set up slack for our communication, we also have channel to communicate to other schools and food pantry owner. For planning and assign job to team members, we use Trello. We set up different stage of development “Product Backlog”, “Sprint Backlog”, “To Do”, “Doing”, “Review” and “Done”. We agreed on this setup is best for our operation, this way we know how doing what job and what been done and coming up. Next, we looked at what software and technique that require for this task. We know that we are using JSON file from USDA’s website as data base. We need to set up API able to read and get the information we need from JSON file. In order to get specific information as customer want such as what type of food, their expiration date and create report. We agreed using java for this project. Since most of us comfortable with it. That is most of back-end data that we are working with. ( https://catalog.data.gov/dataset/fsis-foodkeeper-data )

We need to host API where can be access online, there are a few options with paid and free. We chose Heroku since it is free, and we feel comfortable with it. To setup Heroku we need an account and set up app on our computer. They have good information on their Documentation Page. ( https://devcenter.heroku.com/ ) We are planning to set up mock-up test for JSON parsing and front end, where we can test and see how our project work. We figure since we still at early stage, we don’t know how other set up their front end. We can set up our own and make sure it would work.

Although at the beginning we didn’t know where we supposed to do, we weren’t used to project in early stage. I feel much better now that we got more ideas about what to do. This has been interesting, we learned about how the team set up in software development. We have good members that take on the job, I am still learning and trying to help. It is excited and fun to figure it out, next at the food pantry meeting with customers. We will have better idea of what they are looking for.

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

“Kindred Spirits”

This is another important chapter in software development, chapter four “Accurate Self-Assessment”, they are talking about how we assessment ourselves. “The talented and hard-working apprentice must not become self-satisfied with his success.” We know there is never ending road of learning in this business. We must fight mentality by seeking out and learning about other teams, organizations, journeymen, and master craftsmen. We always to leave room to recognize ourselves if we are going easy way and room to improve.

Again, when we are walking on “The Long Road”, you find yourself stranded without mentors and in an atmosphere that seems at odds with your aspirations. The road is not mean to walk alone, we need camaraderie. It is can be difficult for some people, including myself. The people we meet along the way could make huge impact on us. There are always someone who on the same road, or ahead of us, someone we have career connection with. We can feel free to show each other what you’re learning and have no obligation to follow the other’s lead. We also should be someone who benefit to our community. This is how our industry get to next level with welcome open arms.

The pattern “Kindred Spirits” also suggest that trying to join all the communities you could join based on what you are interesting. Also join new group with fresh open mind. Inside your group, feel free open discussion and become “regular”. I do like this suggestion; I think this is one of the best way to meet new people and learn naturally. This is what I will try to do more, not just get out of comfort zone but surround myself with people with same interest. Be kind to one another is the best way to be a community.

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

“A Different Road”

This post is connected to my previous post, “The Long Road”. What happen if we were following our dream road, the road we versioned in long-term. But there a limited subset of all possible career paths. You don’t know if this road is longer fit you. You are looking for a path of your own. There are many difficult come with change a path, you are putting your career and your future on new line. But you also don’t know your limit of possibilities.

“A Different Road”, when the road that you draw is leads you away from the main road. You found the new opportunity with new reward, something that you are attract to. But this mean you have to take a turn away from your craft. There is also all the worry of life responsibility, specially family. This will make our choose much more difficult. In this pattern, they suggest despite this risk, don’t be afraid to do something different with your life. I am agreed with taking change and do with what you love. But the situations are different with everyone. It is hard to tell them what to do.

We will have this situation to our life, the people to support around us also are the big factor. We surround by people with different opinions. It is important to listen to who truly support us and with different point of view. They able to help us to feel confident to take that step. The true supporter is the one who stay with you no matter what and will tell you their honest opinions. Although I always thinking about this subject. This pattern tells from another point of views, talk to people with different job. Ask them what they love about it and compare that to the things you love about software development. Go with whatever you see yourself in.

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

Why Doctors Hate their Computers

This blog is about the article “Why Doctors Hate Their Computers” by Atul Gawande, from the November 12, 2018 issue of The New Yorker. This article gives inside experience from doctor’s perspective about software system in the medical field. There are a lot of interesting point in this reading, its touch on point of view from the hospital admission, doctor and software designer. How each department want the software system to benefit them, while there is conflict between. In this reading, I understand where they are coming from and their difficulty adapting to the system. Most of the points in the article are from doctor’s perspective on software, and I am reading as the software developer. This is useful to understand from the customers. We as the developer, listen and understand from customers is crucial. We need to know how to make software useful and convenience, without too much hassle of using it.
The first point of the tensions caused the system to make doctors’ lives harder, the software release in large-scale at one time. Everyone in the hospital must attend hours of mandatory computer training. Most of attendant don’t want to be here, while they need their time to doing their actual job. Time is one of the important in the medical field, one doctor job to see and treat many patients. Rather meet patient face-to-face get personal, they are on computer checking the list. One system does not work for every doctor. Each doctor has their own way of working. System should be release and update slowly as developer work with the hospital/doctors.
The system design to benefit everyone, but I feel the real customer for the system is not just the doctors. The administration wants to keep track with all the work, the choices were more political than technical. The patient benefit from check list of safety hospital must do, but their records are not connecting between different system. They must answer same question every different visit. The doctors are the last people who are benefit, it seems while they are the operator, they have to follow the system. They must change their way of work to be beneficial to the system.
The lessons from the implementation of this system does not apply to only Electronic Medical Record systems. These lessons apply to all software development, how to find the balance of beneficial and drawback. The reading does show more interesting details that I didn’t think of. There are no big parts that I disagree of, there are lot of points from the doctor’s perspective. There is seem like two sides, I want there is mix between developers and users in make these systems. Less political and more of work together, time is important to doctor so make time use on computer similar to the amount time that they normally spend. Flexible software, we have AI smart enough to learn the way of individual doctor work. We have Google Assistant work for every phone why not work for each doctor. Look at the habit of individual doctor and build base on it. Doctor need to help developer to understand and find the solution that benefit both. The system should just an add-on to the existed work, the main idea is to support not to change.

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

“The Long Road”

In the third chapter “Walking the Long Road”, Dave have a bunch of certificates from his education. Then he starts connect to broader developer, he discover that he had barely scratched the surface of what it meant to be a great software developer. He inspired by the power of these hackers’ abilities. He threw himself into side projects and began to read anything he could get his hands on. The more Dave learned, the more he recognized how far he had to go. This is what I image I will be going though once I get into the work force. I am looking for the motivation to learn and see great things.

Speaking of work force, this is what everyone facing once they are doing job for money. We aspire to become a master software craftsman, yet your aspiration conflicts with what people expect from you. Conventional wisdom tells you to take the highest-paying job and the first promotion you can get your hands on, to stop programming and get onto more important work rather than slowly building up your skills. Everyone have their own road, that why we can not follow the successes step by step. I do believe the shorter road you take, the sooner it will be end road. I am agreeing with imagine my own long-term road. What step we are going to take, what experiences we want to try. We don’t want in the future to look back and wish we could take different road. This is always conflict between job and money, they are connected but also affect each other negatively. We are doing what we love but we also want to be successful. On our road of career, sometimes money and promotion could get you turn to different road. Maybe the road that you weren’t to take, this is difficult decision we will face at some point. I agreed with the chapter, no matter which road are we will take. Make sure that’s the road for long term and keep doing what we love.

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

Apprenticeship Patterns Chapter 1, 2-6 Introductions

This is blog post about the introduction of the concept of an apprenticeship pattern from the book “Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye”. This first chapter explains what is Software Craftsmanship, what does it mean to be an Apprentice, Journeyman, and Master. The word Craftsmanship is what I expect as programmer, we train our skill though practice and get better overtime. The mindset Craftsmanship is to be an Apprentice, we should have the attitude that there is better/smarter/faster way so our thought progress will always be finding better way. While we learn from our peers and more experienced developer, we also learn how to learn. When we progress through Craftsmanship, another focus would be the connection within and outside of team. As we know, communication play big role in software developer, the journeyman’s responsibilities are wider than those of an apprentice. Mastery involves performing all the roles of an apprentice or a journeyman as well as focusing on enhance the skills.  What is Apprenticeship and Apprenticeship Pattern? Apprenticeship is a way to learn to be a professional software developer, focus on how to be skilled software developers and work with others. Apprenticeship Pattern is the collection of patterns from the experiences of about 30 practitioners, these patterns offer guidance to someone on the way of improving progress of their career.

The introduction the remain 5 chapters we get to see many patterns. These patterns are the important to be Craftsmanship, it is cover from how to be humble, learn to learn others and how much more we need to learn etc.. I think “Empty the Cup”, “Walking the Long Road” and “Accurate Self-Assessment “chapters are good for the beginner and to all software developer. Although I haven’t read most of the patterns, they seem straight forward with the setup: context, problem, solution, and action. I am sure there will be patterns that will help me in the future career. After the reading there is not so much change my opinion, about the topic. I have a mindset about software developer, and this book is make clear, also show me more ideas in this career. Overall the main focus of this book is how to be better at our skill and career. The chapters I mentioned above seem most relevant to me. So far I don’t have any disagree with this reading. This is a good guideline for the aspiring software craftsman, we find the balance in our learning not too full as the cup of tea or become big fish in a small pond.

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

“Unleash Your Enthusiasm”

As computer science student, I believe we all have this excitement at some point. We get into the new environment, new team and new technology that we excited about. You have an insatiable excitement and curiosity regarding the craft of software development, this is sign of “learner”. I, personally want this in my team, and want this as my enthusiasm in learning new things. This could pick up to the excitement and contributions of an apprentice to the team. For team who welcome this, this is great. But in teams are not hyper passionate or overly enthusiastic about technology. As most company they are most likely to focused on delivering the next project or improving on the aspects of the development life cycle. Show over enthusiasm, you could certainly make a poor impression on people who value more than learning ability, particularly when you expose your ignorance. This is where you need to adjust with the team. Although your excitement is great but over all team is more important.

I definite was in the shoes of these pattern though my school career. If the team is welcome me, it feel great. But there also time where our energy wasn’t matching, I would feel unwelcome or my mistakes are become more highlight than anyone else. This may let’s some of members down, I believe this pattern should be in one of the roles of being teammates. Is to should push each other, and motivation to be excitement. We should be excited to learn. Your ideas and passions will add intelligence and diversity to your team. We shouldn’t too over excitement, but we should be ourselves. Like the action in the book recommend, we could share our idea to the person we comfortable with, see their reaction. This way we could fix our flaw before representing to the team.

This pattern related to my school year, when I get into new group. I am excited get to know new people and their working method. I must keep the team overall as the most important, I have to adjust to the team. But most of the time, I am very welcome to the team and my constitutions are noted.

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

“The White Belt”

This is the first Apprenticeship Patterns Blog Posts, I choose “The White Belt” in the second chapter, it represents maintaining a beginner’s mind regardless of your expertise. This is the second chapter of book “Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman” by Dave Hoover and Adewale Oshineye. The young philosopher- “Can’t you see the cup is already full and overflowing?”. The more experience you already have, the more effort you will need to put into “emptying your cup,” meaning the more you learned the more you have to “emptying your cup”. We must be humble, to able to thrive and get to next level.

To able to have new mindset new skills, sometimes we must go back “The White Belt” to unlearn what we had learn. I thought this pattern is interesting, this help us how to learn new thing and our attitude go about it. Once we learned language, specially first language, we have pride in out skill. Although it is good for you have confident, if you want to learn new thing. In our mindset, we will try to relate to what we had learn. Sometimes that make we learn new thing much harder. To solve this, “The White Belt” suggest that we find an opportunity to unlearn something, like as we go back and wear white bell as beginner. You have to learn new language, with new structure as you first time learning the language. I have to agree on this pattern on this, we need to learn new language and new functional way of building. I need full attention into learn first, once I understand fully then I could compare what I have learn. Although I don’t have a large library of language, this technique will help me in my profession. This also would help me in career, it is good to know someone who do thing different than you. They will make you understand and learn from them.

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

Back to Computer Science

Hello again, welcome to back to school. Most of us are senior which are wonderful. This going to be interesting semester. I am looking forward to work with you guys.

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

AI at Google: our principles

This is the blog call “AI at Google: our principles” by Sundar Pichai, he is Chief Executive Officer of Google. In this blog he talked about the principles of AI at Google. The main purpose of AI is to help us, its potential to improve our lives. Beyond that, AI to help people tackle urgent problems. These benefits are why Google invests heavily in AI research and development and makes AI technologies widely available to others via our tools and open-source code. This is powerful tool that mean we must be responsibility to get this right. These are seven principles to guide Google’s work going forward. They want to set to concrete standards that will actively govern the research, product development and business decisions.

Objectives for AI applications: Advances in AI will have trans formative impacts in a wide range of fields, including healthcare, security, energy, transportation, manufacturing, and entertainment. They also take into account a broad range of social and economic factors and will proceed where they believe that the overall likely benefits substantially exceed the foreseeable risks and downsides. They recognize that distinguishing fair from unfair biases is not always simple, differs across cultures and societies. They will seek to avoid creating or reinforcing unfair bias. They will continue to develop and apply strong safety and security practices to avoid unintended results that create risks of harm, and will incorporate our privacy principles in the development and use of AI technologies. AI tools have the potential to unlock new realms of scientific research and knowledge in critical domains like biology, chemistry, medicine, and environmental sciences. They aspire to high standards of scientific excellence as we work to progress AI development.

And the applications that they will not design AI for, such as weapons or other technologies whose principal purpose or implementation is to cause or directly facilitate injury to people. Technologies that cause or are likely to cause overall harm or gather or use information for surveillance violating internationally accepted norms.

Look at AI for long term, this is the technology that will stay with us in the future. There are many voices about this subject. Although I don’t have all my trust and believe in company and operation. This is the future we cannot avoid, that’s mean we have to be careful and monitor it to goes right direction. We need to set regulations and principles, I am agreed with these principles by Google. But we need to make sure that they keep their words.

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