tsm_9_2013_en

48
TO DAY SOFTWARE No. 9 • March 2013 • www.todaysoftmag.ro • www.todaysoftmag.com MAGAZINE 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

Upload: today-software-magazine

Post on 14-Mar-2016

224 views

Category:

Documents


7 download

DESCRIPTION

http://www.todaysoftmag.com/pdf/TSM_9_2013_en.pdf

TRANSCRIPT

Page 1: TSM_9_2013_en

TSM T O D A YS O F T WA R E

No. 9 • March 2013 • www.todaysoftmag.ro • www.todaysoftmag.com

M AG A Z I N E

Design adaptiv – a fad or necessityCultural 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

Page 2: TSM_9_2013_en
Page 3: TSM_9_2013_en

6Cluj IT

ClusterEchipa Cluj IT Cluster

8Cultural projects initiated by

an IT companyFlorin Pârlea

9The Cluj IT

History (IV) - IT Map

Marius Mornea

10Mobile World Congress

- Barcelona 2013Codruța Nicolescu, EMBA

13Twitter Bootstrap

in Web ApplicationsIoan Bercea

16ABAP in Eclipse

Victor Ionescu

19Google Web Toolkit

– OverviewAlex Luca

22Implementing a successful

metrics system in an IT company

Ramona Muntean

26In search of the perfect domain

Radu Popescu

28Design adaptiv

– a fad or necessityBogdan Nastasa

31Microsoft in Open-Source Radu Vunvulea

33The Challenge of Leadership (Part 2)Martin Mackay

35Who is the Business Analyst and why would I need one?Daniela Haliga

37Introduction to Grails (III)Tavi Bolog

40Agile or idle?Adrian Lupei

42Book review: OSGi in ActionSilviu Dumitrescu

48The Psychology of initiating and maintaining behaviorsAntonia Onaca

50Gogu and AgileSimona Bonghez, Ph.D.

Page 4: TSM_9_2013_en

4 nr. 9/2013 | www.todaysoftmag.com

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 KPI 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 ANIS 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 belong.

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 and then Implementing a successful Metrics System in a software company. We also have The Challenge of Leadership (part two), Who is a business analyst and why do we need one in companies or 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, [email protected]

Founder & CEO @Today Software Magazine

editorial

Page 5: TSM_9_2013_en

5www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

Editorial Staf

Fondator / Editor in chief: Ovidiu Mățan [email protected]

Editor (startups and interviews): Marius Mornea [email protected]

Graphic designer: Dan Hădărău [email protected]

Marketing:: Ioana Fane [email protected]

Translator: Cintia [email protected]

Reviewer: Tavi Bolog [email protected]

Reviewer: Adrian Lupei [email protected]

Made byToday Software Solutions SRL

str. Plopilor, nr. 75/77Cluj-Napoca, Cluj, [email protected]

www.todaysoftmag.comwww.facebook.com/todaysoftmag

twitter.com/todaysoftmag

ISSN 2285 – 3502ISSN-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

www.todaysoftmag.rowww.todaysoftmag.com

Silviu [email protected]

Java consultant@ .msg systems Romania

Marius [email protected]

Founder of Mintaka Research platform

Radu [email protected]

Senior Software Engineer@iQuest

Simona Bonghez, [email protected]

Owner of Confucius Consulting

Radu [email protected]

QA and Web designer @ Small Footprint

Authors

Martin [email protected]

CEO @ Neverfail Group.

Bogdan [email protected]

UX/UI Design Lead @ Endava

Victor Ionescu [email protected]

SAP IT Consultant @ .msg systems Romania

Mircea Vă[email protected]

Co-founder@ Use Together

Ana [email protected]

Projects coordinator@ AICC

Florin Pâ[email protected]

General director@ Gemini Solutions

Codruța Nicolescu, [email protected]

Executive Director@ADESCO

Ioan [email protected]

Senior Web Developer@ 3Pillar Global

Alex Luca [email protected]

Senior Developer @ HP

Ramona [email protected]

Measurements & Best Practices @ ISDC

Daniela [email protected]

Business Analyst@ Endava Iași

Adrian [email protected]

Project Manager and Software Engineering Manager @ Bitdefender

Tavi [email protected]

Development lead @Nokia

Mihai Nadăș[email protected]

CTO@ Yonder

Antonia [email protected] 10 years of experience, psychologist, consultant as an entreprenour

