SonaQube is great tool for monitoring quality of source code.

Gradle projects can be easily integrated with SonarQube by Sonar Runner Plugin.

You can start analysis by command:

gradle sonarRunner

This works perfectly on command line, but execution by Bamboo CI terminates with following error:

ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: Missing commit 4a3e...237f

The problem is that Bamboo creates shallow git clones by default. You can find this options under Repositories tab – Advanced options.

Solution: disable “Use shallow clones” options and start job again.

Correct configuration:

stash-shallow-clone

Result: 🙂

build-success

The process of forming the team, it’s stages, team roles which should be represented in a team and many interesting issues about team coordination, cooperation, communication and productivity. All of that was discussed during agile community meeting, which Y Soft was hosting last week in Brno office. In this text I want to highlight most interesting issues we have discussed and found ways hoe to handle it.

agilia_01

Introduction

Short introduction by Michal Vallo was about Tuckman’s stages of group development as life-cycle of team construction and Belbin Team Roles as guide to what characters should be included in each team. Later, each participant propose one topic to be discussed, then everybody vote for the one which he likes. I will present three of them which were discussed the most.

agilia_03

Need of Junior/Senior positions

Team consists of different roles and people. One of way how to differentiate team members is usage of Junior and Senior labels. There were many interesting inputs to this topic.

One of the opinion reflected in real company policy was to remove these formal roles. Reasons to do such a thing are more. There is no race in a team to reach senior position. If starting new project and forming new teams, you will prevent situation with low interest in junior positions in a team. But you still have to differ skills and knowledge, reward courage and motivation. It’s should by done by assigning responsibilities, competences, work tasks with different difficulty. And do not forget about money, company benefits and other materialistic stuff.

On the other hand, especially bigger companies has defined career paths, so they need to differ positions on formal level. It also works if these career paths are well defined and they are not limited by project budget or head count calculated on HR. Because there was also one case discussed, where team is limited by budget and even they had chance to hire great senior guy, they couldn’t because of restrictions on number of senior positions.

Low performance of one member in a team

An interesting discussion was about dealing with low performance of one team member, who is lowering teams overall performance. Well working team should identify such a member itself without intervention from higher positions. Move to another team, relocate to another department or fire him are another “simple solutions”.

But what if this member is e.g. external contractor and you cannot get rid of him like this? Again more working solutions were discussed, but think about two types of people. Ones who will get better if you will push them and ones who are too lazy or incompetent for this work type and load. For the perspective ones, motivation is the key. If direct motivation is not successful, try to do it other way. Make them work in pairs with team members which are more productive, make them responsible for something and force them to present work results to the team e.g. on daily stand-ups. They will be shamed maybe, but it should show the difference. For the lazy ones, try to assign them work tasks which are easier, maybe not popular, or just ones that are the cheapest in case they will screw it.

But do not forget. That it’s not only about performance. Team member with lower performance can have e.g. greater social influence for the team, so it’s affecting the team performance also.

Team motivation

How to motivate team and its members to perform better? In the beginning I want to explain difference between motivation and stimulation, because both approaches were discussed. Motivation refers to the will to act, work, create, etc. On the other hand, stimulation deals with encouraging on an initial effort or in supporting an already existing action. Most of discussed motivation practices were:

  • Allowing self-development of team members, based on their will and needs of the team
  • Giving challenging and interesting task to team members
  • Take inputs from team members seriously, try to give valuable feedback
  • Trust the team and let them make decisions, give responsibilities to each team member

If there are some activities in the team like supporting the product or bugfixing, which are not as popular as e.g. new development, distribute these type of tasks over the whole team by rotating engineering role every iteration or distribute it evenly across all team members.

agilia_02

It looked like everybody has took something from this meeting, and I am looking forward to another interesting topics to be discussed in further community meetings.

I had the honor to open the GeeCON Prague conference with a short keynote. I spent several months thinking about appropriate topics as I wanted to express the reasons and motivation why we have partnered with GeeCON team and cooperated to make this happen. Now that the conference is over and we all feel positive about it, my colleagues asked me to share the keynote slides with them. I feel that the slides are not very comprehensive on their own, so I am writing this short post, trying to explain what was on my mind and what message I tried to give.

Two years ago, when we started to look around to search for interesting groups, projects and events within the developer community to support and work with, we have realized that there is no conference for Java  developers in the Czech Republic and there wasn’t one for at least 8 years. The last such event were probably the Java Days organized by Sun in 2006. Anyway, we set out to Krakow with the simple mission, bring GeeCON to the Czech Republic in two years. Mission accomplished. It was fun and a learning experience, I met lots of great people and I am simply happy that I have the opportunity to work with them. So let’s dig into the keynote…

GeeCON in Prague

We met for two days in Prague, with 42 speakers givin talks in 3/4 parallel tracks, more than a dozen of partners and almost 500 participants. Two days packed with information about Java, JVM and related tools and technologies.

In 2013, we started to look around for events, communities and organizations to cooperate. Cooperation with the community is important for any public company and in our case, it is about several things. First of all, any kind of such cooperation is giving you the much needed perspective on yourself. It is also giving you the opportunity to give something back and also to bring something new to your work. For us, it is also about presenting Y Soft and showing what we are doing to the public. When we started in 2013, we realized that there is no conference for serious Java developers and we set on a mission to bring one to the Czech Republic. How this came to this end is perhaps a topic for another post :-).


And so we were there and I used this opportunity to think out loud about how developer community could and perhaps should work.


Have you ever wondered why some communities work and some don’t? Well the key concepts are, in my opinion, contribution and sense of ownership. You probably think that this is just too obvious and trivial thought, so let’s elaborate.

One of the key traits in Silicon Valley is the notion of Paying it forward. This means that everybody is trying to help others without expecting to get immediate return. Help is seen as a long term investment – you do something for somebody now and somebody else will help you when you need it. The most fascinating part of this is, that this really work and not only in the Valley.

When you create something, you own it, but at some point, you need to let it go and open this, so others can contribute. And whenever you do this, you are transcending yourself to your work and letting others to share in your ownership alike.


All contributions do count – no matter how big or small they are. You can do something as small as attending a meetup or joining in a public discussion.

Y Soft is a proud contributor and we proudly share the responsibility for the state of the developer community here in the Czech Republic. We are also proud contributor to GeeCON, being a Platinum Partner in 2013 and 2014. We are having a plethora of other projects, such as Y Soft Technology Hour.


I would like you to think about your contribution. It does not matter whether you do something small or big. But it makes sense to be serious about it, because we all share the responsibility for the developer community in the Czech Republic.

The complete slides to my keynote are available at slideshare.net.

 

The idea behind unconference is that attendees create and plan content.

Y Soft and Kentico were discussing possibility to host unconference in Brno.

How we organized it?

20150305-unconference-introduction

We presented rules of unconference to attendees:

1. Planning

  • submit your topic for discussion
  • place topic which you like onto the planning board
  • join similar topics into one topic

2. Unconference

  • topic owner should kick-off discussion
  • enjoy the discussion
  • feel free to leave room when you do not find topic interesting and join other group

We made 3 iterations of topic discussion. Duration of each iteration was 20 minutes followed by 10 minutes break.

unconference-board

We were running 3-4 parallel tracks and many discussions were happening in corridors.

What was the feedback? It was positive. Attendees liked opportunity to learn about challenges or experience from the other company.

Attendees suggested that discussion time should be longer. Twenty minutes were not enough to dive deeply into the topic.

We’re looking forward to attend next unconference with our friends from Kentico.