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.