Page 6: TSM_9_2013_en

6 nr. 9/2013 | www.todaysoftmag.com

business

Cluj IT Cluster

An innovative clusterThe 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 www.clujit.ro.

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 Applications, Mobile Applications, 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 Sector.

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 hubCluj 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 hub.

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;

Recognized 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.

Page 7: TSM_9_2013_en

7www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINEbusiness

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 are 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 companies.

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 [email protected]

Page 8: TSM_9_2013_en

8 nr. 9/2013 | www.todaysoftmag.com

culture

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. How 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 website (http://romanianletters.ro), a portal that brings together external links with the one Romanian subject in the foreground, be it personality, special places or Romanian wine. ’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 ¬ fem.ro /) 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 (Romanian 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://statuidedaci.ro 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 hackers.

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.’

Contemporary 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 [email protected]

Projects coordinator@ AICC

Florin Pâ[email protected]

General director@ Gemini Solutions

Page 9: TSM_9_2013_en

9 nr. 9/2013 | www.todaysoftmag.com

The Cluj IT History (IV)IT Map

history

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 predecessors.

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 [email protected]

Founder of Mintaka Research platform

Page 10: TSM_9_2013_en

10 nr. 9/2013 | www.todaysoftmag.com

Mobile World Congress - Barcelona 2013

What does it mean for Romanian companies?

business

APPSCEND

What products or services will you pre-sent during Mobile World Congress 2013?

At MWC we will present Appscend, 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:

1. Appscend’s mCMS (mobile content management system) – the informa-tion management system of mobile applications.

2. Smart Push Notifications: the advanced targeting and management platform sending notifications of native applications.

3. Appscend App Analytics: the system of measuring the indicators’ performance within mobile applications, similar to Google Analytics web system.

4. 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 Dolphin, 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.

AROBS

What products or services will you pre-sent during Mobile World Congress 2013?

1. Services: • development and testing of mobile applications;• development of offshore and nearshore software system;• hire staff

2. Products:• OptimallSFA – 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 visitors.

The second objective is to identify potential customers for our development

On 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 www.businessdays.ro.

Page 11: TSM_9_2013_en

11www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

and testing services for mobile applications, namely software outsourcing for development and testing of Web and cloud applications.

QualteHWhat products or services will you present

during Mobile World Congress 2013?IQteh – a business platform available on iOS,

Android and BlackBerry;IQroute – an integrated solution designed for

transportation and logistics having an important-mobile component;

MobIO – mobile reporting.

What products or services will you present during Mobile World Congress 2013?

QUALTEH 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 IQcrm and IQsfa 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 and MobIO. 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.

MobIO is a new concept in the region and has been developed as a „mobile reporting” solution that,

when required, helps companies in accessing and processing different information on mobile devices.

Virtually, every company needs or will need in the future some information from the internal systems on mobile e q u i p m e n t , 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, [email protected]

Executive Director@ADESCO

Ovidiu Măţan, [email protected]

Fondator & CEO@Today Software Magazine

Page 12: TSM_9_2013_en

12www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINEcommunities programming

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 GroupJava technologies community.Website: http://www.transylvania-jug.org/

Started on: 15.05.2008 / Members: 533 / Events: 41

TSM communityCommunity created around Today Software Magazine.Website: http://www.todaysoftmag.ro Started on: 06.02.2012 / Members: 520 / Events: 8

Romanian Testing CommunityCommunity dedicated to QA.Website: http://www.romaniatesting.ro Started on: 10.05.2011 / Members: 582 / Events: 1

GeekMeet ClujCommunity dedicated to web technologies.Website: http://geekmeet.ro/ Started on: 10.06.2006 / Members: 533 / Events: 16

Cluj.rbRuby community.Website: http://www.meetup.com/cluj-rb/ Started on: 25.08.2010 / Members: 133 / Events: 33

The Cluj Napoca Agile Software Meetup GroupCommunity dedicated to Agile development.Website: http://www.agileworks.ro Started on: 04.10.2010 / Members: 297 / Events: 24

Cluj Semantic WEB MeetupCommunity dedicated to semantic technologies.Website: http://www.meetup.com/Cluj-Semantic-WEB/ Started on: 08.05.2010 / Members: 137/ Events: 21

Romanian Association for Better SoftwareCommunity dedicated to IT professionals with extensive experi-ence in any technology.Website: http://www.rabs.ro Started on: 10.02.2011 / Members: 208/ Events: 11

Out 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

Calendar

April 4Launch of issue 10 of TSM magazinewww.todaysoftmag.ro

April 4Ruby in iOS: Introduction to RubyMotionwww.meetup.com/cluj-rb/

April 9Jim Bagnola – Lead the Change, Cluj-Napocawww.jimbagnola.ro/evenimente/cluj/

April 9AgileWorks Remote Open Spacewww.meetup.com/The-Cluj-Napoca-Agile-Software-Meetup-Group/

April 10Facebook graph search www.meetup.com/Cluj-Semantic-WEB/

April 10Functional Programminghttp://lnkd.in/CijSms

April 26Romanian Progress User Grouphttp://it-events.ro/events/romanian-progress-user-group/

May 27Windows Azure Bootcampit-events.ro/events/windows-azure-bootcamp-at-cluj-napoca/

May 16-17Romanian Testing Community Conference 2013 http://www.romaniatesting.ro/

May 23-24ITCAMP 2013 - TSM reccomands ithttp://itcamp.ro

Thursday/weeklyOpenConnectwww.facebook.com/groups/355893314491424/

Wednesday/bi-monthlyOpenCoffeewww.facebook.com/opencoffeecluj

Cluj-Napoca IT communities

Page 13: TSM_9_2013_en

13www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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 result.

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 Bootstrap1

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 mentioned:

• Templates Twitter Bootstrap (free or 1 http://twitter.github.com/bootstrap/

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 Bootstrapin Web Applications

I 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.

programming

Ioan [email protected]

Senior Web Developer@ 3Pillar Global

Page 14: TSM_9_2013_en

14 nr. 9/2013 | www.todaysoftmag.com

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 BoostrapFollowing 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.github.com/bootmetro/)

jQuery in Twitter BootstrapjQuery 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 loading.

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 level.

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” data-toggle=”modal” data-target=”#myModal”>Launch modal

</button>

The second method is based on Javascript calls:

$(‚#myModal’).modal(options)

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 figure:

Fonts in Icon representation2

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 category.

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),

2 http://fortawesome.github.com/Font-Awesome/

programming

Page 15: TSM_9_2013_en

15www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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 conclusionPackage „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.

Page 16: TSM_9_2013_en

16 nr. 9/2013 | www.todaysoftmag.com

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 IDEFor 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 EclipseUsually 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 platform

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-lopment, QA, integration, production.

The development is only performed on the development

ABAP in Eclipse

While 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.

programming

Figure 1 - Versioning and continuos integra-tion process using an IDE like Eclipse

Victor Ionescu [email protected]

SAP IT Consultant @ .msg systems Romania

Page 17: TSM_9_2013_en

17www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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 paradigmIn 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:

1. Concurrent access to objects, an issue solved by using pessimistic locks at the level of every object.

2. 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 WorkbenchTo 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 functionalities

ABAP into EclipseThe 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

SAP ADT“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 platform.

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 REST1 ser-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: en.wikipedia.org/wiki/Representational_State_Transfer

Figure 2 - SAP System Landscape

Figure 3 - Utilitarele care formează Workbench-ul ABAP, allows to manipu-

late objects from R/3 repository

Page 18: TSM_9_2013_en

18 nr. 9/2013 | www.todaysoftmag.com

• 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 accordingly

ADT SDKConsidering 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 SAPLink2 into Eclipse.

ResultIf 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 systemsThe 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.

CodingIf 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 run.

Functions & Tools• Objectcheckingandactivation

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,byusingEclipse,theuserwill have simultaneous access to two inde-pendent versioning systems: the one from the ABAP application server and the local Eclipse version history.

• The transport managementfeature 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 interface.

• However,thesamecannotbesaidabout 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.

DebuggingOne 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.

ConclusionAlthough 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

programming

Figura 4 - Arhitectura ADT

Figura 5 - Aplicație SAP GUI inte-grată într-un tab Eclipse

Page 19: TSM_9_2013_en

19www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINEprogramming

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” />.

AdvantagesGWT 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 JavaScriptWhen 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 = $doc.location.href; return currentURL;}-*/;

