Read - Today Software Magazine

quarterceladonMobile - Wireless

Dec 10, 2013 (3 years and 6 months ago)


No. 9 • March 2013 • •
Design adaptiv – a fad or necessity
Cultural projects initiated by an IT company
Twitter Bootstrap in Web Applications
Book review:

OSGi in Action
Google Web Toolkit – Overview
Cluj IT Cluster
Implementing a successful metrics
system in an IT company
The Psychology of initiating and
maintaining behaviors
Introduction to Grails III
The Challenge of Leadership
Who is the Business Analyst and
why would I need one?
Barcelona mobile world
Agile or idle?
In search of the perfect domain
ABAP in Eclipse
Cluj IT
Echipa Cluj IT Cluster
Cultural projects initiated by
an IT company
Florin Pârlea
The Cluj IT
History (IV)
- IT Map
Marius Mornea
Mobile World Congress
- Barcelona 2013
Codruța Nicolescu, EMBA
Twitter Bootstrap
in Web Applications
Ioan Bercea
ABAP in Eclipse
Victor Ionescu
Google Web Toolkit
– Overview
Alex Luca
Implementing a successful
metrics system
in an IT company
Ramona Muntean
In search of the
perfect domain
Radu Popescu
Design adaptiv
– a fad or necessity
Bogdan Nastasa
Microsoft in
Radu Vunvulea
The Challenge of Leadership
(Part 2)
Martin Mackay
Who is the
Business Analyst and why
would I need one?
Daniela Haliga
to Grails (III)
Tavi Bolog
or idle?
Adrian Lupei
Book review: OSGi in Action
Silviu Dumitrescu
The Psychology of initiating
and maintaining behaviors
Antonia Onaca
Gogu and
Simona Bonghez, Ph.D.
nr. 9/2013 |
In the previous issue, we have seen that statistics showing successful projects indi
cate that the success rate is 24%, considering the results of 2009. To reduce the risks of
failure, each company adapts to difficult situations by applying mechanisms to turn a
potential loss into a success. The intensive use of processes or highly experienced teams
may usually become effective approaches and solutions. There was a dramatic increase
in IT in Romania and it is a convenient time to think about best practices that may be
applied at an individual and company level. Their definition and implementation will in
time provide a better result prediction based on common
statistics (key performance
indicator) available at the community level. Therefore, we welcome the foundation of
IT Cluj Cluster and also hope to see similar initiatives in other major cities in Romania.
Mobile World Congress
, the biggest worldwide event, took place at the end of
February in Barcelona. We would like to congratulate the
initiative to facilitate the
participation of 11 Romanian companies in a Romanian joint stand.
Recognizing the value that cultural identity disclosure and heritage preservation offer
to a community, the company
Gemini Solutions
demonstrates how IT can be actively
and effectively involved in supporting Romanian cultural projects. Details about each of
these initiatives can be found in the first part of this current issue.
March begins with a series of events to which you are invited:
Startup Weekend -
addresses those who have a startup idea or want to be part of one.
All tickets have already been sold for several weeks.
…even mammoths Can Be AGILE
is now at its second edition and will be held in
Cluj and Bucharest. You will enjoy a day in which representatives of local companies and
international speakers will talk about how to apply Agile to organizations to which they
Innovation Days
is organized by the Cluj IT Cluster and is its first public event.
Issue no.9 of TSM
brings about a number of interesting articles such as using the
Twitter Boostrap in Web applications framework
, an introduction into the world of SAP
by using
ABAP in Eclipse
. They are followed by a reminder /
introduction to GWT
Implementing a successful Metrics System in a software company
. We also have
Challenge of Leadership (part two)
Who is a business analyst and why do we need one in
How to get the support of your team in a project
. Turning to the technical
side, we mention In search of the perfect domain,
Adaptive design - a fad or necessity,

Introduction to Grails (part 3)
and the
book review of OSGi in Action.
Moreover, there are
a few unusual articles like:
Microsoft in the world of Open Source
Growth Hacking applied

that teaches you how to increase the audience of a site based on the interaction of users.

Ovidiu Măţan
Founder & CEO of Today Software Magazine
Ovidiu Măţan, PMP
Founder & CEO
@Today Software Magazine
5 | nr. 9/2013
Editorial Staf
Fondator / Editor in chief:
Ovidiu Mățan
Editor (startups and interviews):
Graphic designer:
Dan Hădărău
Ioana Fane
Cintia Damian
Tavi Bolog
Adrian Lupei
Made by
Today Software Solutions SRL
str. Plopilor, nr. 75/77
Cluj-Napoca, Cluj, Romania
ISSN 2285 – 3502
ISSN-L 2284 – 8207
Copyright Today Software Magazine
Any reproduction or total or partial reproduction of
these trademarks or logos, alone or integrated with
other elements without the express permission of the
publisher is prohibited and engage the responsibility
of the user as defined by Intellectual Property Code
Silviu Dumitrescu
Java consultant
@ .msg systems Romania
Marius Mornea
Founder of Mintaka
Research platform
Radu Vunvulea
Senior Software Engineer
Simona Bonghez, Ph.D.
Owner of Confucius Consulting
Radu Popescu
QA and Web designer
@ Small Footprint
Martin Mackay
CEO @ Neverfail Group.
Bogdan Nastasa
UX/UI Design Lead
@ Endava
Victor Ionescu
SAP IT Consultant
@ .msg systems Romania
Mircea Vădan
@ Use Together
Ana Soviany
Projects coordinator
Florin Pârlea
General director
@ Gemini Solutions
Codruța Nicolescu, EMBA
Executive Director
Ioan Bercea
Senior Web Developer
@ 3Pillar Global
Alex Luca
Senior Developer
@ HP
Ramona Muntean
Measurements & Best Practices
Daniela Haliga
Business Analyst
@ Endava Iași
Adrian Lupei
Project Manager and Software
Engineering Manager
@ Bitdefender
Tavi Bolog
Development lead
Mihai Nadăș
@ Yonder
Antonia Onaca
with 10 years of experience,
psychologist, consultant
as an entreprenour
nr. 9/2013 |
Cluj IT Cluster
An innovative cluster
The cluster concept was introdu
ced in 1990 by Michael Porter as a
“geographic concentration of intercon
nected companies, specialized suppliers,
service providers, and associated institu
tions in a particular field that are present
in a nation or region”. Nowadays, clus
ters are are very high up on the agenda of
governments, companies, and other insti
tutions. Cluster development initiatives are
an important new direction in economic
policy. Building on earlier efforts in macro
economic stabilization, the clusters have
the potential to increase the productivity of
the companies in the cluster, to drive inno
vation, and to stimulate new businesses in
the field.
CLUJ IT was set-up in September 2012
as an innovative cluster which is based on
an association /agglomeration of compa
nies active in the IT sector combined with
universities / research organizations with
the role of generating up-to-date research
that can be applied in this sector and can
benefit the companies, and also with public
institutions& catalyst organizations that
can provide direct support for initiatives,
facilitate financing or networking. So, from
an organizational perspective, Cluj IT is
an association of members active in the
Information Technology field including:
23 IT services and software solutions pro
viders; 2 universities; 7 public institutions
and catalyst organizations. The full list of
cluster members is available on the cluster’s
official web site
These organizations acknowledge
that they should cooperate in order to
address current challenges in areas such as
Human Resources, Research Development
& Innovation, Business Infrastructure,
Financing and Marketing /Sales.
The CLUJ IT cluster is very represen
tative for the local IT community as it
brings together companies with cumu
late revenues of approximately 70% of the
IT sector in Cluj and a headcount of over
3,500 employees. The member compa
nies specialize in Business Applications
& Solutions, Web 2.0 and Rich Internet
Appl ications, Mobi l e Appl ications,
Embedded Systems, Applications &
Infrastructure Management and Hardware,
and they are working for clients in mainly
in Financial Services, Telecommunications,
Pharmaceuticals, Logistics, Retail,
Automotive, Manufacturing and Public
The Cluj IT member companies and
the innovation partners have the capabi
lities to cover the complete value creation
chain. The two universities in the clus
ter, Technical University Cluj-Napoca
and Babes-Bolyai University, have strong
research capabilities ranging from artificial
intelligence and future robotics to chal
lenging IT solutions for medical network,
involving more than 300 people in over 30
research projects.
Cluj as a regional innovative IT hub
Cluj IT Cluster represents an orga
nizational business initiative aiming at
increasing competitiveness and attractive
ness of the Romanian IT sector overall and
positioning Cluj as a regional innovative IT
The cluster’s vision is to become by
2017 one of the most credible suppliers
from Eastern Europe for innovative IT ser
vices and products as well as organizational
support systems.
The cluster has the support of the
Romanian Government and the local
authorities, which acknowledged Cluj IT as
an initiative of national importance, while
several renowned professionals in the busi
ness and public fields were co-interested so
that a Strategic Council for the cluster was
established, with an important role in gui
dance and lobbying.
The top focus points for the cluster are:

Extending the international market
footprint through increased competitive
ness and innovative products / services;

Building an efficient cooperation
mechanism between the IT industry and
the academic sector which will result in
a highly skilled workforce;
ecognized for its tradition in higher technical education and currently a major IT center in the region, Cluj has a favorable
environment for the organic emergence of an innovative cluster. As cluster initiatives are considered an engine for the regional
development and innovation, the recently formed CLUJ IT cluster is getting a lot of attention from the local IT community as
well as from the local and national authorities.
7 | nr. 9/2013
Planning and building an extensible
Cluj IT City where the IT community will
have all the infrastructure needed to do
business, innovate and collaborate.
To achieve international exposure,

