Changes in Scrum commitment, grooming, and the team

Do you know that commitment, grooming, or the development team are no longer terms used within The Scrum Guide?

A forecast replaces commitment.

Commitment has been removed from The Scrum Guide in its first revision in 2011 and replaced by a forecast.

The Scrum Teams do not commit to completing the work planned during a Sprint Planning event. The Scrum Team creates a forecast of work it believes will be done, but that forecast will change as more becomes known throughout the Sprint.

The new name reserves the potential for changes during the Sprint, and the company should empower the team to make…


Cross-functional teams in Agile and Scrum

There are many kinds of teams in different organizations. Some teams seem like they are always developing something without ever releasing anything. Other teams are always extremely hard-working while feeling underappreciated because others see them as their bottleneck.

Exceptional teams can generate value with every iteration with nothing to hold back their creativity and engineering excellence. But how can such successful teams be formed in your organization?

Functional vertical teams

Teams are often established around a specific function that they are asked to perform within an organization. For example, you can have a QA team that is purely focused on testing software…


4 values and 12 principles

Agile has started in early 2000 and it has now been part of the industry for over 20 years.

Agile is simply a set of 4 values and 12 principles. Unlike Scrum or Kanban, it is not a framework or methodology.

The 4 values of the Agile Manifesto

The four values of Agile come from the famous Manifesto for Agile Software Development which simply states:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation


How to recognize problems with agile adoption.

Is your team dependent on other teams to ship?

Agile teams are expected to be cross-functional and self-sufficient.

Shipping is about its whole process of iterative design, development, testing, and deployment based on a shared goal. If a team is able to do only one piece (for example only development), it won’t be able to ship within the same sprint. It will also lead to situations where they can’t work because they are waiting for input from design. Or their output will accumulate because QA won't be able to prioritize it enough to consistently pass it through.

If your agile teams are divided based on their specializations they cannot…


How to build a serverless NLP chatbot for your website

browser screen showing a chatbot conversation on the left and a list of training output on the right
browser screen showing a chatbot conversation on the left and a list of training output on the right
Image source: Author

It is possible to build a chatbot for your own website without dependency on a third-party service like Dialogflow or Watson, and without a server. I will show you how to build a chatbot that will completely run in the browser.

I will assume that you have some understanding of JavaScript and insight into how natural language processing works. No advanced knowledge or machine learning experience is needed.

If anyone tells you that it’s crazy to do machine learning in a browser using JavaScript, then don’t listen to that, because soon you will know better yourself.

Our code will be…


Terminology and differences in programming paradigms

cartoon about imperative vs. declarative code
cartoon about imperative vs. declarative code
Image source: Author

Believe it or not, you are likely already using multiple programming paradigms as a developer. Because there is nothing more fun than entertaining your friends with programming theory, here is an article that will help you recognize popular paradigms in your code.

Imperative Code

Imperative programming is how we started with Assembly (1949) and continued with languages like C, C++, C#, PHP, and Java. Procedural and object-oriented programming belong under the imperative paradigm.

Your code is based on statements that change the program state by telling the computer how to do things. …


All JavaScript developers are awesome and they deserve a brilliant way of filtering and mapping over an array with just one function with a linear complexity O(n) of one run through the array.

If you are looking just for the solution, then here is the code for filterMap. Thanks for stopping by.

Please notice that the above function is just a one-liner using a JavaScript reduce function. Here is an example of using filterMap:

filterMap is better than using two function calls of map and filter separately because you would need to go through the array twice. …


Took arrow function in the knee
Took arrow function in the knee
Took arrow function in the knee!

Nowadays, all my code is based on the use of arrow functions. If you are still not using them yourself, then don’t be ashamed of who you are. That’s your parent’s job. Instead, find about all the benefits that you can get by using arrow functions like the cool kids.

This is an example of arrow function and the same code written traditionally:

You may notice that the code is shorter and that there is an arrow. …


Rasa chatbot with REST API with minimal Python skills

Rasa brought some amazing new changes with their new version of Rasa that make it even easier to build your very own chatbot using Python for Natural Language Understanding and Natural Language Processing.

My criteria for choosing Rasa are:

  • I wanted to create a chatbot that would not be dependent on any third party service like Watson or Dialogflow.
  • I did not want to go too deep into learning Tensorflow or Torch for machine learning either, especially since it goes far beyond learning just a library.
  • Finally, I wanted to be able to build my own web interface easily, without…


Function composition is one of the most powerful differentiators between object-oriented and functional approaches to programming in JavaScript.

I will explain the difference between class hierarchy and composed function leading to practical examples of advantages of function composition and functional programming in JavaScript that I use in all of my own code.

Class hierarchy and RoboDog

In object-oriented programming, you define your classes.

For example, you specify a parent class Animal that has a method move. You continue by creating classes Cat and Dog which will inherit move from Animal and add their own methods bark and meow.

Then you decide to develop a…

Martin Novak

Martin is a seasoned manager with rich experience in leading international teams and governing product strategies.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store