GWT and CSSEven 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

The 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 [email protected]

Senior Developer @ HP

Page 20: TSM_9_2013_en

20 nr. 9/2013 | www.todaysoftmag.com

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: button.setStyleName(“awesomeButton”);

There is also support for adding or removing class names.

GWT and HTMLWorking 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 unchanged.

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

:Video.isSupported();

A GWT project’s structureA project that uses GWT is composed

of three main packages: Client, Shared and Server.

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 services).

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.

myService.myMethod(myParam1, myParam2, new AsyncCallback<ResultType>() {public void onFailure(Throwable caught) { handleException(caught); }

public void onSuccess(ResultType re-sult) { doSomethingWithResult(result); }}

Where and how GWT is usedGWT 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 GWTGWT is the basis of many useful

frameworks.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 benefits.

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 game.

Finally, mGWT is a library for GWT to create web applications for mobile devices

GWT CommunitySince 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 FutureVaadin 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 DevMode.

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

programming

Page 21: TSM_9_2013_en

21www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

GWT in a project in the future.

ConclusionsUsing 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.

Linkshttps://developers.google.com/web-toolkit/https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5https://developers.google.com/web-toolkit/speedtracer/https://groups.google.com/forum/#!forum/gwt-steeringhttp://sencha.com/gxthttp://vaadin.com

https://vaadin.com/gwt/report-2012http://code.google.com/p/quake2-gwt-port/http://chrome.angrybirds.comhttps://developers.google.com/playn/http://m-gwt.com/

Page 22: TSM_9_2013_en

22 nr. 9/2013 | www.todaysoftmag.com

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:

1. Top-down approach, when the mea-surement needs are defined by the top

The 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.

management

Implementing a successful metrics

system in an IT company

Ramona [email protected]

Measurements & Best Practices @ ISDC

Page 23: TSM_9_2013_en

23www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

management based on the company’s business objectives, high level targets and its performance indicators;

2. Bottom-up approach, when the mea-surement needs are defined at project level, based on project specific goals and objectives.

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.

TOP DOWN APPROACH: company 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, namely:

• proper tooling or systems for time registration for different types of activities, • 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 learnt.

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

ISDC.EU/CAREERS

WE DO PROJECTS

WITH IMPACT. WE

DELIVER RESULTS,

NOT RESOURCES.

OUR CUSTOMERS

ARE IMPRESSED

BY OUR AWESOME

TECH TEAMS.

ISDC

ENGINEERS

YOUR

DREAMS! [email protected]

[email protected]

WE HIRE IN GOOD COMPANY

PROJECT MANAGERPROJECT MANAGER

JAVA DEVELOPERSJAVA DEVELOPERS

.NET DEVELOPERS.NET DEVELOPERS

JAVA ARCHITECT JAVA ARCHITECT

.NET ARCHITECT

Page 24: TSM_9_2013_en

24 nr. 9/2013 | www.todaysoftmag.com

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 defining:

• 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

BOTTOM UP APPROACH: project’s 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 performance?

• 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 deliver?• 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 project.

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 levelProject effort # hours planned (per iteration)

# hours spent (per iteration)Estimation deviation per iterationEstimation deviation overall

Productivity 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 trendsDDR Testing per iteration and trendsDDR Customer per iteration and trends

Cost of Non-Conformities (re-work)

#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

management

Page 25: TSM_9_2013_en

25www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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.

Page 26: TSM_9_2013_en

26 nr. 9/2013 | www.todaysoftmag.com

Restricted TLDsOne 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 register.edu 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, WhiteHouse.gov has over 50 million links, a figure that can’t be matched by many sites.

Regional TLD vs. global TLDChoosing between a regional domain

(.ro) and a global (.com) is very simple. If through your website you want to target

mainly Individuals in Romania, use.ro. 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 except.net 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.

TLD Nr. domeniiCOM 106,935,825NET 14,948,129ORG 10,166,191INFO 7,028,193BIZ 2,284,272Tabelul 1 : Top 5 TLD active (RegistrarStats.com)

With or without hyphen?In the early 2000s was common to have

a domain which contained several dashes (eg. silver-jewlery-shop.com). 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.

The 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

programming

In search of the perfect domain

Radu [email protected]

QA and Web designer @ Small Footprint

Page 27: TSM_9_2013_en

27www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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 flick.com photo-sharing website. Approximately 3.6 million visitors per year visited flicker.com by mistake. Yahoo needed to get that domain and to redirect it toflickr.com. 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;

ResourcesBelow I have created a short list of useful resources and tools

to choose and purchase a domain name:DomainTyper.com 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: http://radupopes.cu (cu - Cuba), http://radupope.sc/ u (sc - Seychelles) http://radu-pop.es/cu (es - Spain), http://radupo.pe/scu (pe - Peru).

NameTumbler.com 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.

RoTLD.ro 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.

ICANN.org 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.

DomainSuperstar.com 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.

Page 28: TSM_9_2013_en

28 nr. 9/2013 | www.todaysoftmag.com

programming

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 schemeA 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

content:

.main { margin-left: 20px;}

.sidebar { width: 200px; float:left;

}

Adaptive Media ElementsMedia 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 percentages.

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-ges.com /. 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 queriesCSS3 gives us the opportunity to

What 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.

programare

Bogdan [email protected]

UX/UI Design Lead @ Endava

www.nastasabogdan.eu

Page 29: TSM_9_2013_en

29www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINEprogramare

identify and determine the size of the screen, so you can change the properties of elements based on what you need.

Example:

@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.github.com/bootstrap / index.html)

