Skip to main content

Agile Tour Vietnam 2015 in HCMC

I had a chance to join this event today. It was great!
Agile Tour Vietnam 2015 in HCMC


For who don’t know Agile Tour, the following is the basic information from http://at2015.agiletour.org/
“Agile Tour has been a way for enthusiasts of Agile to spread the word about Agile practices and to share their experiences, both good and bad, within their local community. These non-profit events occur every year in October and November in several cities.”
Many valuable topics were shared to the community. The topic I like best is “Software Craftsmanship” from Mr. Sandro Mancuso. “Software craftsmanship” is an approach to software development that emphasizes the coding skills of the software developers themselves (wikipedia). I would like to share with you my notes about it:
  • Agile is actually “a quick feedback loop”. For example, we review the user stories after 2 weeks, we will get feedback; we apply TDD, we will  get feedback immediately, etc.
  • Scrum, a Agile framework, is one main stream of Agile’s framework had a big issue that is technical debt. This is a reason why we should apply XP Practices such as TDD, Pair Programming, Automated Test, etc,… in order to improve the quality of products.
  • “If you want to go fast, you need to go well”. The reason is that we maybe build the project fast at the beginning if we don’t care too much about the quality of code, structure of project, technical, etc. And then, we will be slow down later on when project is bigger. Because we did not do well before and a lot of bugs occur.
  • “Building the right thing right”, that means Agile is somehow the “right thing” and we should build it right. According to that statement, we have the manifesto for Software Craftsmanship that is extended from Agile manifesto:
    • Not only working software but also well-craft software.
    • Not only responding to change but also steadily adding value.
    • Not only individual and interaction but also community of professional.
    • Not only customer collaboration but also productive partnership.
    • Best practices ever: continuous improvements and finding a better way than the old one.

Here is some pictures were take from this event.
Software Craftsmanship – Sando Mancuso

Behaviour Driven Development topic and my note book

The Pillars of remote team management – Lisette Sutherland

Conflict in team is a matter of choice – Michael Bertrand

I and my colleagues at Agile Tour 2015 HCMC

Thank you! See you on next events.

Comments

Popular posts from this blog

If We Want to Go Fast, We Need to Go Well

Have you ever thought that we won't need to code anymore because programs might be generated from specification? The answer can be yes or no; there is still arguing about it. The programming language is more and more closed to the requirements. The starting is from a very low level as Assembly to a very high level like Python. However, it doesn't make much sense when saying that we will eliminate coding. For me, we currently still need to express our ideas in exact words that tells the machine what we want. Otherwise, I hope in the future the machine is intelligent enough to understand our requirements directly from our words. ;) Take a look at the famous quote of Robert C.Martin about what I mentioned above: "Remember that code is really the language in which we ultimately express the requirements. We may create languages that are closer to the requirements. We may create tools that help us parse and assemble those requirements into formal structures. But we wi...

How I did customize "rasa-nlu-trainer" as my own tool

Check out my implementation here Background I wanted to have a tool for human beings to classify intents and extract entities of texts which were obtained from a raw dataset such as Rocket.chat's conversation, Maluuba Frames or  here . Then, the output (labeled texts) could be consumed by an NLU tool such as Rasa NLU. rasa-nlu-trainer was a potential one which I didn't need to build an app from scratch. However, I needed to add more of my own features to fulfill my needs. They were: 1. Loading/displaying raw texts stored by a database such as MongoDB 2. Manually labeling intents and entities for the loaded texts 3. Persisting labeled texts into the database I firstly did look up what rasa-nlu-trainer 's technologies were used in order to see how to implement my mentioned features. At first glance rasa-nlu-trainer was bootstrapped with Create React App. Create React App is a tool to create a React app with no build configuration, as it said. This too...

[Snippet] CSS - Child element overlap parent

I searched from somewhere and found that a lot of people says a basic concept for implementing this feature looks like below: HTML code: <div id="parent">  <div id="child">  </div> </div> And, CSS: #parent{   position: relative;   overflow:hidden; } #child{   position: absolute;   top: -1;   right: -1px; } However, I had a lot of grand-parents in my case and the above code didn't work. Therefore, I needed an alternative. I presumed that my app uses Boostrap and AngularJs, maybe some CSS from them affects mine. I didn't know exactly the problem, but I believed when all CSS is loaded into my browser, I could completely handle it. www.tom-collinson.com I tried to create an example to investigated this problem by Fiddle . Accidentally, I just changed: position: parent; to position: static; for one of parents -> the problem is solved. Look at my code: <div class="modal-body dn-placeholder-parent-positi...

Sharing a virtualenv across several Python projects using Pipenv

There is a standard library for all projects in Python. However, several projects don’t always have the same dependencies all the time. That is where virtual environments come to play. You can follow this official document to use two separated tools  virtualenv and pip to  fulfill that need. My preferred alternative is to use pipenv . Pipenv is easy to use and convenient. The following are my steps to make a shared virtualenv for my all projects which requires the same dependencies. Step 1. Create an isolated virtualenv. python -m venv my-shared-env Step 2. Create a symbolic link to the created virtualenv. cd project_1 ln -s ~/.local/share/virtualenvs/my-shared-env .venv I have encountered the following issue at step 1. FileNotFoundError: [Errno 2] No such file or directory: '{my_project_path}/.venv/bin/pip': '{my_project_path}/.venv/bin/pip' The root cause was I tried to create virtualenv by running pipenv install and renaming the generated virtualenv to ...

Creating a Chatbot with RiveScript in Java

Motivation "Artificial Intelligence (AI) is considered a major innovation that could disrupt many things. Some people even compare it to the Internet. A large investor firm predicted that some AI startups could become the next Apple, Google or Amazon within five years"   - Prof. John Vu, Carnegie Mellon University. Using chatbots to support our daily tasks is super useful and interesting. In fact, "Jenkins CI, Jira Cloud, and Bitbucket" have been becoming must-have apps in Slack of my team these days. There are some existing approaches for chatbots including pattern matching, algorithms, and neutral networks. RiveScript is a scripting language using "pattern matching" as a simple and powerful approach for building up a Chabot. Architecture Actually, it was flexible to choose a programming language for the used Rivescript interpreter like Java, Go, Javascript, Python, and Perl. I went with Java. Used Technologies and Tools Oracle JDK 1.8...