Suggested Pages

Friday, December 8, 2017

Kanban - the origin of your needs

Context

Kanban is not about how you work, but is a methodology to improve how you work.

Kanban helps you to improve performance and experience a new point of view.
Kanban tells you to visualize your process, and understand weakness and strongness spots; it gives you a chance to evaluate how you work and your engagement.

Understand your process

Kanban is an open process that tells you to visualize the way you work and describe your process on a Kanban Board.

Let everyone view the steps to distribute deliverables

Visualizing can highlight:

  • Bottlenecks:

    It's not unusual that you have to wait your boss to make approvement and the process is about to stop.

  • Not all the skills of team members are valorized:

    Many team members may be stressed or overloaded. Many others are not valorized and the team can't taken advantage of.

  • Too small team and more effort is needed:

    The team is not measured, gratified or rewarded by the extra effort

  • There are skils missed:
  • The team does not have enough skills to meet IT needs

  • The process changes over time:

    There is no clear process, there are no pre-established responsibilities and the process leading to the creation of artifacts is amended according to specific needs.

The team first of all

Before tring to improve the current process, it's important to have a complete awareness of the context the process moves, but understanding the context of a project is as important as knowing the team.

Kanban helps you on understand both the process and the development team. Each team member has different approach to work. Some team members are "task oriented": they perform better when a task is clear and completely defined. Other team members are "team oriented", they like working in team and perform better when a task is shared and continuous interactions with other team members are established.

Kanban promotes both:

  • Project goal:

    Visualizing how you work is the first step. Collect observations, advices and feedback is the right approach and do not make corrections immediately, decide as late as possible in order to take a decision where you awareness is greater.

  • The Team:

    Trasparency, acceptance and engagement. Agile methodologies rely on the idea that your job is important and every team member is an important part of the entire process. Every team member has to understand the importance to achieve project goals and also the importance to achieve that target with the entire team.

    A team performs as the less productive member of the team.

Tuesday, February 7, 2017

Maven Optional Dependency

Here an example of maven optional usage:

Maven Optional can be described as a dependency that is marked as excluded by default. This means that if your project X depends on a specific library Y that declares a dependency with Z as optional, then your project X does not include Z as library because it is considered optional.

Because of this all the functionalities of Y that does not regard Z can be used normally, but the functionality expressed by Z cannot be used by project X unless X declares a specific dependency on Z.

project Y
       
 
     <dependency>
      <groupId>groupZ</groupId>
      <artifactId>Z</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
     <optional>true</optional>
     </dependency>
As you can see project X should include and direct dependency on Z if the project X needs the functionality of the project Y expressed by project Z. project X
       
  <dependencies> 

     <dependency>
      <groupId>groupY</groupId>
      <artifactId>Y</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
    </dependency>
 
     <dependency>
      <groupId>groupZ</groupId>
      <artifactId>Z</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
       </dependency>

  </dependencies> 

Monday, February 6, 2017

Producer/Consumer Poison Pill

Poison pill is a technique used by a Producer to drug a Consumer in order to communicate the end of trasmission.

This kind of technique is generally used when a Producer and a Consumer share only one pipe for normal communication.

We can consider Poson Pill as a common practice when the pipe between Producer and Consumer is a datatype channel: the same channel is used to exchange different kind of data types between endpoints.

So because the datatype channel is used for different message types, it's usual to divide message into two categories:
- message data types;
- control message data types. 

A Poison Pill is a Control Message Data Type used to communicate the state of the entire channel: the intension of the Producer to stop itself.

Suggested Pages