What does this framework offer?1. 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.

2. Content predefined layouts that may contain columns adaptable to the screen or fixed.

3. Support for adaptive design with

a set of predefined queries to cover all devices.

/* 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) { ... }

4. Styles for various components:

a. Font,b. Tables,c. Menus,d. Paginge. Forms,f. Buttons,g. Images,h. Icons.

6. JavaScript functions available for:a. tabs,b. carousel picturesc. tooltips,d. Lodges alert.

For a complete list and examples, see http://twitter.github.com/bootstrap/

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.starbucks.com, mobile.starbucks.com, m.starbucks.com)

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

Page 30: TSM_9_2013_en

30 nr. 9/2013 | www.todaysoftmag.com

programmingDesign 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 aspects:

ErgonomicsA 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.

ContentFor 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.

Html5Small facilities HTML5 can offer do

make a difference and create an extraor-dinary experience for a user. For example:

autofocus - the field that has this attri-bute will automatically be selected when loading the page.

email - the field will be interpreted by modern browsers as a mailbox and, together with the attribute „required” an

email validation will be made. <input type=”email” name=”email” placeholder=”[email protected]” required/>

number - in editing, modern browsers will display only the numeric keypad

datetime -when changing the box, modern browsers will display a calendar

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

<input type=”text” name=”person” list=”catalog”/><datalist id=”catalog”> <select> <option value=”Bogdan Nastasa”>

</option> <option value=”Bob Marley”> </option> <option value=”Ben Johnson”> </option> <option value=”Bernadette Pe-ters”> </option> <option value=”Halle Berry”> </option>

</select></datalist>

We presented above only a few of HTML5 facilities. A complete list of components can be found at: http://html-5please.com/

Performance and OptimizationApplications 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.

programming

Page 31: TSM_9_2013_en

31www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINEprogramming

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 2000In 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 Thunderbird.

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 2000After 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 open-source.

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 projects are seen like something good, that can have a business potential and the quality of them is extre-mely good.

As 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

Page 32: TSM_9_2013_en

32 nr. 9/2013 | www.todaysoftmag.com

Date Event

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 Pac-Man-Like

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 releasedOctomber 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 MicrosoftThere 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 open-source.

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 Description

Reactive Extension Common interface for different data sources (FB, Tweeter, NetFlix, GitHub, etc)

Reactive Extension Allows working with different asynchronous data streams

Phone Gab, jQ uer y Mobile, SQLite, Senqua Touch

Different frameworks supported by Windows 8

SQL Server Connector for Apache Hadoop

Allows data transfer between SQL Server and Hadoop

EF, ASP.NET, MVC, WebPI

Well known frameworks have become open source

VM Depot A catalog of virtual machines for Windows AzureType Script Is a superset of JavaScript that complies to nor-

mal JavaScript.Tabel 2 Open-source projects sustained by Microsoft

Microsoft Open Tech HubFor 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.

ConclusionAn 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-Sourceprogramming

Radu [email protected]

Senior Software Engineer@iQuest

business

Page 33: TSM_9_2013_en

33www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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 organisation.

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 execution.

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

This 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.

business

Page 34: TSM_9_2013_en

34 nr. 9/2013 | www.todaysoftmag.com

managementbusiness

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 flourish.

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 [email protected]

CEO @ Neverfail Group.

The Challenge of Leadership (Part 2)

Page 35: TSM_9_2013_en

35www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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 analystIn 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 analyst?

“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 transparent.

Facilitating answers to the following questions:

“Why do companies exist?”“What are the company’s products and

services and who are they addressing to?”“Who are the customers and the

competitors?”“How does the market evolve?” “What needs to be changed in order

to better accomplish objectives or to meet

All 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 [email protected]

Business Analyst@ Endava Iași

management

Page 36: TSM_9_2013_en

36 nr. 9/2013 | www.todaysoftmag.com

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

requirements;

• considering perspectives;• facilitating conflict among the team; • evaluating the impact, the cost and

benefits.

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, negotiations).

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.

iiba.com), local community (www.code-cap.ro, www.linkedin.com/groups 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!

Source: (“Business Analysis”, second edition by Debra Paul, Donald Yeates and James Cadle; “The Business Analyst’s role” by Allan Kelly; www.iiba.com; www.businessanalyst.com; http://www.bridging-the-gap.com)

managementWho is the Business Analyst and why would I need one?

Page 37: TSM_9_2013_en

37www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

Introduction to Grails (III)

• Custom validators• Internationalization • Tag libs• Url Mappings• Persistence

Custom validatorsIn 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 validator:static constraints = { message size:5..100, blank:false, validator: {val, obj -> obj.messageValidator(val)} }

Then we define the validator method in the Message class:private messageValidator(val) { if (val.toLowerCase().contains(„test”)) { return „test.is.not.allowed” } 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.

InternationalizationMost 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:

• messages.properties• messages_en.properties• messages_pt_BR.properties• messages_ro.properties

For our application, we will use only 2 files:

• messages.properties• messages_ro.properties

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.

Open https://github.com/tavibolog/GrailsSocialNetwork/tree/master/grails-app/i18n/messages.properties and add:message.name=My messagetest.is.not.allowed=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 the internat iona l izat ion

framework• Grails automatically

loads an internationalized reso-urces from messages.properties if not found in more specific i18n files.

S i m i l a r , w e s h o u l d do some changes on the

messages_ro.properties (https://github.com/tavibolog/GrailsSocialNetwork/blob/master/grails-app/i18n/messages_ro.properties ):test.is.not.allowed=Test nu este admis!message.name=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. Open https://github.com/tavibolog/GrailsSocialNetwork/blob/master/grails-app/views/message/create.gsp and look for the string “Message” and replace it with: <g:message code=”message.name”/>. 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 /G r a i l s S o c i a l N e t w o r k / m e s s a g e /create?lang=ro

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 implementat ion lo oks

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:

programming

Page 38: TSM_9_2013_en

38 nr. 9/2013 | www.todaysoftmag.com

l ike (https://github.com/tavibolog/GrailsSocialNetwork/blob/master/grails-app/controllers/com/todaysoftmag/gsn/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: message(code:”error.wrong”, args:[message(code: „error.usernameorpassword”)])])

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 text.

Next step is to define the key and values for the internationalization support in messages.properties:error.wrong=Wrong {0}error.usernameorpassword=username or passwordd

and messages_ro.properties:error.wrong={0} sunt gresiteerror.usernameorpassword=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 LibsTag 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 (https://github.com/tavibolog/GrailsSocialNetwork/blob/master/grails-app/views/message/list.gsp ):

<g:if test=”${session?.user}”><div id=”login”>Hi ${session.user}</div></g:if>

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 files

Let’s extract this as a tag lib. For this we have to create the tag lib class, by running the Grails command:

create-tag-lib com.todaysoftmag.gsn.Display

This will create the tag lib called DisplayTagLib and the associated test file DisplayTagLibTests. package com.todaysoftmag.gsn

class DisplayTagLib {static namespace = „display” def greetings = {attrs -> if (session && session.user) { out << „<div id=\”login\”>Hello, „ + session.user + „!</div>” } else { out << g.link(controller: „user”, action: „login”){„not signed in”} } } }

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

• 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 (https://github.com/tavibolog/GrailsSocialNetwork/blob/master/grails-app/views/layouts/main.gsp ). This is the skeleton than embodies all our pages,

so it seems the proper way to display the greetings:<div id=”grailsLogo” role=”banner”><a href=”http://grails.org”><img src=”${resource(dir:‚images’,file:‚grails_logo.png’)}” alt=”Grails”/></a></div><display:greetings/><g:layoutBody/>

Url MappingsGrails 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.com/tavibolog/GrailsSocialNetwork/blob/master/grails-app/conf/UrlMappings.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”)

„/”(view:”/user/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 application.

Because of these change, our applica-tion looks better now, when accessed for the first time:

PersistenceSo 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 (https://github.com/tavibolog/GrailsSocialNetwork/blob/master/grails-app/conf/DataSource.groovy ).

First step is to define few configuration

Introduction to Grails (III)

programming

Page 39: TSM_9_2013_en

39www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

of the data source, like pooling, driver used to connect, user and password:dataSource { pooled = true driverClassName = „com.mysql.jdbc.Driver” 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 application: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 (https://github.com/tavibolog/GrailsSocialNetwork/blob/mas-ter/grails-app/conf/BuildConfig.groovy ), we add the MySQL connector as runtime dependency: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 saying:| Error 2013-02-24 21:37:48,821 [pool-7-thread-1] ERROR hbm2ddl.SchemaExport - Unsuc-cessful: create table user (id varchar(255) not null auto_increment, version bigint not null, first_namevarchar(10)notnull,last_namevarchar(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 hbm2ddl.SchemaExport - Incor-

rectcolumnspecifierforcolumn‚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 = UUID.randomUUID().toString() StringfirstName 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.

Conclusion

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 framework.

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 time.

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 team.

Bibliography

http://grails.org/documentationhttp://www.springsource.org/downloads/sts-ggts

programming

Tavi [email protected]

Development lead @Nokia

Page 40: TSM_9_2013_en

40 nr. 9/2013 | www.todaysoftmag.com

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.

Bitdefender 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 creation?

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.

When 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.

management

Agile or idle? How to get the support of your

team in a project

business

Adrian [email protected]

Project Manager and Software Engineering Manager @ Bitdefender

Page 41: TSM_9_2013_en

41www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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 trustworthy;• 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 leader.

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 following:

• autonomy – 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 efficient;• mastery – we are born with the

desire of improvement, but when we cannot improve something, we blame a problem;• purpose – 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?

business

Page 42: TSM_9_2013_en

42 nr. 9/2013 | www.todaysoftmag.com

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 programming.

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

OSGi 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.

programming

Book review:OSGi in Action by Richard S. Hall, Karl Pauls,

Stuart McCulloch, David Savage

Silviu [email protected]

Java consultant@ .msg systems Romania

Page 43: TSM_9_2013_en

43www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

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 book.

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 clients.

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 managed.

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 opinions!

Page 44: TSM_9_2013_en

44 nr. 9/2013 | www.todaysoftmag.com

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 do?

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 DONE.

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

BE”• 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 PythonI s t a r t s t u d y i n g PythonI will learn about PythonI will get awesome at Python

I study Python:Frequency: three time a week (Monday, Wednesday, Friday)Schedule: morning, before going to workDuration: one hourSnooze: I can postpone to next dayProcess: 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

HR

The Psychology of initiating and maintaining behaviors

programare

Page 45: TSM_9_2013_en

45www.todaysoftmag.com | nr. 9/2013

TODAY SOFTWARE MAGAZINE

Not helping: Helpful:Design a website Frequency: three time a week (Monday,

Wednesday, Friday)Schedule: evenings from 10 to midnightDuration: 2 hours per session, 3 weeks to

finishSnooze: I can postpone to next dayProcess: 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 certification

Frequency: three time a week (Monday, Wednesday, Friday)Schedule: evenings from 10 to midnightDuration: 2 hours per session, one Saturday every two weeks, 4 months to finishSnooze: I can postpone to next dayProcess: Download manuals, Print manuals and organizeEach session I read one chapter and code the exercises Verify correctness if code is availableSimulate tests every three chapters. Read assessment feedbackReread the content where I have incorrect answers. Re-do the test.Find out what I need for certificationSchedule 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 brainersWe 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: Helpful:Wr i t i n g t h e book!Starting to write!Become a writer!Writing the best book!

Write the first chapterFrequency: Three times a weekTime: two hours per session, 3 weeks to finishSnooze: Postpone to next dayProcess: 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).

programare

Antonia [email protected]

with 10 years of experience, psychologist, consultant as an entreprenour

Page 46: TSM_9_2013_en

46 nr. 9/2013 | www.todaysoftmag.com

Gogu and Agile

- 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 voice.

- 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, [email protected]

Owner al Confucius Consulting

misc

Page 47: TSM_9_2013_en
Page 48: TSM_9_2013_en

powered by

sponsors