Wednesday, April 20, 2016

Building a new productive team around Java EE 7

Anton Smutný is a software engineering manager at Muehlbauer Group, an international industrial company specializing in wide array of technologies. At the technology center located in Nitra, Slovakia, they are building a new agile Java team to fulfil growing internal needs for innovation and automation. Their team approached me to guide them in adopting new features and best practices in Java EE 7 effectively.

Anton, what were the reasons for choosing Java and Java EE, which alternatives did you consider?

This was not a question of creativity or technology. We knew that we have to build up the thin web based applications. We also wanted to avoid the necessity to build native mobile apps besides usual desktop applications. Why? It was a luxury for us. When I started in Muehlbauer Company in Nitra almost 2 years ago, the software department was a group of talented people who were insourced in the parent company. And they’ve stayed insourced till now. So it was necessary to build up the local team on the green field. And, of course, our goal was to produce the output as soon as possible. Therefore the web based application was a solution which was presentable on PC and also as mobile responsive application. Java EE offers us to implement it in a quite short time focusing on middleware and backend. We also realize that if we want to build up a new Java EE team, we will have to start cooperation with young talented students from the local universities. And the last but not least reason – Java EE was already used in the concern, .NET was, however, a mainstream technology.

Did you have any programmers in your team, who were just beginners with Java EE? How long did it take them to start with Java EE and be productive?

The beginnings were a little bit hard. We had an experienced developer in the team, but we built our team mostly on newbies. We had to find the way how to build up the knowledge-base. The main point was to identify who will focus on what. I think that the easiest way is to let people do what they like. Some of them prefer front-end, some middleware or backend, some are focusing on data. Some are more or less creative concerning architecture and third party integration. This was the key. But we saw the first meaningful results approximately after a year. On the other side, I have to admit that a newbie is for us a person who has some knowledge with Java SE. Then we can improve his or her Java EE knowledge by internal trainings, training applications or external trainer. 

What are the technological challenges you are facing? In which challenges is Java EE helpful to your team?

I do not want to talk about the projects in progress, but I can say that the biggest issue is the integration of the third party products. We are dealing with lack of information, documentation of interfaces or supplier’s willingness for cooperation. For example, to avoid these issues, we had to implement not only software but also hardware solutions. This was for me really great experience because I have some software background but I treat hardware as some kind of magic. What I also appreciate we are using Primefaces, so we are able to implement quite quickly a responsive mobile-friendly front-end. And I have to add that the most of our team prefers middleware or backend development.

How do you manage integration of Java EE and other platforms/connectors you use?

I’ve already mentioned integration of the third party platforms. I have to say that we tried to integrate some C++, respectively .NET products using the JNI. We do it only in the case that we really must or when the interface is not so complex. Of course, if we are talking about integration of our products, we use a SOAP web services, JMS, AMQ. We still do not use any black boxed integration platforms like Tibco, Oracle’s ESB/OSB or any other big integration solution.

Which process methodology do you use to plan and manage software projects?

When the department had started to grow, organization became harder and harder. That’s why we had to move to proper planning based on some certified technique. SCRUM is helping us to move our project forward and reach the quality and deadlines. All our task management is handled in Redmine.

Which tools or decisions have been most helpful to improve cooperation within your team or quality of the products?

We want to avoid chaos in our work. So we started with continuous integration. We use GIT as a source control, Gerrit for code review, Jenkins as automation server and SonarQube for managing code quality. Talking about the team, one of the most important things was a team composition, integration of the students because IT labor market here in Nitra is minor comparing to Bratislava. We started a communication with local universities and searching for opportunities to meet with most talented students. This is the way how we can plan our personal mid and long term strategy. We spent a lot of time to train our team and I can say that I see the results now – after a year and a half. 

What are your plans to improve on or to introduce into your processes in the next year?

At the beginning of this year I specified 4 goals to reach in 2016. Stabilization of the team is very important to me. I’ve mentioned that we started to use agile project management. We are finishing our continuous integration process. We still do not use automated tests – we want to start with jUnit tests and front-end tests based on Selenium. I hope that we will find a way how to deliver a software in very good quality and in time. Also we have to move forward with the next training of the team. Last but not least – very important goal – is to build up the automation team. In general Muehlbauer Company has a goal to establish a Competence center settled in Nitra – and our Software Engineering team will be an important part of it.

Is your company hiring Java EE programmers?

We are looking for junior and senior developers for Java, .NET, C++ or talented people who want to get into the IT. I have mentioned also our personal strategy – cooperation with the local universities, cooperation with the students. There are also students who want to work after their state exams in their region ~ in Nitra. We want to offer them this opportunity. I have to admit that I see a huge improvement of our students who are working on our projects. Our goal is to have highly professional Research & Development center. Therefore in general, R&D is searching for qualified and high motivated people in IT and engineering.

Anton, thank you for the interview!

This is a copy of the original post I published on my new blog here: Building a new productive team around Java EE 7

Thursday, January 28, 2016

Happy to announce my new blog site!

Although I love blogger.com, it does not provide all the features I'd like to have in my blog page. Therewore I created my new blog site, where I transferred all blog posts from this blog.

You may visit my new blog site at http://itblog.inginea.eu/.

I will be posting there from now on. In fact, there is already a new post about using Facelets in the new MVC framework in the coming Java EE 8 framework.