the cluster will be very active in promo
ting the capabilities of the cluster and is
looking to generate international projects
as a joint team, while it also aims to work
with the Romanian government to incre
ase awareness for the IT sector in Romania
and stimulate exports. The current markets
for the companies in the CLUJ IT cluster
are mainly USA, Germany, UK, Canada,
but also countries such as Austria, France,
Switzerland , Scandinavia , CEE, Japan,
China, Korea.
At the same time, innovation is seen
as a key factor for boosting exports. In
order to switch focus in software deve
lopment from outsourcing to building
innovative products, the cluster will aim to
initiate common projects based on existing
interests, conduct fundamental and appli
cative research to generate market oriented
products, and facilitate financing of R&D
projects, either by private investments or
public-private partnerships. The univer
sities will also have an important role in
leading the innovation process.
Other important aspects to consider
increasing the number of highly skil
led professionals
and building a vertical
integrated chain structure that would be
able to generate complex products.
To address the objective of increasing
the highly skilled workforce the focus will
be on improving the quality of the edu
cation to meet the industry’s demands
by stimulating curriculum change and
competition in education. The cluster will
work to identify and promote methods
through which the Romanian government
can support Universities in increasing
the quality of their programs, stimulating
internships programs and developing alter
native solutions, such as vocational studies.
The CLUJ IT Innovation City
is an
urban development project based on a
Brained City concept. The aim is to attract
international capital to stimulate the deve
lopment of innovative IT projects and
technologies, within a very creative work
environment, which will attract many IT
The CLUJ IT Innovation City
will con
sist in building offices, research labs and
education facilities, hotels and restaurants,
as well as in ensuring the services required
for operating such a business development
platform in the IT sector. The city is plan
ned to occupy 300 HA and reach a total
investment of 300 mil. EUR, with over
20.000 IT specialists in 20 years. The com
plementary services needed will generate
many jobs in the region, which in turn will
have a very positive social and economic
impact, contributing to a sustainable regio
nal development.
Echipa Cluj IT Cluster
nr. 9/2013 |
Cultural projects initiated by an IT company
If such a goal seems naive, maybe you
should know that the organization is not
made up of bohemian kids: the core mem
bers of the association consist of team
members from
Gemini Solutions.
to reconcile full-time work at a software
company designing and organizing cultu
ral projects? „It’s a common passion that
helps the cohesion of the group of pro
fessional engineers,” says Florin Pârlea,
general manager and president of Gemini
Solutions, CCIA Romania.
The first major project launched by
CCIA is the
Romanian Letters
(, a portal that
brings together external links with the one
Romanian subject in the foreground, be
it personality, special places or Romanian
’The purpose of Romanian Letters
is to show that our country isn’t better or
worse than any other, but only to cherish its
uniqueness. We want to rediscover Romania’

shows description on the project’s website.
In turn, Florin Pârlea says:
‘We must oppose
the decreasing of quality information that
the public gets from media, such as infor
mation about what’s cooking and what diet
Zavoranu Oana and Daniela Crudu are on’.
In the spirit of this ‘opposition’
CCIA star
ted a partnership with the Active Radio
eFeM, so that Romanian Letters became a
radio show. Every Tuesday night from 6pm
the association’s members are the host of
the Romanian Letters show, which aims
to promote Romania beyond stereotypes.
The show can be heard online (http://www.
drumsfor ¬ /) or on the
92.7 FM frequency (Bucharest).
The website with beau
tiful stories about Romania
is not the only CCIA pro
ject. Last year, many of the
key points of the telecultural
scene in Bucharest (
Atheneum, Romanian Academy,
Şutu Palace)
hosted exhibitions
with images of lesser-known sta
tues of ancient Roman Dacians
made by artists during the reign of Traian.
Exhibitions were organized under the
aegis of ‘
Statues of the Dacians’
, which
is another important project undertaken
by the association. Http://
website aims to bring public attention to
these statues, which are now in the muse
ums worldwide. The site designed by CCIA
brings together photographs and descrip
tions of these statues, and details about
where they are. The portal has been concei
ved in collaboration with historian Leonard
Velcescu, PhD in Art History at the École
pratique des Hautes Études (Sorbonne) and
the Nobel Prize ’Hurmuzachi Eudoxiu’ of
the Romanian Academy (December 2012).
CCIA’s activity has just started and the
team has big plans for 2013, including the
organization of a series of events to mark
the 1900 years anniversary since the inau
guration of Traian’s Column in Rome. ‘For
Gemini Solutions, social involvement is a
duty’, as Florin Pârlea says.
’The government
and ministries cannot do everything; the civil
society is also us, the private business
environment. If not us, then who?
Housewives, retirees? Obviously, it’s
our job.

‘Nothing in this world comes
down to stereotypes. Romania is not
the country of vampires.
No stray dogs, no beggars, no
Romania is confined neither to the
People’s House, nor to Nadia and Hagi,
polenta and stuffed cabbage.
We believe that Romania is a combi
nation of people and places, traditions and
food, wine and history. If you want, it’s a
combination of flavors.
Flavors that do not make us better or
worse than other people, but they certainly
make us unique.’
ontemporary Cultural Identity Association (CCIA)
was born in 2012, out of a desire to fight stereotypes associated with
Romania and to show that we live in a normal country. Moreover, „natural” is the concept that NGO members often invoke in
the discussions about the need for projects undertaken by them. Their approaches could be translated as an attempt to show
that Romania is not the ‚different’country, where ‚everything is possible’, but a ‚natural’ and normal one.
Ana Soviany
Projects coordinator
Florin Pârlea
General director
@ Gemini Solutions
nr. 9/2013 |
The Cluj IT History (IV)
IT Map
The first businesses in Cluj’s IT lan
dscape were mostly hardware resellers.
They answered both to a local market
need, the previous generations of IT pio
neers, but mostly to the personal computer
trend that swept the globe. Similar to the
hardware/software stacks, on top of this
initial hardware offering layer, telecommu
nication services started to develop
(ranging from improvised neighborhood
networks, to professional services), com
plete IT infrastructure solutions for the
business environment, software solutions
distribution and their customization, and
finally local software production, both out
sourcing and product based development.
Current efforts try to add another layer:
start-up scene.
Naturally, this stack of services was
joined by a similar trend of specialists deve
lopment that covered the human resources
demand. Starting from system adminis
trators, going through several iterations
of programmers and reaching the actual
generation of IT entrepreneurs. An impor
tant aspect is that the business environment
took over, a long time ago, the social effort
of training specialists. Ranging from sim
ple Internet-Cafe administrators, dedicated
trainings aimed at high-schoolers and uni
versity students, internal on-the-job or
trainer based sessions for employees, to the
multitude of specialists communities and
events, very active in the last few years. I
still remember the gap between our high-
school curricula: Pascal, C++ (in a few
lucky cases), FoxPro, and the Java courses
offered for high-schoolers by Recognos and
for college students by iQuest. These took
place twelve, fifteen years ago, and had a
fundamental role in raising the bar for the
locally produced specialists and inherently
the technical level of the projects they could
tackle. Other initiatives followed , but with
the explosive raise in numbers of the local
IT companies, an internal growth process
came into focus for each company and the
general education initiatives became stron
gly diluted. Only recently the entrepreneurs
community restarted the educational trend
and I wish them at least the success of their
The above trends can be easily visu
alized by comparing the number of
companies, the nature of their service
offering, the number and profile of their
employees and their clients, throughout
the years. Thus we reach the new article
name: “IT Map”. Out of a need to chrono
logically validate the above information, I
tried making a list of the local IT compa
nies, sorted by founding year, with a few
extra details about their activity: number
of employees, total revenue, profile, etc.
After a few searches through my memory,
followed by some on BestJobs, Aries,
Cluster IT, I’ve found one candidate for the
first successful IT company: NET Brinel
(founded in 1991). But things got compli
cated very fast, from the simple attempt of
classifying a sinuous evolution between
hardware and software of the first candi
date, to discovering the occupants of the
second and third position, the evolution of
IT in the nineties is already shaded by the
passing time.
As a result of this effort an old project of
mine, that was waiting for its proper time,
resurfaced: building an interactive, intelli
gent map that allows an exploration of the
local IT evolution. A very brief description:
the kind of visually rich application, easy
to use, with that WOW factor that makes
it an instant favorite. In the background
there would be an initial database, holding
the above information, and the front-end
would be filled with colored spots, anchored
on the map at the company’s headquarters
address, proportionally sized to reflect all
kinds of filtered metrics. Of course that the
Wow factor isn’t complete without a merry
animation of spots to show the ecosystem
evolving in time.
For starters, I’m asking our readers to
help executing the following plan:

finding an initial data source detai
led enough to raise an interest. For
example a list of IT companies from: The
Commerce and Industry Chamber of
Cluj, ANAF, or alternatives like BestJobs,
Aries, etc; populated with some details;

the development of a simple Google
Maps based application;

promoting and building a commu
nity capable of validating, updating and
enriching the data to allow for more
valuable information to be displayed;
I ask the community’s help, because the
map can only bring benefits, once it’s users
understand the direct relation between the
quantity/quality of the information they
can extract versus the one they add.
More precisely the usefulness increases
thorough a raise in valid and relevant data.
As always I close the article hoping that
we will receive your feedback and support.
The planned title of the current article was: “From education to personal development” and it built on the idea that the business
environment took the lead in moving IT forward in the post-communist period. In short, both access to hardware resources and spe
cialized training were transferred form the state to private companies.
Marius Mornea
Founder of Mintaka
Research platform
nr. 9/2013 |
Mobile World Congress - Barcelona 2013
What does it mean for Romanian companies?

What products or services will you pre
sent during Mobile World Congress 2013?
At MWC we will present
a cloud-based platform that facilitates the
development of native mobile applications,
cross-platform iOS & Android, and the
suite of management tools that are associa
ted with this product.
In terms of tool management we will
speak about:
Appscend’s mCMS
(mobile content
management system) – the informa
tion management system of mobile
Smart Push Notifications:
advanced targeting and management
platform sending notifications of native
Appscend App Analytics
: the system
of measuring the indicators’ performance
within mobile applications, similar to
Google Analytics web system.
Appscend Mobile Monetization:

the integration with the most popular
networks in mobile advertising and
pre-integration with the system in App
Purchases - Apple and in-app billing
- Android.
The year 2012 brought a number of
technical innovations to our platform,
which contributes to the full experience
of companies seeking a complete platform
to develop mobile strategy. The biggest
step forward was achieved through the
launch of a framework called
, the
only one in the world that provides PHP
programmers with the ability to develop
cross-platform mobile applications using
the most popular scripting language for
web technologies.
We now have over 3000 registered com
panies and over 2500 applications running.
The 300 Appscend platform apps already
reached 1 million users from all continents.
What do you expect from this event?
2. From MWC 2013 we have high
expectations. We have already scheduled
several meetings with strategic partners
and customers, and, like
every year, this is a very
good opportunity to inform
a selected audience about
what we do and how pro
ducts we make have a
fundamental contribution
to the success of companies
that want to embrace the
opportunity offered by the
mobile environment.
What products or services will you pre
sent during Mobile World Congress 2013?

development and testing of
mobile applications;

development of offshore and
nearshore software system;

hire staff

– a sales force auto
mation solution developed on the
Android platform
What do you expect from this event?
Firstly, AROBS representatives want
to know what the trends in the field are by
participating in communication sessions
and discussions with exhibitors and fair
The second objective is to identify
potential customers for our development
n February 25-28 the fifth edition of the GSMA Mobile World Congress took place in Barcelona. It is organized by the GSM
Association (GSMA), founded in 1995 and encompasses nearly 800 mobile operators in more than 200 countries. The event is
the largest in the industry of mobile devices and in this article we will present the expectations of three Romanian companies
participating in the event. These mini interviews were conducted using Business Days
11 | nr. 9/2013
and testing services for mobile applications,
namely software outsourcing for development and
testing of Web and cloud applications.
What products or services will you present
during Mobile World Congress 2013?
– a business platform available on iOS,
Android and BlackBerry;
– an integrated solution designed for
transportation and logistics having an important
mobile component;

mobile reporting
What products or services will you present
during Mobile World Congress 2013?
is present for the second year as
an exhibitor at the MWC 2013 and we primarily
aim to strengthen the partnerships we have deve
loped. Our
solutions, designed
primarily for the enterprise sector, registered a
significant increase in 2012 and we are confident
that this trend will continue in the following years.
This year we are presenting two new applicati
ons -
. IQroute was developed
from the need and specifications of some of our
partners and integrates all the necessary facilities
for transport and logistics companies, starting
with the server, database and the mobile compo
nent - used by drivers, supervisors and managers.
is a new concept in the region and has
been developed as a „mobile reporting” solution
when required, helps companies in accessing
and processing different information on mobile
Virtually, every company needs or will
need in the future
some information
from the internal
systems on mobile
e qui pme nt, a s
representatives of
companies operate
mobile and mostly
outside the office.
MobIO facilitates the easy and safe access to useful informa
tion from the internal systems of production, management and
accounting, logistics and transportation.
Codruța Nicolescu, EMBA
Executive Director
Ovidiu Măţan, PMP
Fondator & CEO
@Today Software Magazine
12 | nr. 9/2013
main challenge was their great public success and implicitly the
large number of participants (a challenge we wish upon all the local
events). Cluj IT Innovation Days was the closest thing to an aris
tocratic event for the local IT. Both the event organizing, but even
more the attendees: a mix of political figures, representatives of the
biggest local IT companies, invitees form other towns, university
professors and organizers of most large IT events, have joined in
creating a business atmosphere of the highest level. Standing proof
that the local ecosystem has reached a critical mass which allowed
the leap to a new level of collaboration in the community.
Transylvania Java User Group
Java technologies community.
Started on: 15.05.2008 / Members: 533 / Events: 41
TSM community
Community created around
Today Software Magazine
Started on: 06.02.2012 / Members: 520 / Events: 8
Romanian Testing Community
Community dedicated to QA.
Started on: 10.05.2011 / Members: 582 / Events: 1
GeekMeet Cluj
Community dedicated to web technologies.
Started on: 10.06.2006 / Members: 533 / Events: 16
Ruby community.
Started on: 25.08.2010 / Members: 133 / Events: 33
The Cluj Napoca Agile Software Meetup Group
Community dedicated to Agile development.
Started on: 04.10.2010 / Members: 297 / Events: 24
Cluj Semantic WEB Meetup
Community dedicated to semantic technologies.
Started on: 08.05.2010 / Members: 137/ Events: 21
Romanian Association for Better Software
Community dedicated to IT professionals with extensive experi
ence in any technology.
Started on: 10.02.2011 / Members: 208/ Events: 11
ut of last month’s events I’ll pick two, placed at opposing sides of the business development spectrum, but very much alike as
far as the atmosphere and quality of the participants. StartupWeekend is addressed at the ones just getting started in defining
and developing a business. This is why the atmosphere was rich in enthusiasm, supported by a healthy and polite compe
tition, just enough to build up the tension and joy of winning. Joined by a very large and involved team of mentors, the organizers
April 4
Launch of issue 10 of TSM magazine
April 4
Ruby in iOS: Introduction to RubyMotion
April 9
Jim Bagnola – Lead the Change, Cluj-Napoca
April 9
AgileWorks Remote Open Space
April 10
Facebook graph search
April 10
Functional Programming
April 26
Romanian Progress User Group
May 27
Windows Azure Bootcamp
May 16-17
Romanian Testing Community Conference 2013
May 23-24
ITCAMP 2013 - TSM reccomands it
Cluj-Napoca IT communities
13 | nr. 9/2013
Like any web developer, I prefer to
spend as little time on the UI, but at the
same time I would like the final product to
look great. For this we continually search
resources and tools to help me reach this
Some of the resources currently avai
lable which helps not only to achieving
a short while user friendly, modern and
adding value through the experience that
we have end-user use deliverables will be
presented in this article
UI Framework - Twitter Bootstrap
Twitter Bootstrap
is a framework for
designing HTML / CSS and Javascript by
encapsulation of functionality in jQuery.
Also, is a framework that has as main
task to provide the necessary elements to
achieve a finished product in a short time.
As open-source project initiated by the
development team at Twitter, caught fast in
the online community, with an exponen
tial trend in several directions. Thus, not
only reached version 2.2.x and is among
the most popular open-source projects on
GitHub, but also triggered the development
of third library libraries and extensions that
are designed to supplement and refine a
whole package of necessary resources aro
und this framework.
Among these resources can be

Templates Twitter Bootstrap (free or
commercial license)

New fonts

UI Elements and components

Other useful aesthetic elements
(arrows, graphic libraries for generating
templates, etc.)
Twitter Bootstrap also offers another
feature, which is not easily overlooked:
the great compatibility with most web
browsers, including Internet Explorer 7.
And the mobile devices are supported by
implementing a responsive CSS.
Regarding support for mobile devi
ces, Bootstrap Twitter can not replace a
framework exclusively for them, such as
jQuery Mobile, which is built and defi
ned as an optimized web framework for
smartphones and tablets, while Twitter
Bootstrap support they provide only by
creating responsive layouts depending on
the device you are accessing.
To the ongoing development of the
Twitter Bootstrap framework is pre-
processor LESS, mainly because the
code compilation speed (6 times faster
than Sass), and the elegance and use of
JavaScript. As a result, provides a developer
can adjust the design by defining / setting a
set of variables / parameters and recompi
ling LESS sources resulting in a new set of
style files (CSS).
LESS is not only CSS pre-processor
available in currently existing multiple pre-
processors pintre who stood out front end
Twitter Bootstrap
in Web Applications
like to define myself as a web developer, which means a person who performs web
application rather than a performing websites presentation, the latter being my opi
nion and responsibility of the implementation of a web designer. However, Web
applications have their web interface component, so for small teams or even „one man
show / freelancer”, it exists the necessity of help in making an interface to make the user
experience a pleasant one and ease of use and work for it to be as low as effort and time.
Ioan Bercea
Senior Web Developer
@ 3Pillar Global
nr. 9/2013 |
developers: LESS, Sass and SCSS. Their use
adds value to any frontend framework. But
their performance is similar, each seeking
to provide developers easily write quality
code, and develop a finished product.
The web browser is able to render CSS
styles only files, code written for these pre-
compiled pocesoare is generating a set of
CSS styles broswere interpreter.
These pre-processors have emerged as
a necessity following limitations involved
in using CSS styles (no variables, and ease
of reuse in multiple selections CSS styles).
Although at first glance, the use of
pre-processors could be considered as an
additional job in making an application
or website, one of the major advantages is
gaining time in development with cleaner
code (DRY = Do not Repeat Yourself), a
CSS file cleaner and easier to maintain
Templates for Twitter Boostrap
Following the success and popularity
gained by this framework html / css, web
communities have emerged with the sta
ted purpose of providing (free and / or
commercial) User Interface packs complete
and ready for built-in applications in vari
ous fields.
One of the most popular {wrap}
bootstrap provides templates by category:

Management and Dashboard

Presentations Pages

Pages Business and Corporate

Portfolio and Galleries

Besides this there are many other
commercial service that provides complete
templates under a free license, one of which
is Bootmetro, Metro Style style replica offe
red by the new Windows 8. (http://aozora.
jQuery in Twitter Bootstrap
jQuery has been integrated since the
first version, and with him a few plugins
that are commonly used: windows modal,
tabs, tool tip’s, carousel, and a few newer
items scroll spy, affix to add a touch of
novelty to any web page.
When using Twitter Bootstrap package,
along with the ability to build your own
package using preprocessor functions LESS
locally installed, you can use and custo
mize the package by defining the variables,
parameters and even plugins required
before downloading the package from the
web that the hosts. This can translate into
reduction package customization and end
user exposed, resulting in faster webpage
Or using jQuery library functionality
of plot:
Besides plugins provided by the team
of developers behind this package, there
are many sites that complement
the various extensions, the gra
phics of useful information, to
extend certain widgets classical
For integration, Twitter
Bootstrap offers 2 ways, one of
them is interesting because it
does not require knowledge of
JavaScript for use. This method
uses only HTML special attri
butes attached to existing tags
to trigger some Javascript functionality
<button type=”button”
Launch modal
The second method is based on
Javascript calls:
In the example in the following pic
ture, you can see: fixed top navigation with
drop down, groups of buttons, full calendar
widget, and DatePicker calendar.
A clean set with some widgets footprint
is offered and those of UX Fuel Controls.
Including the complete datagrid offered
by them is the one shown in the following
Fonts in Icon representation
Another trend is the use of a font in
representing icons for some action and
representation of auxiliary information.
One of these: FontAwesome is even defi
ned as an iconic font developed to be
used together with the Twitter Bootstrap
framework. But not the only, being com
plemented by several fonts in the same
An example is Socialico, which provi
des a set of icons representing characters
for the most popular social networks.
This is a new method type disclosure
icons that comes with many advantages
such as scalability representation without
loss of quality (as represented vector font),
15 | nr. 9/2013
a smaller footprint (smaller files), less work
and of course Photoshop to create / modify
CSS styles, but also some disadvantages: a
limitation on the number of icons available
in each font, and even a small problem for
SEO (google bot can not interpret the letter
„x” which is rendered for in web broswer
user as icon representing the action area).
Integration of these templates in a
completer PHP MVC Framework
Pachetul Twitter Bootstrap este inde
pendent de tehnologia server side folosită,
ceea ce îl face atractiv pentru web designeri
și dezvoltatori web, indiferent de limbajul
de programare utilizat.
Folosirea acestui pachet de UI, împre
una cu un framework de tip MVC avansat,
care pe lângă functionalitatea standard, și
un design arhitectural oferă si un generator
de module de tip CRUD (Create/Remove/
Update/Delete și altele dacă se intervine) ar
fi un caz complet de implementare de tip
Rapid Aplication Development (RAD) cu
rezultate și privind experiența userului.
In conclusion
Package „Twitter Bootstrap” presented
in this article is not the only one currently
available online. Another interesting pac
kage Foundation, reached version 3.2 and
the Zurb provided by the Foundation.
Again this is a UI framework built this time
using pre-processor Sass, but provides the
facility like Twitter Bootstrap.
All this is just a collection of resources
made dispoziţiedisponibila on several web
sites, but can be combined into a unified
form the final product. Burden is still on
the developer to use creative and analytical
sense to create a useful interface and easy
for the end user by combining resources.
nr. 9/2013 |
But, while a programmer unfamiliar
with the SAP environment will assume
that Eclipse is just “another IDE”, an ABAP
developer will immediately realize that
the transition to this new IDE is not one
that can be made straightaway. The rea
son is the fact that the ABAP development
process follows a different pattern than
the one normally encountered in projects
developed using the Eclipse platform. In
the following paragraphs we will analyze
these processes, the differences between
them and the way in which the integration
of ABAP in Eclipse has been designed.
Software development using Eclipse IDE
For starters we will take a look at the
way the typical software development pro
cess takes place when using an IDE such
as Eclipse. The analysis is conducted parti
cularly from the perspective of continuous
code integration and how it “affects” the
development process.
Fig. 1 The typical versioning and con
tinuous integration process when using an
IDE such as Eclipse
Usually in such cases the project is sto
red in a central repository, but, the actual
development is performed on the local
workstation. Each developer will have a
local copy of the project, and perform the
development using the locally installed
IDE, which provides a series of tools and
functionalities to this end. Once the deve
lopment has been finalized, the changes
can be transferred back into the repository.
By using this approach, a versioning of all
changes is implicitly performed, the issue
of concurrent access to the development
objects is solved and the project consis
tency is ensured through the periodic
builds performed in the central repository.
Software development based on the SAP
To underline the differences between
ABAP software development and the pro
cess outlined above, we will present some
of the main features related to SAP deve
lopment. Once these aspects have been
presented, a more precise eva
luation can be performed with
regard to the consequences of
switching to ABAP in Eclipse.
SAP system landscape and trans
port management
Typically in a SAP project we
are dealing with a “landscape”
of systems, each system having
a specific role, such as deve
l opment, QA, integration,
The development is only
performed on the development
ABAP in Eclipse
hile SAP’s reputation has been built around the business solutions which
the company is able to offer to its enterprise clients, the technical platform
supporting these solutions has not necessary been the center of attention.
However, the recent initiatives indicate that SAP wants to change this fact. Among these
initiatives is also the decision to migrate the classical ABAP development environment
from the standard SAP GUI interface to a more modern platform, namely Eclipse.
Figure 1 -
Versioning and continuos integra
tion process using an IDE like Eclipse
Victor Ionescu
SAP IT Consultant
@ .msg systems Romania
17 | nr. 9/2013
system, and every time the ABAP pro
grammer performs a change, it is recorded
in the system’s internal versioning register
and assigned to a “transport request”. This
request is basically a container whose role
is (among others) to group changes made
on the system which logically belong
together. Once the implementation is con
sidered to be complete, the request is used
to transport these changes from the deve
lopment system to the other systems of the
landscape, following certain predefined
transport routes
The server-side development paradigm
In the case of SAP projects, the deve
lopment itself does not take place by locally
editing the objects, but live on the ABAP
application server. This brings other issues
to be solved, such as:
Concurrent access to objects, an
issue solved by using pessimistic locks at
the level of every object.
Determining when a certain change
becomes active in the system. When
an object is edited, an inactive version
of it is created, version which contains
all the changes made on the object. For
the changes to take effect at runtime,
the object must be activated. Through
activation the ABAP application server
generates a new “runtime object” version
of the edited object.
ABAP Workbench
To facilitate the server-side develop
ment and editing of objects from the R/3
Repository, the ABAP application server
provides an integrated development envi
ronment: ABAP Workbench. It consists
of different tools, designed to support
the entire ABAP software development
lifecycle. The software development in
SAP would not have been possible without
these tools. Consequently any develop
ment environment which aims to replace
the ABAP workbench has to provide these
ABAP into Eclipse
The first attempts to migrate the
ABAP workbench to Eclipse have been
made about a decade ago. Ever since then
various companies have created plug-ins to
make ABAP development in Eclipse possi
ble, plug-ins which in the meantime have
achieved quite a high level of maturity.
Nevertheless, in this article we turn our
attention to the solution which, although
launched less than a year ago, will probably
become the de facto standard solution for
ABAP-Eclipse integration, because of the
fact that it is the official solution provided
by SAP itself
“ABAP Development Tools for SAP
Netweaver” (short: ADT) is the official
name under which the package which
makes ABAP development in Eclipse
possible is promoted. According to SAP,
the aim of ADT is increasing the ABAP
programmers` productivity by providing
a workplace which integrates the ABAP
workbench capabilities in a powerful and
modern environment based on the Eclipse
In order to have a powerful ABAP
development environment, it is necessary
to provide the tools which are normally
found in the ABAP Workbench through
the Eclipse platform too.
The question one might ask is: How has
the integration of ABAP in Eclipse been
designed in order to make this possible?
The short answer: Providing REST
vices through the ABAP application server
and consuming those services from the
Eclipse front-end.
To elaborate the answer – the ADT pac
kage consists of two components:
1 Definitia conceptului de servicii REST:
Figure 2 -
SAP System Landscape
Figure 3 -
Utilitarele care formează
Workbench-ul ABAP, allows to manipu
late objects from R/3 repository
nr. 9/2013 |

An extension of the Netweaver ABAP
application server, which allows the defi
nition of resources in the ABAP backend,
resources which can be identified and
addressed using a URI (unique resource
identifier). The application server publi
shes the resources at these addresses,
allowing REST clients to use them.

A series of Eclipse plug-ins designed
to use the REST services and thus cre
ate the interface between developer and
ABAP server.
If we were to make an analogy, we could
compare Eclipse with a web browser which
allows browsing through the object reposi
tory R/3, instead of web pages. In this way
the development paradigm remains server-
based: the objects are not stored locally, but
edited directly on the server by using the
REST services.
Functions commonly used in ABAP
development (“where-used list”, checking
& activating objects, transport manage
ment etc.) are performed by calling the
corresponding back-end services and dis
playing the result on the Eclipse interface
Considering the service oriented archi
tecture of ADT, which comes with a great
potential for enhancement and reuse, SAP
has decided to also provide a Software
Development Kit (SDK) for ADT to ABAP
developers. The SDK allows anyone to
create third-party tools which can further
improve the ABAP in Eclipse development
experience. Given the size of the Eclipse
community, it is expected that the ADT
SDK will significantly contribute to the
improvement and rapid maturing of the
ADT platform. A pilot project based on
ADT SDK has already been started, which
aims to integrate the SAPLink
into Eclipse.
If from a technical point of view, we
have determined that some innovative solu
tions have been designed in order to make
2 SAPLink is a tool that makes easier to distribu
ite ABAP applications, allows creation of packages containing
objects(“nuggets”), and import/export them into SAP system.
the integration of the ABAP Workbench
into Eclipse possible, in what follows we
will analyze the ABAP Development
Tools from the perspective of func
tionalities which are available in the
current release.
Connection to systems
The connection to a certain
ABAP application server is achie
ved by means of the Eclipse projects.
Each ABAP project in Eclipse is map
ped to a single system and internally
maintains the necessary connection
information. By using this approach it is
possible to simultaneously have connecti
ons from Eclipse to multiple SAP systems.
If within the ABAP workbench the code
editing is possible both in “source-code
based” and “form-based” mode, Eclipse
will no longer support the form-based
approach. SAP argues that studies in this
area have shown that “source-code based”
development using a powerful code editor
is more effective than editing the source
code “fragmented” in multiple forms.
Aside from this aspect, the power and
flexibility of Eclipse editor can only bring
benefits to ABAP programmers on the long
Functions & Tools
• Object checking and activation
are among the features which have been
fully integrated in Eclipse from the first
ADT version and which are working just
as well in Eclipse as they did in SAP GUI.
• Also, by using Eclipse, the user
will have simultaneous access to two inde
pendent versioning systems: the one from
the ABAP application server and the local
Eclipse version history.
• The transport management
feature also falls in the category of tools
completely ported to Eclipse is the:
ADT offers the whole range of functions
necessary for management of the transport
requests embedded directly in the Eclipse
• However, the same cannot be said
about other tools considered essential for
ABAP development. The utilities used for
editing Data Dictionary objects, screens
and other objects were not yet migrated to
the Eclipse interface. As a temporary mea
sure, and in an attempt to compensate for
this shortcoming, when a user whishes to
edit such objects, he will have the surprise
to see that the legacy tool, running in the
SAP GUI client, is started and displayed
embedded in an Eclipse tab.
According to SAP, some of these tools
will be integrated in future releases of ADT,
while for others currently new solutions are
evaluated, which better fit the long term
platform strategy devised by SAP.
One of the essential features missing
from the first ADT version was the pos
sibility to use the Eclipse debugger for
debugging of ABAP applications. However
by the end of 2012, together with a new ver
sion of ADT (2.0) an upgrade for the SAP
Kernel(v.7.21) was released, which among
others enables the integration of the native
Eclipse debugger with the ABAP applica
tion server.
Although ABAP developers might
currently still be reluctant regarding the
“migration” from the ABAP Workbench to
ABAP in Eclipse( and this is justified con
sidering the gaps that the latter currently
still has ), it is expected that in the future,
along with the maturation of the product,
the balance of power will shift toward ADT.
SAP has made its intention public to
stop investing in the further enhance
ment of the ABAP Workbench, and even
more than that – to encourage the switch
to Eclipse by offering certain functionali
ties exclusively through ADT. An example
in this direction is SAP HANA Studio, the
collection of tools used for managing the
SAP HANA in-memory database, intended
to be used mainly in Eclipse.
Considering all these factors, one might
come to the conclusion that the switch of
the ABAP developers to Eclipse is not as
much an uncertainty, but rather a matter
of time.
ABAP in Eclipse
Figura 4
Arhitectura ADT
Figura 5
Aplicație SAP GUI inte
grată într-un tab Eclipse
19 | nr. 9/2013
In essence, GWT is a toolkit that allows
creating complex web applications with
minimal knowledge of HTML / JavaScript.
This is possible because the GWT compiler
translates Java code into HTML / JS. For
example, creating a button in GWT can be
done using the below code:
Button button = new Button(“Click here”).
The above Java code sequence will be
translated into:
<input type=”button” value=” Click here” />.
GWT includes out of the box compo
nents that can be extended and customized
according to your needs.
It also provides a history management
framework, using the ‚back’ button of your
browser. This mechanism is very useful
because without it, the button causes the
user to exit the application when he actu
ally wants to return to the previous action
inside the application.
Another great advantage of GWT is
that it provides support for standard Java
debugging. More specifically, the applica
tion runs in a web browser as JavaScript,
but in our Java code we can inspect the
value, use breakpoints just like the applica
tion would be executed in Java.
The promise Google makes with GWT
is similar to the promise Sun made with
Java. (Write once, run anywhere). Thus,
if Java promises independence from the
platform a program is running on, GWT
promises independence from the browser
on which a web application runs.
Finally, common JavaScript errors such
as incompatibility of types or typing errors
are detected by the compiler by default
because the code is written in Java.
GWT and web technologies
GWT and JavaScript
When using GWT we have to adopt a
write model - compile – run cycle deve
lopment. This slows down the speed of
implementation of a product compared to
JavaScript, where results are visible imme
diately after the code is written.
The good news is that the people at
Google have thought about it, so in GWT
there is a way to run the application called
DEVMODE, in which the code written in
Java is translated into JavaScript at runtime
line by line. Therefore, always the latest
written application code is running, which
means you can make changes in the code
and reload the page in the browser and the
changes made are visible.
If it is necessary, we can write JavaScript
code that will not be changed by the com
piler. For this, java native methods are
declared and JavaScript code is written in
a comment below:
public static native String
getNativeLocationURL() /*-{
var currentURL = $
return currentURL;
Even if most available GWT compo
nents have a good look in terms of visual
appearance, we often want to change the
Google Web Toolkit – Overview
he present article is an introduction for those who haven’t yet worked with
Google Web Toolkit (GWT) and also a source of interesting information about
GWT for those who are familiar with this toolkit.
Alex Luca
Senior Developer
@ HP
nr. 9/2013 |
look of the web application. In this case
CSS knowledge is required. Of course
you can also use CSS libraries to get to a
satisfactory result faster.
GWT provides support for editing
the CSS class of an element at runtime.
For example, for the button defined in the
article’s introduction we apply a CSS class
very easily, using setStyleName:
There is also support for adding or
removing class names.
Working with GWT does not mean
that we are constrained to a specific set of
Web components. In the end all generated
code will be HTML and therefore there is
support for pure HTML components.
It is also not mandatory for an appli
cation to be entirely written in GWT: you
may place just a GWT component on a web
page, and the rest of the page can remain
Also, GWT provides direct support for
HTML5 elements. For example, to check if
HTML5 video tag is supported in the cur
rent browser (in which the application is
opened), you can simply call
A GWT project’s structure
A project that uses GWT is composed
of three main packages: Client, Shared and
The code from packages Client and
Shared will be translated by the GWT com
piler in HTML and JavaScript code. For
this reason, code from these two packages
is limited to a subset of classes from Java,
called the JRE Emulation Library. Code
from the Server package is purely Java code
and can use all the available classes.
Broadly, in the Client package lays code
that describes the graphical interface. From
this package we cannot use classes defined
in the Server package directly.
In the Shared package we have data
transfer objects, which are used to transfer
information between our web application
and the server. Classes in this package can
be accessed and by code from Server and
by code from Client. They are seen as Java
classes by the code on Server but, in same
time, are translated in JavaScript by the
compiler, for their use in the code from
Client package.
In the Server package there are classes
which ensure data loading from other
sources: databases, integrations with other
products, etc. These can even be missing
completely, in which case the web appli
cation generated by the compiler can be
installed on any web server, even without
Java support. In this situation we are talking
about an application that not require data
persistence (ex: an online calculator or an
application that manages its data using web
In order from the Client code to call
Server code, it creates Asynchronous calls.
For example, for a method myMethod,
from a service myService, the call mySer
vice.myMethod will execute instantly
and after a certain period of time the
method onFailure or onSuccess from
AsyncCallback will be executed.
(myParam1, myParam2, new
AsyncCallback<ResultType>() {
public void onFailure(Throwable caught) {
public void onSuccess(ResultType re
sult) {
Where and how GWT is used
GWT is used by some Google products
and many large companies both public and
especially in the private sector. Many appli
cations written in GWT are not public and
are used inside organizations.
As apps written in GWT we can men
tion: Google AdWords, Google Flight,
Google Web Fonts, Speed Tracer extension
of the Chrome browser, desktop version of
the game Angry Birds, Google Groups and
the administration interface of Blogger.

Efforts made by Google programmers
in their spare time, to port Quake2 in GWT
are noteworthy. Specifically they used an
existing Java port of the game, and with
GWT managed to run it as a web applica
tion. To operate multi-player mode they
used in HTML5 WebSockets
Frameworks based on GWT
GWT is the basis of many useful
GXT from Sencha is a comprehensive
library of graphical components that can
be used in a web application. It provides
support for loading large data sets using
client-side or server-side paging and other
Vaadin is a framework for developing
RIAs (Rich Internet Applications), which
focuses more on the server side. More spe
cifically, using standard GWT is possible
that a click on a button does not generate a
call to the server, but updates another ele
ment to or changes the layout. In Vaadin,
any action carried by the user will send a
call to the server to determine what effect
that action will have.
PlayN, a framework for developing
games that run on multiple platforms (Java,
Flash, Android, iOS, Web), is using GWT
for implementing the web version of the
Finally, mGWT is a library for GWT to
create web applications for mobile devices
GWT Community
Since its launch in 2006 until GWT last
year, Google was the main decision maker
regarding the future of this project and the
main contributor to the source code. Other
companies that improved or developed
components for GWT did not have a way
to contribute to the code.
Last year Google decided to set up the
GWT Steering Committee. Member of
this committee are persons belonging to
companies as Vaadin, Sencha, RedHat and
mGWT. The role of this committee is to
ensure the continuity of the project and
contribute to the improvement of its code.
The Future
Vaadin created a report called „The
Future of GWT” based on a survey answe
red by approximately 1300 companies
on how GWT is used within their orga
nization. 80% of GWT applications are
developed for the business segment and 1%
are games. More than 36% of applications
provide support for tablets and over 25%
for mobile phones.
As satisfaction is concerned, 49% of
respondents are dissatisfied because of the
compilation time, 34% because of the small
number of components available from
Google and 27% because of the refresh
time of the application when it runs in
On the other hand, 60% are satisfied
with the fact that you do not have to write
a single line of JavaScript, 25% due to the
speed of the application at runtime (when
deployed for end users), and 15% of the
ability to quickly find and fix defects . Most
importantly, 89% of respondents would use
Google Web Toolkit – Overview
21 | nr. 9/2013
GWT in a project in the future.
Using GWT, a company can move quite quickly from an appli
cation that uses the standard Java libraries (Swing, AWT) to build
the user interface, to develop a web application while using exis
ting Java programming knowledge to structure the application in
an efficient manner.
nr. 9/2013 |
A well-known paradigm says that we
can manage what we can measure. The
myth that certain things cannot be mea
sured is already outdated. If one thing or
one aspect of our life turns out to be really
important for us, and we need to know it
and understand it better, we can find ways
to measure it.
There is a tendency to avoid using
measurements in the organization as it is
assumed they are not accurate. It is impor
tant to understand the difference between
counting and measurement. By counting
we determine the exact number or value
of an indicator (hours worked, billable
hours, Facebook fans, defects), while mea
surement can be defined as a quantitatively
expressed reduction of uncertainty, based
on one or more observations. So, no mat
ter how fuzzy or inaccurate a measurement
is, it is still valuable if it tells us more than
what we knew before.
In business we need to be prepared to
make decisions under uncertainty. When
it comes to decisions with big impact, the
bigger the uncertainty, the more valuable
its reduction. Measurements don’t need to
be precise, therefore, in the context of mea
surements we refer to confidence intervals,
numbers in ranges, thresholds, trends, and
not necessarily to exact numbers. In order
to reduce uncertainty sufficiently, most of
the time we do not need that much amount
of data. We’ll be surprised how much we
can learn from a small amount of data that
is understood and correctly used.
In today’s software industry, where
dynamism, adaptability to change and
competitiveness are the key words, mea
surements have become a necessary and
important process in the organizations.
Using “gut feeling” or intuition to make
decisions regarding development oppor
tunities for the company is no longer
sufficient to support its growth objectives.
We need to know how to manage workload,
resources and decide what to do, how to do
it and when to act, without walking in the
darkness of uncertainties and assumptions.
Before deciding to implement a metrics
system in an organization, it is important to
have a clear picture of the company’s capa
bilities, its business objectives and strategy
on medium and long term. If the organiza
tion does not plan ahead for what it wants
to achieve in the future and what it needs to
know, the metrics and data collected is not
likely to meet its needs. A metrics system
is a long term investment that will prove
its real value after collecting a first set of
data, which, when successfully collected,
will help to review objectives, to determine
the next set of metrics to be defined and
implemented. The measurement process
should be understood as a continuous
cycle of measurement, review, setting goals,
refining and defining new metrics.
An effective solution for defining and
implementing a measurement process in
the organization involves two approaches:
Top-down approach, when the mea
surement needs are defined by the top
he current article is mainly addressed to managers and executives and describes
the approaches, factors and pre-requisites to be considered when implementing a
measurements process in an organization. Ideas and recommendations outlined
in the article are drawn from the experience and practices of an IT company whose focus
is continuous improvement.
Implementing a successful metrics
system in an IT company
Ramona Muntean
Measurements & Best Practices
23 | nr. 9/2013
management based on the company’s
business objectives, high level targets and
its performance indicators;
Bottom-up approach, when the mea
surement needs are defined at project
level, based on project specific goals and
A measurement process is implemen
ted successfully when the measurement
needs collected from the two approaches
meet and complement each other, and
metrics provide useful and meaningful
information for all levels of the organiza
tion, their value being recognized both by
executives, managers and employees.
goals and targets
First aspects to be considered when we
implement a metrics system using the top-
down approach are the business objectives
of the company. These should be defined
and communicated within the organiza
tion as SMART objectives and expressed in
terms and indicators that are easily under
stood and can be further translated in KPI’s
which in turn can be used as reference at
project level, such as: profit margin, busi
ness growth rate, customer satisfaction,
personnel turnover and so on.
The challenge comes when setting and
communicating a company’s targets related
to quality. Getting a certification to attest
that certain standards and quality assu
rance practices are implemented can be
considered as an objective of the company,
but how can it be translated into KPIs? By
controlling the projects’ compliance against
the stated standards and by setting a cer
tain level of conformity to certify that the
projects are compliant to these standards?
Such an approach would certainly not be
the best option. People need to understand
the company’s vision on quality and believe
in it, not feeling “forced” to be compliant
with something that they cannot really
understand. Quality should not be limited
to a certificate hanged on the wall. It needs
to be perceived as part of the organization’s
DNA, its culture and maturity. Quality stays
in the improvement mindset of its people.
Standards, processes, policies are only tools
to support such culture and mentality.
It is important to reach this level of
quality awareness and a maturity mindset
in the organization before implementing a
measurement process. Without this matu
rity, the collected metrics will not be seen at
their real value and will not be recognized
as a tool for improvement and learning. In
addition, a set of work processes and stan
dards need also to be in place, roles and
responsibilities need to be clearly defined
and understood. A Quality Management
System, including both Quality Assurance
and Quality Control should be in place and
its contribution should be recognized as
real support, and not as a “control tower”
that directs and requests certain standards.
This assumes that Quality Assurance team
is working close to the project teams, pro
viding support and guidance at every stage
of the project, tailoring the standard pro
cesses according to the project’s specifics,
coming up with recommendations for best
practices. Meanwhile, Quality Control is
focusing on all of the verification and vali
dation activities, such as review and testing
during the development cycle.
Considering all the aspects mentioned
above, we should take into account several
pre-requisites that are necessary for imple
menting an effective measurement process,

proper tooling or systems for
time registration for different types of

applications for tracking progress
on tasks (e.g. Jira/TFS), applications for
code reviews (Crucible/Team Review);

specific configuration standards for
these systems and applications together
with “How to use” recommendations;

discipline on accurately recording
data in these systems and applications;

qualified, skilled and trained persons
for the collection and analysis of metrics;

specific trainings and knowledge
transfer sessions (KTS) on measure
ments related topics;

company databases and repository
for templates, best practices, lessons
Measurement as a concept needs to be
properly understood and responsibility for
defining, implementing and managing the
process of measurement should be assigned
to specialists in this field. Measurement
nr. 9/2013 |
Specialists are able to change a complex
perspective into a simple one and translate
a non-specific goal into a set of measura
ble dimensions. By exploring the facts in
detail, they are able to present alternative
approaches that make quantitative evalua
tion possible, clear and highly meaningful.
They are also aware of the considerations
according to which certain dimensions
should not be measured (e.g. cost effecti
veness reasons when the effort to measure
is higher than the benefit of the measure
ment, or sometimes purely ethical reasons).
Measurement specialists, as part of
the Quality Assurance team, will be the
ones responsible to identify the company’s
measurements needs, to define the measu
rements process, standards, guidelines and
methods to be used for metrics collection
and analysis.
Considering the company goals,
Measurement specialists together with
the QA Manager and executive team are

the list of the metrics needed to
determine the progress on the objectives
and to identify trends,

the collection procedures for data
that supports the measurements,

the analyzing and reporting procedu
res and schedules,

the criteria to be used in assessing
which projects are relevant to be con
sidered in scope for the measurement
process. These criteria will consider the
company’s specific business, types of
projects, development strategy and can
include for analysis: the project’s size
and duration, the project’s relevance
for the company’s future development,
the possibility to customize and adapt
the systems being used for metrics col
lection, the innovation degree of the
project, etc.
These being defined and agreed with
the top management, the responsibility
of the Measurement specialists together
with the QA team is to manage the imple
mentation of the process in a planned and
organized manner. It is important that
the management and development staff
are involved at the appropriate times, and
that the Measurement specialist ensures
that metrics are collected uniformly and
consistently, that they are meaningful and
useful to all levels of the organization and
that they determine whether the goals and
objectives are progressing as planned or if
they need adjustments
performance indicators
When the development of a project
starts, a member of the Quality Assurance
team is there to guide the project manager
to set the processes and standards to be
used (selected from company processes
library), to tailor and adapt them to the
specific needs of the project. This is the
moment, when based on the criteria defi
ned in the top-down approach, to assess
and decide whether the project falls within
the category that is relevant for the use of
standard measurements process or not.
In the start-up phase of the project, the
Measurements specialist together with the
Quality Assurance team member who has
been assigned to the project will guide the
project manager and the team in setting
the project’s performance objectives, iden
tifying appropriate metrics to be collected
and the way they can be analyzed to moni
tor the progress on the objectives.
An efficient way to guide and help the
team identifying the project’s performance
objectives is asking questions like:

Which are the key aspects that
will best characterize your project

What factors impact your project’s
quality in a significant way?

How do you know that the custo
mer will be happy with the product you

If the company would have a histori
cal metrics repository which information
would you like to know?
Most of the time the answers recei
ved will refer to: “deliver on time”, “deliver
within budget”, “no defects found by custo
mer”, “as little as possible re-work”, “a better
expertize of the development team”, “better
capacity and capabilities of the testing
team”, ”distribution of effort per different
type of activities” and so on. Sometimes it
is useful to provide examples of common
metrics to help the team identify its perfor
mance indicators.
The table below presents examples of
project’s performance indicators, metrics
to be collected and analyzed.
Once the projects’ performance objec
tives are identified and agreed with the
team, the next step is to define metrics
(data) to be collected and the collection
frequency. When the company’s metrics
repository already has historical data from
similar projects, it should be discussed how
it can be used in the context of the current
Using this approach, the project team
members will identify by themselves the
indicators and metrics that define the per
formance of the project they work for. In
this way, they will be able to refer to a set
of clear goals and will work to achieve a
specific level of performance, will under
stand where the line between poor quality
and good quality is and this is also a highly
motivating factor for the teams.
Once the metrics to be collected are
Performance Indicators
Metrics (data) to be collected
Measurements analysis at project level
Project effort
# hours planned (per iteration)
# hours spent (per iteration)
Estimation deviation per iteration
Estimation deviation overall
story points (SP)
function points (FP)
velocity (SP/sprint)
hours needed to develop a Function Point
Defects Detection Rate (DDR)
(defects found prior to delivery divided by
total defects found)
#defects found in reviews
#defects found by testing team
#defects found by customer after delivery
DDR Review per iteration and trends
DDR Testing per iteration and trends
DDR Customer per iteration and trends
Cost of Non-Conformities
#hours spent on re-work after review
#hours spent on fixing defects
#hours spent on re-testing
Re-work trends during iterations
% of re-work from project total
Implementing a successful metrics system in an IT company
25 | nr. 9/2013
identified and defined in the project con
text, the Measurement specialist can
present to the team the metrics defined in
the top-down approach and check which
one of them have already been included in
their project’s metrics. Most of the times
the metrics defined by the project teams
will include a good proportion from the
metrics defined at the organization level. If
there are metrics that have not been identi
fied yet by the team, and the Measurement
specialist considers them relevant, their
usefulness and the possibility that they are
collected will have to be discussed. Using
this approach we avoid demotivation by
imposing the collection of some metrics
defined by the top management whose uti
lity may not be understood by the team.
Metrics that are to be collected in the
project need to be correctly and clearly
understood by everyone in the team, so that
later on they can be analyzed and aggrega
ted. Even though their definition may seem
obvious, it is amazing how many different
interpretations can occur. For example, if
one of the performance indicators refers to
productivity expressed in function points,
we’ll need to analyze hours/function point
at different stages of the project. We will
use these values as reference for other pro
jects or for benchmarking our company’s
productivity against industry values. In
this case it is very important to use the
same standards in counting and analyzing
the Function Points and when referring to
effort (hours) it has to be clearly defined
what activities are considered in the calcu
lation (e.g. requirements analysis, design,
coding, and so on).
The responsibility for recording and
collecting the metrics will be assigned to
project team members or to specialists,
according with the specific of the metric.
It is important that those responsible
understand the need and usefulness of the
metrics and are properly trained in stan
dards, practices and tools that are specific
to each metric.
Metric collection systems can use the
existing data collection systems that the
company has already in place (time regis
tration, JIRA/TFS, Crucible/Team Review).
It is important to define standards and gui
delines on “How to use” these systems in
order to ensure a uniform way of recording
data and collecting the metrics.
Once the metrics system is in place at
project level, it is important to ensure that
the indicators that are measured are then
analyzed and they really matter to the suc
cess of the project. Measurement specialist
may participate from time to time in the
team’s retrospective meetings to see how
the data collected is analyzed and used to
improve team productivity, quality and to
increase customer satisfaction.
Measurement specialist will regularly
meet the project manager and team lea
der to analyze the accuracy of the metrics
collected, to discuss trends, to identify
thresholds, to evaluate the metrics’ added
value for the project and to determine
whether there are other needs identified,
or if there are difficulties in collecting and
analyzing metrics.
The effort involved in the collection of
metrics at project level (time spent, invest
ment in training and tooling) should be
evaluated not only from the project’s cost
perspective but also from the perspec
tive of the additional value they bring to
the organization. Some metrics will be
used exclusively for the project (e.g. pro
ductivity, when referring to Story points)
while others can be also used at company
level (e.g. productivity, when referring to
Function Points). It is the Measurement
specialist’s job to ensure that project
metrics that bring added value at com
pany level are selected and stored in the
organization’s metrics repository.
Are all these practices sufficient?
When a metrics system is in place
for a longer period of time (over a year),
consistent historical data are available
in the company’s metrics repository. At
this stage, and further on, metrics values
can be analyzed in correlation with other
metrics, trends, and thresholds values can
be identified. This information is very
valuable to the company and may be pre
sented in charts, dashboards using Excel
functionality or, if possible, using Business
Intelligence applications. This information
must be available to each relevant stakehol
der, being used in decision making at any
level for better estimating pre-sales pro
jects and increasing competitiveness in the
market, for better allocation of resources in
the projects, for challenging project teams
to set more ambitious objectives, learning
from the past and continuously improving.
This might seem the point where one
can say a successful metrics system is in
place, but can we consider that these are
all sufficient? An agile company with a
continuous improvement mindset will not
stop here. To compete successfully in an
ever-changing, fast-moving and compe
titive industry requires efficiency, a more
productive way of working and a high level
of quality for the products being delivered.
The measurement process and stan
dards require continuous refinement, in
line with the specific objectives of the
organization and the projects it develops.
As new metrics are made available to
the company repository, they need to be
analyzed and weighed against the business
objectives and market positioning. As the
measurement capability and expertise of
the company develops and improves, more
efficient and intelligent tools can be imple
mented and used as support in metrics
collection and analysis.
A company which continuously moni
tor and effectively manages its metrics
system will find this to be a unique source
of competitive advantage.

nr. 9/2013 |
Restricted TLDs
One of the most controversial TLD is
.edu. This is one of the first seven TLDs and
was created in 1985 in order to be used by
educational institutions around the world.
There were people who for
personal or commercial use. Since 2001
purchase of these domains was restricted.
It can only be purchased by post-secon
dary level educational institutions in the
United States. All domains owned by other
entities at that moment could be kept. Thus
after 2001 it began a link hunt from .edu
domains which is said to have more weight
in SEO.
Other restricted TLDs are: .mil (used
by U.S. military sites) .aero (used only by
organizations related to aeronautics) or
.gov (U.S. government agencies).
As mentioned previously restric
ted domains generated over time a lot of
discussion about how they are seen by
search engines. Many people say that these
domains are privileged and have a higher
rank because they are restricted and their
content is in a high proportion of quality.
This is not entirely true. Much of the high
rank is coming from other sites. For exam
ple, has over 50 million
links, a figure that can’t be matched by
many sites.
Regional TLD vs. global TLD
Choosing between a regional domain
(.ro) and a global (.com) is very simple. If
through your website you want to target
mainly Individuals in Romania,
Regional domain will perform better than
global ones in local search.
An experiment conducted by SEOMoz.
com show that all TLDs are approxima
tely equal which has a small
advantage on search engines. If we count
the fact that in the last two years this TLD
had a sustained increase, reaching second
place in the overall ranking, we can under
stand why some people are thinking about
purchasing a .net TLD and permanent
redirecting it to their main domain.
Nr. domenii
Tabelul 1 : Top 5 TLD active
With or without hyphen?
In the early 2000s was common to have
a domain which contained several dashes
(eg. After a
few years, people have realized that sim
ple domains without hyphens or numbers
are remembered more easily. Without
these characters the probability of visi
tors to type the name wrong was low. Ben
Milleare made a few months ago, an experi
ment whichconfirms that domain without
hyphens performs better in SERPS. Search
engines see hyphens as negative signals.
he purpose of this article is to assist those who wish to buy a web domain, giving
them useful information to find the perfect name. Choosing a domain name is
one of the important steps in creating an online presence. At this point it is beco
ming increasingly difficult to find domain which are free and match your expectations.
The domain name has an important role when people discover, manage to remember,
thinking or talking about a website. Imagination and some strategies presented in this
article also contributed to finding a good domain name
In search of the perfect domain
Radu Popescu
QA and Web designer
@ Small Footprint
27 | nr. 9/2013
Domain name length
Often domain names become brands and this propels busine
sses very much. It is generally recommended to choose short and
catchy domain names that can turn into brands. However, depen
ding on the type of site, you can opt for an EMD (Exact Match
Domain). This type of domain is based on some keywords called
Long Tail Keywords (eg „Toshiba U300 laptop”), which is targeting
a certain product or service (directly). Before Google launched
the EMD update (September 2012), ToshibaU300Laptop.comdo
main appeared in SERPS among the top SEO results without too
much effort. Currently they have lost this advantage and are seen
just like all other domains.
Be careful with “misspelled” domain names

Although these domain names seem like a good choice
when you want to create a brand, it can be a mistake to regis
ter one. The best example is photo-sharing website.
Approximately 3.6 million visitors per year visited
by mistake. Yahoo needed to get that domain and to redirect it Its owners have refused the offer of $ 600,000 for
it and followed several lawsuits. Only in 2010 was transferred
to Yahoo after two years of negotiations.

Other things you need to consider when choosing a web
domain are:

Between singular and plural domain names choosethe one
that sounds better and is easier to remember;

Avoid domains that may create copyright issues;

You can use acronyms or jargon of the industry which
includes site;

Avoid number 0 because it can be easily confused with the
letter O;
Below I have created a short list of useful resources and tools
to choose and purchase a domain name:
allows you to search for domains compo
sed with subdomains and folders. For example, if I would like to
create a new personal website, I write my name „popescuradu”
and will receive a list of composed domains:
(cu - Cuba), u (sc - Seychelles) http://radu
- (es - Spain), (pe - Peru).
generates a list of domains composed
from a keyword you entered. You have the option to exclude
domains with hyphen or use the keyword in the beginning or end
of the string.

is the website of the National Institute for Research
and Development in Informatics through which you can buy .ro
domains. This institution deals and manages this TLD. It offers
you the possibility to change online name servers for hosting too.

is the website of the nonprofit organization dea
ling with management of the Top Level Domains. Here you can
find information about web domains and new TLD launches us.
contains a search tool fordropped
domains. In general, companies that gone bankrupt or out of
businesses don’t pay the periodic fee for their domains which
became fee again. Sometimes you find treasures with this tool.
nr. 9/2013 |
Design adaptiv –
a fad or necessity
You are probably wondering why it is
necessary to use this approach instead of
carrying out strict applications targeted to
a specific device. Basically, according to the
budget, needs and the complexity level, one
of the solutions will be chosen.
Before making a web project with an
adaptive design we must take into account
the several key elements:
A flexible scheme
A grid-shaped flexible scheme can help
you to structure your information better
displayed on the screen. These columns
help to position and guide the content
on the page depending on the device it is
displayed on. Of course, the grid may be
greatly simplified using only two main
columns, one for menu and the other for
.main {
margin-left: 20px;
.sidebar {
width: 200px;
float: left;
Adaptive Media Elements
Media elements may represent images
used in the projects, video or audio players.
For example, the images can be adapted to
the size of the container, and this implies
that the images have the length set in
img {
width: 100%;
When we talk about adaptive design,
we must take into account the perfor
mance. Images used are optimized for an
optimal viewing on phones. One of the
„tricks” to perform this optimization is the
use of javascript to manipulate the image
source attribute („src”) and to replace the
image depending on the size of the window.
Another method is to use a server-side
solution provided by http://adaptive-ima
- /. This method is particularly easy
to use. All you need is to modify the. htac
cess file, adaptive-images.php and enter
a single line of javascript in the <head>
beginning of the site.
Media queries
CSS3 gives us the opportunity to
hat exactly is adaptive design? The answer lies just in the title, namely: it is
a design that fits and looks great on any phone, tablet, computer or even
smart TVs.
Bogdan Nastasa
UX/UI Design Lead
@ Endava
29 | nr. 9/2013
identify and determine the size of the
screen, so you can change the properties
of elements based on what you need.
@media screen and (max-device-
width: 480px){
.main {
width: 100%;
.sidebar {
width: 100%;
float: none;
Fortunately, the available frameworks
that can help us to realize these adaptive
projects are available, without being for
ced to start from scratch; among them we
can find Twitter Bootstrap (http://twitter. / index.html)
What does this framework offer?
A fluid grid system on 12 columns.
This means that it uses percentages
instead of fixed size. Of course, the grid
has the features of an adaptive design.
Content predefined layouts that may
contain columns adaptable to the screen
or fixed.
Support for adaptive design with
a set of predefined queries to cover all
/* Large Monitors */
@media (min-width: 1200px) { ...
/* Tablets in portrait or land
scape */
@media (min-width: 768px)and
(max-width: 979px) { ... }
/* From mobiles in landscape to
tablets in portrait */
@media (max-width: 767px) {
... }
/* Mobile in landscape or with
smaller size */
@media (max-width: 480px) {
... }
Styles for various components:
JavaScript functions available for:
carousel pictures
Lodges alert.
For a complete list and examples, see
In conclusion, it is quite easy to realize
an adaptive web project on the size of the
screen devices.
Let us see now what the
advantages are:

1. The projects provide a good
experience for the user, being
a consistent project from the
point of view of style and con
tent on all displayed versions.
2. Best optimization for search engi
nes. (external references to only one
address and not to multiple ones, e.g. www.,,
3. It works on all devices, regardless
of the operating system being used (for
example iOS, Android, Windows)
4. A shorter time allocated for one
project instead of several projects with the
same functionality. This of course implies
much lower costs for the project owner.
5. Reduced maintenance time of the
site content, rather than synchronizing the
nr. 9/2013 |
Design adaptiv – a fad or necessity
content on two / three versions of the site.
6. Updating content / style / flow is will
be just for one project.
But besides all these advantages there
are of course some disadvantages:
1. Some resources can be unnecessarily
loaded for mobile version, when referring
to javascript, styles and images. All this
implies a longer time for the page to load.
2. The effort spent on compatibility
between versions of browsers.
3. The interactions are different from
the touchscreens to site control from a per
sonal computer with a mouse / keyboard.
Excellent! Now we know that three
essential steps we need to follow and we
know how a website with an adaptive
design will look. But is this all? Although
we have an adaptive site, it does not mean
that we have a tailored solution for phones
or tablets.
In order to achieve a reliable solution
that is versatile for most mobile devices,
we must take into account the following
A project with good ergonomics can
provide a number of benefits. A graphical
interface must be intuitive, making easier
the decisions which a user should take.
For mobile phones, scrolling down
information can become an ordeal.
Therefore, it is important that the displa
yed information to be conditioned by the
screen size.
Small facilities HTML5 can offer do
make a difference and create an extraor
dinary experience for a user. For example:
- the field that has this attri
bute will automatically be selected when
loading the page.
- the field will be interpreted
by modern browsers as a mailbox and,
together with the attribute „required” an
email validation will be made.

type=”email” name=”email”

- in editing, modern browsers
will display only the numeric keypad
-when changing the box,
modern browsers will display a calendar

- attribute list together the item
„datalist” will display a selection of relevant
words entered in the field.

<input type=”text” name=”person”
<datalist id=”catalog”>
value=”Bogdan Nastasa”>
<option value=”Bob
<option value=”Ben
value=”Bernadette Pe
<option value=”Halle
We presented above only a few of
HTML5 facilities. A complete list of
components can be found at: http://html
Performance and Optimization
Applications whose load time is redu
ced will get a better mark for SEO. Also, it
is important that the content display may
be one as relevant and adapted as possible
for the user.
In conclusion, an application with an
adaptive design is a recommended solution
for any web application, but we must take
into account all aspects to be implemented
to achieve a complete appara
tus, adapted for conglomerates
around us.
31 | nr. 9/2013

How everything started
The open-source community in one
way or another appeared for the first time
in 1950-1960. In those days, the code
was usually written by researchers from
universities, in colaboration with cor
porations. The IT industry was alone at
the beginning and the accent was put on
collaboration. Why? First of all, when a dis
covery was made, people tend to share it.
In that period of time, people were open to
collaboration and to share their ideas with
the rest of the world. Also, each hardware
device was different and if someone wanted
to run an application on a different device
he had to make some changes on the appli
cation. Because of this people used to share
their code.
A good example of the collaboration
is from 1960, when a lot of researchers
worked to define the communication pro
tocols. The output of this collaboration
is the internet that we know nowadays.
Officially, the internet appeared in 1969
through ARPANET (Advanced Research
Projects Agency Network).
From 1970, applications began to be
more and more complex. Different compa
nies started to invest a lot of money in the
software research and development of new
software products. In time, this led to the
appearance of new notions like license, tra
demark and copyright. Besides Microsoft,
there were other companies that started
to use licensing system. A good example
is AT&T, that decided to make profit from
UNIX system – and they started to sell it.
Open-Source and Microsoft before 2000
In the first part of the period, Microsoft
had a rejection position. In 1970, Microsoft
didn’t used to sustain open-source projects.
From their perspective, open-source pro
jects could not bring any kind of value or
revenue. From their perspective, the qua
lity and the performance of an open-source
project was questionable.
In 1976, Bill Gates writes an essay
about open-source. The name of this essay
was “Open Letter to Hobbyists”, where
the Altair BASIC community is indirectly
attacked and people using software without
license. From a corporation point of view,
open-source represents a threat, especially
from the financial perspective.
With or without Microsoft, the open-
source community goes forward and in
1983 they launch the GNU project. The
scope of this project was to develop an
open-source operation system that is
free to everyone and without any kind of
dependency to different companies. All the
code would be open-source and anybody
could change it and use it.
This project leads to a new form of
licensing, because of the need to license
open-source projects. In 1989, the GNU
General Public License appears. After this
different operating systems and products
appeared under this kind of license.
In the last 20 years, a lot of open-source
projects had a real success on the market.
A perfect example is Apache. Also, aro
und Netscape we have a pretty interesting
story. At the beginning, Netscape was not
an open-source project. After Netscape
became open-source project, the code
source was used for different projects.
For example the Firefox browser and
Meanwhile, Microsoft remains the
enemy of open-source projects. The qua
lity of the open-source projects is putted
under question. In 1998 a series of articles
named “Halloween Documents” appeared.
In these articles, the open-source is seen
as a bad thing and is compared to a can
cer. During the years, there were a lot of
lawsuits between Microsoft and different
companies because of the patents.
Open-Source and Microsoft after 2000
After 2000, Microsoft position against
open-source starts to change. With the
entrance in the new era, Microsoft started
to sustain and work at open-source projects
– directly or indirectly. In the mean
time a part of Microsoft projects become
A good example of collaboration
between Microsoft and open-source
community is related to Hiper-V. At this
open-source project, Microsoft works on
drivers. Another example is jQuery where
Microsoft sustains the project and works
directly with jQuery team.
A big change was made in 2006, when
an open-source portal was launched by
Microsoft. Codeplex is the name of the
portal and during the years, it becomes an
important site in the open-source world.
The community of Codeplex is large and
very active. This portal is used by Microsoft
to publish their open source projects.
One year later, even if the relations
hips between open-source community and
Microsoft were pretty tense, Microsoft laun
ches two types of licenses for open-source:

Microsoft Public License

Microsoft Reciprocal License
This is the real turning point, when
open-source proj ects are seen like
something good, that can have a business
potential and the quality of them is extre
mely good.
s we all know, the open-source project exists from the moment when the first line of code was written. In this post we will
see what open-source meant for Microsoft in the past and what is the relationship between open-source community and
Microsoft nowadays.
Microsoft in Open-Source
nr. 9/2013 |
31 October 1998
A first memo appears under the name of
„Halloween Memo”. Open-source is seen as a
threat because of the licensing mode
May 2001
A message appears which gives the example of
companies that had provide the source code
hoping to earn some money and failed
June 2001
B. Gates describes the Generic Public License as
June 2001
S. Ballmer says that if you write an open source
operating system then you need to provide
everything related to that project (source code,
documentation etc.)
Iune 2005
S. Ballmer says that Microsoft works every day
to carry out projects and doesn’t compete with
movements (Linux and open source community)
Iune 2006
Codeplex is released
Octomber 2007
Two license modes for open-source
in present
There are many open source projects supported
by Microsoft
Table 1
Open-source and Microsoft
Open-source project developed by Microsoft
There are a lot of open-source projects that came from
Microsoft world. We don’t talk about small projects. Projects
like Entity Framework, ASP.NET MVC, ASP.NET Razor, ASP.
NET Web API is open-source. Anybody can inspect this code.
Every day, a new project that came from Microsoft world become
In the last period of time, there was some news announcing
that Git will be integrated in IDE of Visual Studio. In this moment
Git is consider one of the best and used source-control mecha
nism. People react in different ways, but what is important for
Git is that more people will be able to use it. By this integration,
Microsoft will need also to offer maintenance for Git. Because of
this we could expect that bugs that are discover on Git to be resol
ved by Microsoft. The integration of Git in Visual Studio IDE was
made some time ago. If we look over the check-ins that were made
on Git, we can observe that name of Microsoft employees appear.
Another interesting project that has all the API documented
and can be used by the open-source community is VM Depot.
This is a service where people can share, rate and use different
images of operating systems (including Linux)
Project Name
Reactive Extension
Common interface for different data sources
(FB, Tweeter, NetFlix, GitHub, etc)
Reactive Extension
Allows working with different asynchronous data
Phone Gab, j Quer y
Mobile, SQLite, Senqua
Different frameworks supported by Windows 8
SQL Server Connector
for Apache Hadoop
Allows data transfer between SQL Server and
, MVC,
Well known frameworks have become open
VM Depot
A catalog of virtual machines for Windows Azure
Type Script
Is a superset of JavaScript that complies to nor
mal JavaScript.
Tabel 2
Open-source projects sustained by Microsoft
Microsoft Open Tech Hub
For an easier collaboration between Microsoft and the open
source community, Microsoft Open Tech Hub appeared. In this
hub there are people paid by Microsoft to contribute to open
source projects. Through this hub they are hoping that people
will be more involved, the communication between open-source
community and Microsoft to be much better and easier and to
facilitate the development of various standards.
We need to understand that open source doesn’t mean only
sharing source code. It means more than that. In addition to the
code share, information sharing is also important, perhaps even
more important. We can have available the source code containing
20 million lines of code if there isn’t any documentation. Is exactly
the same as having more than one assembly. From this point of
view, Microsoft is trying to bring value by providing not only the
source code but also the documentation for it.
An open source project should be more than a source code you
put on a server and share it. You need to provide documentation,
support and be careful to be functional.
The future seems to be quite promising for the open source
community. Microsoft has come to recognize the value the
community and began to sustain it.
In conclusion we can say that until a few years ago open source
didn’t existed for Microsoft, but now these things have changed
enormously and in the future we might have some more surprises.

Microsoft in Open-Source
Radu Vunvulea
Senior Software Engineer
33 | nr. 9/2013
The Challenge of Leadership (Part 2)
Being a leader of any organisation
represents significant responsibility. All
stakeholders are ultimately depending
on the leader to deliver their expectati
ons. Investors want a return on the capital
they have deployed; employees want job
satisfaction and career development as well
as to feel proud and secure at work; cus
tomers and partners demand service and
solutions which meet their requirements
and deliver real value. All of this creates
pressure on the leader to perform.
In my experience this pressure trans
lates into five core responsibilities a leader
carries; in this article we will explore these
in detail and provide a guide for leaders to
put into practice.
The first responsibility (and perhaps
the most important) is to create vision and
purpose for the organisation. As we dis
cussed in the first article an organisation
with vision and purpose which inspire
will have engaged employees; engaged
employees will work harder, be more exci
ted about what they are doing, feel good
about themselves and ultimately deliver a
superior customer experience which will
drive commercial success. Creating vision
and purpose is therefore a primary respon
sibility of leadership.
At Neverfail vision and purpose is
defined by our Company Spirit. Creating
the Company Spirit is the most effective
way I have experienced to deliver vision
and purpose to the organisation. We are
reinventing ourselves to create a powerful
culture with a clear set of authentic values
and behaviours – this is our Company
Spirit and it has three principles: staying
true to our roots, living our passion and
fulfilling our vision. What this ultima
tely means is that we have embarked on a
journey to build strong, sustainable relati
onships with our customers based on trust.
Staying true to our roots as a company
means understanding the way we operate
when we are at our best and constantly
“feeding our roots” so that we remain at the
top of our game. For Neverfail this means
three things: delivering technology which
is on the leading edge of the business con
tinuity market; being agile in responding
to market shifts and opportunities but
remaining focused on our core business
continuity domain expertise; and operating
globally as a single “family”, collaborating
and celebrating together. However for any
organisation the exercise to define its roots
(how it operated when at its best) is fun
damental to understanding the Company
Spirit and hence creating vision and pur
pose for employees.
The second principle is the simple
definition of our core ethos or operating
philosophy: in other words its passion. For
Neverfail our passion is that we keep our
promises. We are absolutely committed to
delivering on our promises whether those
are to customers, employees, partners or
investors. If we fail to meet a commitment
we take the immediate action to rectify the
situation; we do not seek to make excuses
or to blame others, we just fix the problem.
This means we have an open culture where
anyone can raise any issue which needs
fixing and which is making us a less good
company to do business with. However,
whatever the core operating philosophy of
the business it must be constantly called
out and referred to by the leader to rein
force its importance.
The final principle is of the Company
Spirit is the company’s vision. This does
not necessitate spending weeks wordsmi
thing a vision statement or a mission
statement (or arguing about the difference
and definition of both) but moreover is the
simple but powerful definition of what you
want your customers to say about you. In
our case at Neverfail our vision is for cus
tomers to say that they trust Neverfail to
protect their business. This vision is what
informs our product and service strategy,
our sales and marketing engagement with
our customers and our internal processes.
So with vision and purpose defined by
the Company Spirit the second responsibi
lity of the leader is to define the strategy.
We discussed in the first article how this
should be approached, taking into account
the three dimensions of innovation, opera
tional excellence and customer intimacy.
At Neverfail not only have we defined a
clear product direction and innovation
process and focused on building a high
performance organisation, we have exten
ded the concept of the Company Spirit
to a set of core behaviours which we are
programmatically embedding into the
These behaviours are designed to cre
ate a memorable customer experience
where the image we portray (our “brand
promise”) and the reality of the experience
match; where employees feel valued and
engaged in the development of our busi
ness; where we drive innovation across
product, service and process by having a
deep understanding of customer needs;
and where we are willing to be bold in our
decisions but disciplined in our focus and
Vision, purpose and strategy are the
refore defined by the Company Spirit.
Crucially this then defines what customers
can expect when they do business with
the organisation. The Company Spirit of
course complements the key strategic plan
ning disciplines which any organisation
needs (market and competitor analysis,
product strategy, go-to-market strategy and
talent management strategy) but it is really
the foundation on which organisational
success is built.
I referred to talent management as a
key component of strategy and that is in
fact the third core responsibility carried
by the leader: nurturing and developing
his is the second in a series of three articles on the challenge of leadership by Martin Mackay, recently appointed CEO of
Neverfail. In the first article Mackay laid out the strategic framework he is employing at Neverfail to drive change. Here he
discusses in more detail the five key responsibilities a leader has to recognise.
nr. 9/2013 |
talent. This starts with the leader’s own
team. Creating a cohesive, high perfor
ming leadership team is absolutely essential
as a basic building block to a high perfor
ming organisation. A cohesive leadership
team will maximise its capabilities to focus
on external matters to drive the business
forward; equally organisational energy
will not be spent on political in-fighting
but will be channelled towards the market,
the customer and the competition. A lea
dership team which is divided will waste
huge energy and time on internal matters
and turn on itself. Moreover this will be
immediately apparent to the rest of the
organisation and such introspection and
political self-justification will flow down
stream to all employees. Building such a
leadership team takes huge time and effort
on the part of the leader but in my view
is ultimately the most rewarding activity
he or she can undertake. How to achieve
this cohesion is the subject of a complete
set of articles in itself but a simple recom
mendation at this stage is to read Patrick
Lencioni’s “The Five Dysfunctions of a
Team” as a clear guide to doing so.
Beyond the leadership team talent
management is about three things: creating
a high performance environment; hiring
the right talent; and allowing the talent to
Creating the high performance envi
ronment is not just about implementing
an annual appraisal process. Although it
is an important building block many lea
ders believe the responsibility ends there.
As a result the annual appraisal process
becomes a chore rather than an integral
part of organisational development. The
high performance environment has
clear overall company objectives set and
everyone’s work linked to those objectives
so all employees can understand the rele
vance of their contribution to the success
the business. It is also about giving regu
lar coaching and feedback, both positive
and constructively critical. The ability to
coach through constructive criticism is
absolutely fundamental for the leader but
in my experience the focus should be much
more about encouraging behaviour and
performance you want to see rather than
always emphasising the negative. Formal
employee recognition programmes and
informal encouragement both play a huge
role here. Ultimately it is also about being
willing to take the tough decisions to weed
out those people who are not performing
but more of this in the final article.
Hiring the right talent is of course a
key ingredient to developing the business.
Unfortunately I have seen many leaders
hire based on skills and restrict the calibre
of candidates because they are intimidated
by people whom they perceive as a threat
in terms of capability or experience. A
much bolder and infinitely more rewar
ding hiring philosophy is to hire based
on character and organisational fit and
deliberately to seek people who are more
talented, experienced and “better” than
you. That way not only can you learn from
your employees but also you can create a
powerful team of people who are going to
drive your own success. This is a comple
tely different perspective where the leader’s
job is not to be the smartest person in the
room but to create the environment where
the talent can be unleashed.
Finally a common mistake leaders
make is to say that internal promotions
and job changes are part of how the com
pany managers talent but then to stop such
moves because an employee is doing a cri
tical job and to move him on would cause
a major headache for the leader. The only
result I have seen of this ultimately selfish
attitude is to watch talent walk out of the
door to an environment which will enco
urage them to develop without limitation.
Of course there may be a short term con
straint but this can usually be handled with
appropriate transition plans and training
for the new hire who backfills the promo
ted employee.
If creating and nurturing talent is a cri
tical responsibility of the leader it is equally
important for the leader to embrace the
fourth responsibility: keeping the energy
up! Vision, purpose, strategy and talent
management will when first introduced to
the company unleash an energy which will
astound. However, that energy needs to
be sustained and driven by the leader. The
leader’s behaviour in this regard is absolu
tely essential and in the final article in this
series we will explore the key behaviours
a leader must demonstrate. Keeping the
energy up is not just about cheerleading
–although that is an important aspect par
ticularly when the business may be facing
challenges which appear insurmountable
and “just too hard”. I think there are two
key aspects to maintaining energy levels:
consistency and communication. As I
say we will explore these in detail in the
final article but in terms of organisational
energy they mean setting a direction and
modus operandi and sticking to it, rather
than being diverted by the latest fad or
losing interest after the initial launch and
then regularly communicating progress so
that the effort employees are exerting is cle
arly seen to bring rewards in terms of the
company’s progress. This is not just about
major set-piece communication (the quar
terly update on results, for example) but
about frequent and regularly updates on
progress and incremental successes which
are contributing to achieving the vision and
purpose and which validate the strategy.
Finally even with a strong team and
clearly defined vision and purpose, enga
ged employees who are executing against
the strategy, talent being hired and deve
loped and organisational energy creating
momentum the leader has one final respon
sibility to bear in mind: self-development
and self-renewal. Given the emotional and
intellectual energy the leader must exhi
bit on a daily basis there are times when
he just needs to “look after himself ”. This
may be taking time away from the business
to network with and learn from indus
try peers or indeed executives from other
industries to garner fresh ideas and inspi
ration. It may mean simply making time
in the week to exercise to practise a hobby
completely unrelated to the business or just
spend precious time with his or her family.
This process of what I ultimately call self-
preservation is fundamental. There have
been too many examples of “burn-out”
which clearly will damage both the indi
vidual and the organisation. By practising
self-preservation the leader will actually
deliver much greater value to his organisa
tion as the sense of personal renewal will
flow through the company, unleashing
fresh waves of collective energy.
There you have it: five responsibilities
the leader carries to respond to the exciting
but massive challenge his role entails. So
with the strategic framework for change
leadership defined in the first article, the
responsibilities of leadership understood
here, what are the key behaviours the lea
der should exhibit? This will be the subject
of the final article.

Martin Mackay
CEO @ Neverfail Group.
The Challenge of Leadership (Part 2)
35 | nr. 9/2013
Who is the Business Analyst
and why would I need one?
To answer quickly and satisfactory to
the client’s needs, companies must define
and recommend solutions that will bring
value to the interested parts. The prepa
rations for obtaining and maintaining the
quality of services and products provided
can be a long journey that can get you
out of your comfort zone, that can force
you to expand your domain knowledge,
to improve your processes and to value
your resources. Getting more deep in busi
ness analysis by understanding the need
that drives the business, the environment
(internally and externally) of the busi
ness, all these represent key requirements
which will guarantee your success. If we are
dealing with a dynamic environment, the
clients, the customers, the market and the
investors don’t wait. To do things efficiently
and as expected, is a challenge to witch all
market players can respond properly.
The role of the business analyst
In this context, in which the events
dynamics push us to pragmatic solutions
that will bring influence on the way we
act, who can investigate, control and make
things go further? Here comes the Business
Analyst. He understands the complexity of
the modern business environment, making
the difference between the success and the
failure of a project.
And who is exactly this Business
Analyst (BA)? What does he do and
especially why would I need a business
“The Business Analyst is an agent of
change” (The International Institute of
Business Analysis – IIBA). To be more
explicit, the business analyst investigates
and analyses the new opportunities, emp
hasising the needs to improve the way the
companies work. He facilitates the process
of change and implementation. Identifies
and defines the solutions that will increase
the benefits and will reduce the costs. He
is involved in all functional levels of the
companies and can bring significant con
tribution to the process of defining and
implementing the strategy, the objectives
and the business requirements. More than
that, the business analyst acts like a media
tor, facilitating the communication among
departments, business and stakeholders,
and even among different stakeholders.
This way he makes sure that the busi
ness vision is clearly understood and
Facilitating answers to the following
“Why do companies exist?”
“What are the company’s products and
services and who are they addressing to?”
“Who are the customers and the
“How does the market evolve?”
“What needs to be changed in order
to better accomplish objectives or to meet
ll over the world, business analysis is a highly interesting field which concerns
equally the companies and their customers. But the gap between theory and rea
lity proves that this practice is still a fresh one. Despite their domain knowledge,
from non-governmental organizations to finances, banks or constructions, the difference
between success and failure depends on the capacity to change and adapt to market needs,
at customer’s requirements which are more and more diversified.
Daniela Haliga
Business Analyst
@ Endava Iași
nr. 9/2013 |
new challenges or clients?”

the Business Analyst helps compa
nies understand and apply better
the principles of business analysis,
which will ensure their success.
Business Analysis seen as a discipline
In a broader context and from another
perspective, the Business Analyst represents
a discipline and not necessarily a person
who makes an effort to improve the way the
companies interact with the market and the
competitors. Romanian companies, mostly
those who operate in the IT field, started to
give a greater importance to the role of the
Business Analyst, and following the results,
they began to increase the involvement in
the process of developing the projects.
Many times, the motive that stands behind
the failure of the great business ideas, are
the communication barriers. These bar
riers generate ambiguous requirements,
incomplete documentation, unwell defines
purpose and therefore a business without
a clear direction on the long term. Acting
like a negotiator, the business analyst ensu
res the liaison between teams, resolves
conflicts and if it is necessary facilitates a
compromise so that the project won’t be
in danger. Emphasising the strengths and
weaknesses, motivates the team, helping it
to growth, to overcome the obstacles and to
excel in finalising the tasks.
Among Business Analyst’s objectives
we can list:

identifying the real business needs;

defining a business case;

planning, analysing, monitoring the

considering perspectives;

facilitating conflict among the team;

evaluating the impact, the cost and
More than that, the Business Analyst
ensures that all the above are communica
ted and well understood by the team and
stakeholders, facilitating the process from
“as is” to “to be.” The Business Analyst refi
nes the development process by elicitation,
gathering, analysing and communicating
the business requirements, using speci
fic methods, techniques and practices to
show and control the workflow (e.g. inter
views, workshops, modelling processes,
Business Analyst vs Project Manager
Conflict or partnership?
The role of a Business Analyst is some
times associated with the role of a Project
Manager. So the question is: “Why do I need
a Business Analyst when I have a Project
Manager?” Both roles are necessary and if
the two of them join their forces, then this
thing can lead only to a growing perfor
mance ensuring the success of the project.
Although there are common areas, each is
responsible of certain tasks and possesses
certain qualities, abilities and knowledge.
While the Project Manager holds the
responsibility over the all project, adminis
trating the necessary resources (humans
and technical) and ensuring that the pro
ject is delivered on time and on budget, the
Business Analyst ensures that the scope,
the objectives and the strategy of imple
mentations were well understood, that the
development process is consistent with the
business requirements.
Both roles share the main purpose:
the one that facilitate the success. Used in
the correct way, the role of the Business
Analyst is unique and the added value is
evident when the BA is involved from the
early stages of the developing process of the
projects. As results, we have lower costs,
minimized risks, quality, performance and
the most important satisfied clients.
A growing community
International organizations (www., local community (www.code
-, The BA
Lounge), all these promote the importance
of the business analysis and the impact that
the Business Analysts have on the develop
ment and implementation of the software
projects. The number of young, talented
and passionate people who embraced this
profession is growing. Living proof s are
the conferences and presentations that
takes place on different topics in this field,
aiming to promote and encourage professi
onal development as Business Analyst.
Don’t forget: The Business Analyst con
nects the dots in your company!
: (“Business Analysis”, second
edition by Debra Paul, Donald Yeates
and James Cadle; “The Business Analyst’s
role” by Allan Kelly;; www.; http://www.bridging-
Who is the Business Analyst and why would I need one?
37 | nr. 9/2013
Introduction to Grails (III)

Custom validators


Tag libs

Url Mappings

Custom validators
In the previous articles we discussed
about constraints on domain objects.
Grails provides a rich set by default: nul
lable, blank, size validators, etc. In case we
need to enforce additional validation on
our domain objects, we have to write our
own validators.
Let’s add a custom validator which
doesn’t allow word “test” as part of our
messages. For this we need to enhance the
Message class with the additional custom
static constraints = {
message size:5..100, blank:false, validator:
{val, obj ->
Then we define the validator method in
the Message class:
private messageValidator(val) {
if (
().contains(„test”)) {
return „

return true
The validator takes as parameter the
value to validate (in our case the text of
the message to post). If the data passed is
ok according to our rules, the validation
method should return “true”. Any other
expression will be considered as a vali
dation failure when “validate” method is
called on our Message object and our appli
cation will display an error message. We
will see in the next section how to custo
mize the error messages of our application,
by adding internationalization support.

Most web applications are targeted to
users speaking different languages. As well,
the default messages that Grails provide
to handle error cases, are not always user
friendly (see above). Grails internationali
zation support is based on the underlying
Spring MVC support. The language settings
are managed using the user’s Locale .
Grails is storing the message bundles
under grails-app/i18n as Java properties
files. The convention is that a message
bundle file starts with “messages” and ends
with the locale name. Few examples:
For our application, we will use only 2
Let’s take the example above, where the
custom validator error coming from Grails
was not very user friendly and add the vali
dation error text key in the properties files.
app/i18n/ and add:
=My message
=Test is not allowed!
Now retry to add a message
containing “test”. We will notice
2 things:

Grails knows that the
error returned by the custom
validator has to go through
t he i nternat i onal i zat i on

Grails automatically
loads an internationalized reso
urces from
if not found in more specific
i18n files.
S i mi l a r, we s houl d
do some changes on t he (https://github.
blob/master/grails-app/i18n/messages_ ):
=Test nu este admis!
=Mesajul meu
As you can see we added a new inter
nationalized key-value and we would
like to use this into the gsp files. This
is pretty straightforward with Grails.
app/views/message/create.gsp and look for
the string “Message” and replace it with:
<g:message code=””/>. This
will instruct Grails to look on the interna
tionalization files for a key called “message.
name” and to use its value according to the
current locale.
Our application doesn’t have a lan
guage picker, but Grails helps us to test
switching languages, by exposing a “lang”
request parameter that can be used to set
the language in our application. If we want
to switch to Romanian, just make a request
using “lang=ro”, for example:
h t t p://l o c a l h o s t:8 0 8 0/
Gr a i l s S o c i a l Ne t wor k/me s s a g e/
Then, the create message page will look
like (and the error message coming from
the custom validator above will be displa
yed also in Romanian):
Sometimes we need internationaliza
tion support at the controller level. This
is simple in Grails. Let’s say we want to
have internationalization support for the
message we displayed when the user and
password do not match at login.
Current i mpl ement at i on l ooks
I hope the previous articles about Grails raise your interest on the framework to give it a try. Here comes the last article the
“Introduction to Grails” series, presenting the following topics:
nr. 9/2013 |
l i ke ( og/
UserController.groovy ):
render(view: „login”, model: [message:
“Wrong username or password!”])
Since the localization is done via a
“message” tag, what we need to do is to call
the tag with the right parameters. Here is
the changed code:
render(view: „login”, model: [message:
”, args:[message(code:

Looks a bit dirty, but I wanted to highli
ght that Grails also supports parameters in
the internationalized content. In our case,
we want to display a text defined by “error.
wrong” key, which has parameters, defined
in the “args” list – these could be internati
onalized as well. In both cases, we just have
to call the “message” tag with the needed
parameters: “code” – to specify the text
to be displayed and “args” - to specify the
eventual parameters to be replaced in the
Next step is to define the key and values
for the internationalization support in
=Wrong {0}
=username or passwordd
={0} sunt gresite
=username sau parola
Now, if you login with the wrong
password, and ask the application to use a
specific Locale, you will be prompted with
a localized error message.
Tag Libs
Tag libs are a nice way to build reusable
components for the view (GSP files). The
tag libs are stored in grails-app/taglib fol
der. Tag libs are defined as Groovy classes
and can have multiple methods. We can
specify namespaces for our tag libs, to make
sure they do not collide with other tag libs
(coming from Grails or other developers).
Let’s build a small tag lib that will be
used to show the greetings message for
our user. Currently we display this in
list.gsp (
app/views/message/list.gsp ):
<g:if test=”${
<div id=”login”>Hi ${
This approach has multiple issues:

It works only in this view

It doesn’t display any message to sign
in if not signed in

It’s complicated to maintain since we
need to keep changing the gsp file for
any change to our greetings message and
eventually needs to be replicated to other
Let’s extract this as a tag lib. For this we
have to create the tag lib class, by running
the Grails command:
This will create the tag lib called
DisplayTagLib and the associated test file
class DisplayTagLib {
static namespace = „display”

def greetings = {attrs ->
if (session &&
) {
out << „<div id=\”login\”>Hello,
„ +
+ „!</div>”
} else {
out <<
(controller: „user”,
action: „login”){„not signed

Let’s look now at the tag lib
implementation and let’s explain

the package is the same as
for any Java/Groovy class

“namespace” – this is defined to
make sure our tag lib methods to not
collide with the ones coming from Grails
or other developers or just to fit the
methods into the proper context. To use
the tag lib method, you have to call them
like: <display:greetings/>

“greetings” is the method we would
like to use to show our greetings, defined
as closure

“attrs” - is a hash that contains
parameters that are passed to the
tag lib. In case we call the tag lib as:
<display:greetings greetingName=’Hi’/>,
in the “greetings” closure we have access
to attrs[“greetingName”].

tag lib methods have access to the
user session

“out” – is the stream where
were we can write the output
of the tag lib methods

the logic of the tag lib is:
we check for the existence of
the session and user object on session. If
exists, we show the user greeting. If not,
we show a link, asking user to log in. As
an exercise, you could try to add interna
tionalization support to this link.
Now that we have the tag lib define,
let’s use it in the proper place: main.
gsp ( og/
app/views/layouts/main.gsp ). This is the
skeleton than embodies all our pages,
so it seems the proper way to display the
<div id=”grailsLogo” role=”banner”><a
src=”${resource(dir: ‚images’, file: ‚
’)}” alt=”Grails”/></a></div>
Url Mappings
Grails offers a good support to play with
the URLs of the application. The playgro
und is the UrlMappings groovy class,
located in grails-app/conf (https://github.
groovy ).
Up to now, our application was always
showing a Grails default index page each
time we accessed: http://localhost:8080/
GrailsSocialNetwork . Now, we would like
to change this and always show the login
page. More, we would like to show a nice
name for the login url, which by default is
/user/login. We prefer something simpler
like /login.
To accomplish this we need to change
some url mappings as follows:
„/login” (controller: „user”, action: „login”)
First change is to have the nicer url for
the login form (“/login” instead of “/user/
login”). Second change is to instruct Grails
to afișeze the login view each time the
application request is http://localhost:8080/
GrailsSocialNetwork – e.g. root of the
Because of these change, our applica
tion looks better now, when accessed for
the first time:

So far, our application was using
an in-memory persistence mechanism.
In this section I would like to describe
how to add a persistent data source, still
through GORM mechanism. Data sour
ces configuration happens in DataSource.
groovy (
app/conf/DataSource.groovy ).
First step is to define few configuration
Introduction to Grails (III)
39 | nr. 9/2013
of the data source, like pooling, driver used
to connect, user and password:
dataSource {
pooled = true
driverClassName = „

username = „tavi”
password = „tavi”
All these configurations could be over-
written for each environment as described
below. Let’s take the “development” envi
ronment, the one we use when writing our
development {
dataSource {
dbCreate = „create-drop”
// one of ’create’‚‘create-drop’,
//’update’, ‚‘validate’, ‚’’
url = „jdbc:mysql://localhost:3306/gsn”
This one defines the url of our data
source, in this case being a MySQL server,
running a database called “gsn”. As well,
when the application starts, it will drop
the existing tables and create a new set as
specified by our domain classes: User and
Message. This is pretty handy for develop
ment purposes; of course, not a setting for
the production database.
One last configuration is to enable the
MySQL dependency for our project. In
BuildConfig.groovy (
ter/grails-app/conf/BuildConfig.groovy ),
we add the MySQL connector as runtime
dependencies {
runtime ‚mysql:mysql-connector-java:5.1.16’
Assuming that you have a MySQL
database available on this url: jdbc:mysql://
localhost:3306/gsn and a username/
password combination to access it, let’s
restart our application.
Hmm, Grails is throwing an error
| Error 2013-02-24 21:37:48,821 [pool-7-
thread-1] ERROR
- Unsuc
create table user (id varchar(255) not null
auto_increment, version bigint not null,
first_name varchar(10) not null, last_name
varchar(10) not null, password varchar(10) not
null, user_name varchar(10) not null unique,
primary key (id))
| Error 2013-02-24 21:37:48,823 [pool-7-
thread-1] ERROR
- Incor
rect column specifier for column ‚id’
Fortunately, this is easy to fix. It hap
pened because the “id” of our user class is
String and GORM is trying to set it up with
AUTO_INCREMENT attribute, which is
not working for non-numerical types in
MySQL. So, let’s change the type of our
“id” to “long” and let GORM and MySQL
to handle generating our user ids:
class User {
long id // prior it was String id =
String firstName
String lastName
String userName
String password

Now, the application will start without
any problems. If we take a look on the
“gsn” database, we see that it contains 2
tables: “user” and “message”; GORM (via
Hibernate) created the proper tables defi
nitions from the domain Groovy classes,
taking in consideration the attributes and
relationships between our classes. Due to
the initialization routine from BootStrap.
groovy, “user” and “message” tables have
already some pre-loaded content.
At this point, we managed to build a
sample application by using the most com
mon Grails and Groovy features. Of course,
not production ready, but good enough
to kick start learning a new development
Grails helps developers to be produc
tive after couple of weeks of development to
the level where they can build a web appli
cation with a lot of dynamic content. Of
course, the universe of Grails and Groovy
is pretty vast and mastering it takes longer
I hope with these 3 articles I raise your
interest in trying out Grails and Groovy in
your web development activities. This fra
mework really paid the investment for my
Tavi Bolog
Development lead
nr. 9/2013 |
Why do we want to be agile?
The responsiveness to change transla
tes in creating possibilities to adapt to new
situations. The business environment (if
we speak about companies) or the labor
market changes every day through new
obstacles or opportunities. Adaptation is
the only answer to those changes. We can
of course try to change the change, but can
we do this regardless of the circumstances?
Why cannot we be truly agile?
I am sometimes idle and I could just
simply say that not all people or companies
are agile. But that “sometimes” mentioned
previously is in fact “it depends”, a term
used by an expert to answer all questions.
Not only sometimes, but usually our agi
lity is based on the business environment
where the company operates, the culture
of the country the people work in and, by
default, the culture of the organisation.
is an innovative company
in the data security field. But can we inno
vate just by displaying this mantra? Don’t
we really need to have that organisation
that sustains innovation? I don’t believe that
there are a lot who come to work carrying
the innovation in their lunch sandwich, but
I rather think we carry something that can
become alive in a company that sustains
innovation. The environment of the com
pany, organisation or team, together with
the individual’s upbringing is an essential
factor for innovation and agility. What
can you do if you innovate but you cannot
adapt, so as to reap the benefits of your new
Why do we come across problems when
using agile metodologies?
No matter how agile the people and
teams are or how much they use an agile
methodology, problems still occur and that
is very common, as things are always chan
ging. There are new requirements every
day, either on the market or in methodolo
gies, processes and tools that we use.
hen we think of Agile, we think of individuals and the interaction between
them, the functional software, the collaboration with customers and the
responsiveness to change. These four values are the foundation of Agile
methodologies! Values like „responsiveness to change” or adaptation must become a way
of being even outside the world of the Agile manifesto. We have to become agile as an
individual, team, organization or company.
Agile or idle?
How to get the support of your
team in a project
Adrian Lupei
Project Manager and Software
Engineering Manager
@ Bitdefender
41 | nr. 9/2013
However, most of these are situations
when people are not ready for an Agile
methodology, due to the fact that the team
or organisation doesn’t work towards
creating an Agile environment. The orga
nisation leaders, either project managers
or team leaders, are most responsible for
creating change and also an Agile metho
dology. Therefore, it is their duty to help
create an environment without any of the
following problems:

Inconsistent teams that are not

Teams that value success, rather
than the opportunity to learn;

Unsupportive colleagues inside the
team members and also between the
team, clients and sponsors;

Lack of discipline due to no defini
tion of done.
The above list could be several times
longer and more specific, depending on
the organisation, ruling actions and team
members. It is not often when changes
create a huge tension inside the team, but
such a list is a big opportunity for every
How can we motivate the team?
So we have the problems and someti
mes problems cause even bigger ones. A
list of big problems creates demotivation,
especially when this list grows and no one
handles it, and team demotivation has a
great impact on final results. Consequently,
we have a list of problems, we have an
organisation, we have teams, we have peo
ple and last but not least, we want to show
the clients the best results. We can throw
the list away, but the problems are there
until someone handles them.
What do we do with a problem? Even
if we instinctively pass it to our boss, an
agile team should state the problem and
solve it, keeping in mind that we are our
best motivators. What do we benefit from
this, apart from solving a problem that is
still unknown for our boss? We obviously
get motivated teams and individuals. For
this matter, we could take into account the

– the change is inevita
ble and the results are an instrument
of progress, so the team can decide for
some changes in order to become more

– we are born with the
desire of improvement, but when we
cannot improve something, we blame a

– in the same way in which
we help the organisation through our
projects, we should understand what the
causes of change are and what we want
to obtain by solving the problem.
This simple approach can be applied
both to a list of problems but also during
a sprint, but it has to be accompanied by
trust, support, encouragement and appre
ciation from leaders.
What do the project’s sponsors and
clients see?
We have Agile methodologies, we have
motivated people who understand and
use them, but we miss the support of our
clients and sponsors. The clients and spon
sors are particularly the ones who generate
or mediate changes in the organisation. To
make them understand the context and
the real needs, the team has to lure them
into the trap called coopeartion. So what
matters is what the team sees in clients
or sponsors to carry out the demands we
need. How can a team be open to changes
if those who join us are unsupportive or
unresponsive, as long as it is necessary?
nr. 9/2013 |
The type of technology used by OSGi,
although it is based on Java, is relati
vely different from what we know so
far: object-oriented programming, or
later, in enterprise, components-oriented
OSGi in Action, the book I bring into
your attention, written by Richard S. Hall,
Karl Pauls, Stuart McCulloch and David
Savage, is one of my favorites, as type of
approach. If you can manage to read and
understand the book and all its details,
surely you will know OSGi. Moreover, you
will be able to contribute to the develop
ment trends of programming technologies.
It is an area where I would like to accom
pany you.
The first aspect I would like to highlight
is that OSGi specifications have multiple
implementations. Eclipse RCP version 4
uses Equinox implementation, which is a
runtime environment that Eclipse applica
tions are based on. In Eclipse the smallest
unit of modularization is the plug-in. The
terms ‘plug-in’ and ‘bundle’ are almost
synonymous: a plug-in Eclipse is an OSGi
bundle and vice versa. Eclipse Equinox
boosts the bundle concept with the concept
of extension point.
I will make a short description of the
model used by OSGi. It is divided into
three layers:

The fundamental logical unit of
an application that uses OSGi is the
module or the bundle, as it is known. A
module is a jar (collection of class files
and artifacts) together with metadata file
(manifest). Metadata contains, among
other things, of the packages name that
are visible (accessible) from outside the
bundle. In this way, the concept of visi
bility modifier (private, public, protected
or package) offered by Java is exten
ded. Also, the manifest file explicitly
states which packages that the bundle
depends on are. An important aspect to
be considered is that consistency of the
dependencies is checked accordingly to
the version. Thus, for the same module
we can have multiple versions simultane
ously loaded.

The life cycle of a module is han
dled by a special layer. This is somewhat
similar to the concept of enterprise com
ponents life cycle. That life cycle was
handled by the container, but through
callback methods the developer could
do various operations when passing
from one status to another. The funda
mental difference was that modifications
were done at runtime and not at compile
time, as in OSGi case. Life cycle control
in OSGi plays an important role in dyna
mic management of the bundle. Thus,
the bundle can be added or deleted from
the application without restarting it.

A third important element in fra
mework is the service, managed by the
SGi stands for „Open Services Gateway Initiative” and is a framework that defi
nes a dynamic module system for Java. Framework’s origins are somewhere in
the early 2000s.
Book review:
OSGi in Action

by Richard S. Hall, Karl Pauls,
Stuart McCulloch, David Savage
Silviu Dumitrescu
Java consultant
@ .msg systems Romania
43 | nr. 9/2013
service layer. The service is somewhat
similar to a web service through which
bundles can communicate. The basic
idea, also considered a best practice, is
that we expose only an interface, con
sidered a contract between the service
provider and the customer. Service
may be published in a directory service
where customers can browse it.
These are some of the most important
concepts provided by OSGi. Details and
many useful examples can be found in the
The content of the book is divided
into three parts: introductory elements
(modularity, life cycles, services), details
regarding the basics of OSGi (transfor
ming a jar into a bundle, dividing the
application in bundles, testing the appli
cation, debugging of an application,
versioning, application management) and
advanced topics.
As we have seen so far, this framework
changes the classic style of developing an
application. The natural question would
be where is this framework integrated?
First of all in application that develops fat
The penetration of OSGi in the world
of Java Enterprise is still at the beginning.
Maybe the only known and appreciated
applicability of OSGi is the level of applica
tion servers: Glassfish V3, Websphere etc..
In addition, the model of OSGi divided
into layers is more or less similar to what
EJB offers.
Also, OSGi is used as a model or inte
grated in: network service JINI (like RMI,
but more advanced) JMX technology (Java
Management Extension) and others. In
the advanced concepts presented in this
book, the authors present the relationship
between model and component (Chapter
11, page 345). The conclusion is interes
ting: the modules work with static code
and dependencies at compilation while
components work with instances and
dependencies at runtime.
OSGi defines a model component,
which is actually a special component cal
led service-oriented component model.
This model is based on linking the exe
cution of a requested service using a
service-oriented interaction pattern. This
leads to increased flexibility in composing
the application.
The great weakness of OSGi com
ponent model is that it leaves to the
components the manually managing
service dependencies from the service
layer although the layer is automatically
The solution was found by the OSGi
Alliance through a framework component
called Declarative Services.
In addition to this, the authors also
present iPOJO as component model (sec
tion 12.2, page 391). iPOJO simplifies the
dynamic creation of OSGi services-orien
ted applications.
The final part of the book deals with
the relationship that may exist between
web applications, more precisely how
OSGi can work in a web context.
Just as the authors stated, the models
used by OSGi are still in a primitive condi
tion. Some people even claim that OSGi is
where object-oriented programming was
25 years ago. The trend, however, is the
wide of this technology.
Although it seems difficult and a bit
uncomfortable, OSGi’s use brings many
improvements in the dynamic world of
applications. Just the fact the update and
installing modules without stopping the
application give developers many reasons
to think.
Perhaps the last thing that should
be mentioned is that going through this
book requires advanced knowledge of Java
Standard. Java Enterprise skills are use
ful only for understanding parallel made
by the authors and for fully valuing the
progress brought by OSGi to the world of
software developers.
I wish you pleasant reading and I
am looking forward to comments and
nr. 9/2013 |
have 24 hours regardless if we feel they will pass slowly or not.
As a consequence we are trying to solve a false problem beca
use it is not about managing time, it’s not about planning, to do
lists or calendars. If it were about this nobody would be late ever
again and each one of us would know how to use all programming
languages. (Except me )
Than what is it about? Exactly!
Let’s rephrase so that we figure out a solution.
When somebody complains that they have time problems,
they don’t tell us in subtitles that they don’t know how to use a
calendar (that’s rarely the case). Instead that person is telling us
that putting the task in the calendar is the smallest of challen
ges. Following the calendar is the big issue. If the Snooze button
would wear out probably the writing wouldn’t be readable by now.
Approaching the issue like this gets us at rephrasing it:
“How to start and stay at what we schedule/plan?”
Thinking about it like this we arrive at the conclusion that the
issue is to manage us, our behaviors. We are lucky, since this is one
of the most researched things in psychology:
Why we do what we do and why we don’t do what we don’t
Talking with a few friends from IT and following Ovidiu’s
recommendations I learned that one of the challenges is learning
a new programming language.
I think we are all facing the same challenge. Not to learn a new
programming language but to stay up to date in our field, read that
great book we bought, read a book every month, go to the gym,
eat healthy, and so on.
It became obvious for everybody that just writing things down
on a to do list or to a calendar doesn’t mean it will actually happen
in reality. We have tons of experience with things from calendar
that got from SNOOZE to DISMISS and not because IT WAS
The answer to this question is extremely simple and we can
summarize it in a very easy to follow and to remember scheme.
What you find bellow is from Behavior Psychology, who’s
founder was BF Skinner, and the ABC behavior model, one of the
most researched models in psychology.
This time we will discuss about the first step. See you for the
next articles to figure out steps 2, 3 and 4.
The first problem in managing behaviors or managing time is
that rarely we are clear about what we want to do. If we don’t define
our brain has trouble because it does not know what’s expected.
How do I define correctly?

I always use action verbs and never, but never, the verb “TO

I specify clearly how often I want something done and sche
dule how to get there

I admit I’m human and I set from the start how many times
I can postpone and for how long

I define clearly what I want to do (just being there probably
won’t do it)
Not helping:
First step in learning Python:
I study Python
I s t ar t s t udyi ng
I wil l learn about
I will get awesome at
I study Python:
: three time a week (Monday,
Wednesday, Friday)
: morning, before going to work
Duration: one hour
: I can postpone to next day
: What I do when I study (like an
instruction manual)
I read x pages from the manual/blog/
site, I take notes, I extract 4 concepts
that I write down, I make an outline to
what I learn, I talk to a peer about what
I learned, I write a blog post about what
I learned)
Când e vorba de prevederea amânărilor (butonul de Snooze),
avem ceea ce se cheamă complexul Superman. Când planificăm,
mai ales dacă suntem entuziasmaţi, avem tendinţa să planificăm ca
și cum altcineva, nu noi, ar veni mâine să pună în realitate ce am
planificat. Aceasta este una dintre marile probleme, când e vorba
de planificare. Recomandarea mea este că atunci când planifici
să nu te bazezi niciodată că “DE MÂINE” altcineva cu mai
mult chef, neobosit și super motivat va face treaba. Planifică
luând în considerare experienţa trecută când ai făcut asta sau
ceva similar, în cea mai proastă zi a ta. Lasă neapăsarea buto
nului de Snooze să fie o surpriză plăcută nu o așteptare.
I truly think a lot of people are already tired of anything even barely related to Time Management. For this specific reason I want
to rephrase the issue a bit.
When we say Time Management we are actually tricking ourselves. No matter how relative time is, in our own reality the day will
The Psychology of initiating and maintaining behaviors

45 | nr. 9/2013
Not helping:
Design a website
three time a week (Monday,
Wednesday, Friday)
: evenings from 10 to midnight
: 2 hours per session, 3 weeks to
: I can postpone to next day
: I install a DB, put Wordpress on it,
make sure it’s connected, set the config file,
design on top, communicate with client to
make sure specifications are met, agree with
client on final version, find hosting, upload
site, check the site is functional, send all final
details to client.
I study for .net
three time a week (Monday,
Wednesday, Friday)
: evenings from 10 to midnight
Duration: 2 hours per session, one Saturday
every two weeks, 4 months to finish
: I can postpone to next day
: Download manuals, Print manuals
and organize
Each session I read one chapter and code the
Verify correctness if code is available
Simulate tests every three chapters. Read
assessment feedback
Reread the content where I have incorrect
answers. Re-do the test.
Find out what I need for certification
Schedule the test
Practice for final test (three times)
Take the test.
There are two things that need some more explaining.
When scheduling the postponing permission or the snooze
button we have what we call the Superman Syndrome. When we
plan, especially if we are excited about what we plan to do, we tend
to do it like someone else would have to carry out the plan. This
is one of the main issues when planning. I recommend, that when
you plan, to never assume that “from tomorrow” someone more
cheerful, fresh, in the mood and extremely motivated will come
and make the plan reality. Plan while taking in consideration your
experience when you did something similar in your worst day. Let
the “not pushing snooze” be a surprise not an expectation.
When it comes to forecasting duration of a specific task analyze
the actions required to do the task. Even so we will estimate erro
neously. I once heard a good advice about this: Estimate as if
someone else would do the task and then add 20%. Another good
suggestions is to find a similar task (especially when you need to
estimate something you’ve never done before) and remember how
much it took to do it when you did it the first time.
The brainers
We are facing a small challenge. What do we do when we
cannot define like this? There are situations, especially with the
brainers (the ones that need to think, create, solve things) when
we cannot define upfront how it should be done. Brainers have
a catch; they need to work step by step on a situation until they
figure it out. Well, the answer lies in the definition itself: “work
step by step on a situation until they figure it out”. That means that
I’ll never plan the whole process but instead I’ll plan one step and
won’t plan the next until the first is done.
It’s just like writing a book. Rarely, if ever, I have the whole
book in my head (the plot, the characters, the scenes, and so on).
Not helping:
Wr i t i ng t he
Starting to write!
Become a writer!
Writing the best
Write the first chapter
Three times a week
: two hours per session, 3 weeks to finish
: Postpone to next day
: What do I do exactly when writing
the first chapter:
For each session: Read the previews work,
Write the first paragraph, continue to write for
an hour even if it doesn’t make sense, re-read,
correct to make up for logic, rephrase, check,
correct, save as Draft1.docx
When it comes to complex plans it’s actually not recommen
ded to plan everything ahead. By the time you finish planning
someone else wrote the book.
It takes significantly longer to do things this way (define ahead)
but it is the first condition to getting things done. If I don’t know
what and how and when things need to get done it won’t happen.
Defining is just the first step; we have the rest of them. For that
I invite you to read the next TSM issues.
Thank you for your time (for me and not studying).
Antonia Onaca
with 10 years of experience,
psychologist, consultant
as an entreprenour
nr. 9/2013 |
Gogu and
- You prehistoric mammoth, you feed extinction! You must be
flexible, you must adapt ... Gogu was very involved, it was a subject
he loved and which he had often debated with Chief, so now was
very sure of himself.
- No, it’s not true, even mammoths can be agile. Haven’t you
heard those guys with the event?... even mammoths can be Agile
is actually the title of the event.
- Don’t bother me with this stuff, now everyone is smart and
knows Agile, yeah right?! They know nothing!
- No, no, these guys are supported also by Ovidiu, the one with
the magazine.
- It’s not like this Ovidiu of yours has any idea. Hasn’t he
worked for Nokia? Nokia is now closed! See? – Gogu ended
trimphantly. He loved to confuse Misu and he was delighted by
the sight of Misu’s puzzled face. Misu recovered slowly, at least
enough to be able to articulate:
- You’re crazy, Gogu!... Let’s return to the subject. We were
talking about the process. Agile does not mean chaos, the frame is
clearly defined. You don’t do whatever we want whenever we want.
If the SCRUM Master says he will not deliver because he is in the
middle of a sprint, then that’s it. There is a process and the process
must be followed.
- Ha-ha, you’re right, partially. Yes it must – he copied Misu
– be thought this process of ours. It is true that our methodology
follows some rules, and it’s normal. The SCRUM applied by the
people working in development... And here me out, don’t stumble
against unimportant details in the context. Misu wanted to add
something, but Gogu’s sight stopped him. So - Gogu continued,
excited by Misu’s reaction, or better said Misu’s lack of reaction
– this Agile methodology that we are using has been defined by
others, and we are applying it according to various books and cer
tifications that we have read, accepted, embraced.
- Right – Misu jubilated. You’re right, Gogu, this is what I
wanted to say. And therefore, you can’t change the requirements
during a sprint. And you can’t pull out someone from the team.
It’s all thoroughly calculated....
- Uff, you prehistoric waterfall mammoth, buried in funeral
sprint pace! Agile does not mean that you change one rigid metho
dology with another one as rigid. Agile is a mindset, a culture that
we must understand and adopt throughout the entire organiza
tion. We gave up waterfall and started doing Agile because we
wanted to be closer to our customers, faster to deliver something
useful and relevant to them, and be more flexible in accepting
change... Shouldn’t we apply these principles indoors also? So, if
I ask the SCRUM Master for a man, it means it’s important for
the client, for what we deliver, and therefore for our results, our
company and its image, right?
- If you put it that way ... yes, it’s correct.
- Then why doesn’t he give me that man?! Gogu raised his
- He said it would affect the team’s commitment to the sprint...
- Oooh, don’t say!
- What’s the matter, guys? Stop arguing, we might still close the
contract. Chief appeared - as usual – in the critical point of the dis
cussion. On Monday we’ll go to the client, have you talked to the
guys from development? I have spoken to the Product Owner, he
is on vacation, but he will return on Monday. We still need Flaviu,
have you talked to him?
Gogu grinned triumphantly and beckoned Misu to answer. He
hesitated, but finally muttered:
- The SCRUM Master won’t let him because he says it will
affect the sprint... Before Misu finished the sentence, Chief was
already talking on the phone. The conversation lasted less than
30 seconds and ended with a phrase that left the two speechless:
„Well, you know? I like to see that your attitude is Agile as well, not
only the methodology. Thanks and bye”. Chief returned victorious
to the guys:
- Well, are we Agile or not?
- Depends on who’s asking, Chief...

Simona Bonghez, Ph.D.
Owner al Confucius Consulting
powered by