Agile methodology selection criteria: IT start-up case study

Project management in modern IT companies is often based on agile methodologies which have several advantages compared to traditional methodologies such is waterfall. Having in mind that clients sometimes change project during development it is crucial for an IT company to choose carefully which methodology is going to implement and is it going to be mostly based on one or is it going got be combination of several. There are several modern and often used methodologies but among those Scrum, Kanban and XP programming are usually the most common. Sometimes companies use mostly tools and procedures from one but quite often they use some of the combination of those methodologies. Having in mind that those methodologies are just a framework they allow companies to adapt it for their specific projects as well as for other limitations. These methodologies are in limited usage Bosnia but more and more IT companies are starting to use agile methodologies because it is practice and common not just for their clients abroad but also starting to be the only option in order to deliver quality product on time. However it is always challenging which methodology or combination of several companies should implement and how to connect it to its own project, organizational framework and HR management. This paper presents one case study based on local IT start up and delivers solution based on theoretical framework and practical limitations that case company has.


Introduction
Modern software development is, to a greater extent, based on applying some of the agile methodologies, among which particularly highlights the Scrum. Agile methodologies are accepted in the IT companies in a large scale and usually result in better delivery of products and greater efficiency and effectiveness in the developing world.
However, there are no "complete solutions" in selecting the methodology. Defining the appropriate methodology and its adaptation to the particular company is, on many occasions, really serious process and requires an analysis of the company itself, employees, the product concerned but also the plans for the future. It is the basic motive for this paper -an attempt to define criteria in the selection of the appropriate methodology in software development in the IT companies as well as the factors for assessing the success of the application of that methodology.
However, the introduction of some of the agile methodologies, to a lesser or greater extent, depends on certain preconditions that must be met. Theory knows the common prerequisites but they may vary somewhat from region to region, company to company, and of course of the types of project which is expected to implement specific methodology. Also, the success in the implementation of the methodology depends on a number of factors, from organizational to physical. It is also part of the issue concerned in this paper. In addition, the performance of applications is greatly determined by the profiles and characteristics of individuals who perform key roles in the team. For example, in scrum, as the most spreadable methodology, these roles are Scrum Master, Product Owner and team members. Each member of the team should possess certain traits that make application to be successful. Identification of these characteristics, based on the opinion of experts with experience in dealing with the scrum, is one of the goals of this paper.
The introductory part of the paper provides a basic clarification of concepts of agile software development, with an emphasis on scrum as the most common methodology that has shown the best results. The second part of the paper gives a preview of study case with local IT start-up with provided solutions to specific issues that this start up is dealing with.
The methodology used in the preparation of this paper includes: A review of literature in scientific areas as well as the use of technical literature available on the Internet (web articles, newspaper articles, tutorials, etc.), Business case study on the selected issues and provided solutions, Materials from specialized scrum master training held in Banja Luka in February 2015.

Agile methodology
Agility, based on the Cambridge and Oxford dictionaries, is defined as the ability of fast and easy movement, but also of thinking, acting and problem solving. For these reasons it is not hard to conclude why exactly that word was part of the name of specific group of methodologies, which are characteristic for the modern software development. Agile methodologies include whole set of methodologies and they are often intertwined or used combined with ones which are traditional in the IT companies that are focused on efficiency and effectiveness in the software development. As a priority and crucial issue by the agile methodologies, but also by traditional ones imposes collecting and defining requirements, that are often immeasurable, imprecisely defined and without limitation by time or space.
The application of the agile methodologies in companies, as a PriceWatersCoopers states [1], is work with high risk in deadlines exceeding and delaying the launching of the products in companies with little or without experience in the a application of agile methodologies. Selecting an appropriate framework for the software development can be of crucial importance in efficiency, as well as the effectiveness of business, but also in achievement in defined deadline of the taken commitments. The appropriate framework and approach can enable the success through collaboration and work with stakeholders. Modern and global business, considering the fact it changes fast, requires high level of flexibility and acceptance of modern tools and business modes.
Regarding to these reasons, it is not strange at all that agile methodologies are highlighted as a most accepted methodologies in software development, because they enable high level of flexibility considering the collaboration with all stakeholders. This is really important in IT companies, which are focused on software development, because their business requires high level of compatibility between technology and operating, which is not quite often in the other areas. As PwC states in its research [1], the importance of the agile methodologies we can easily notice through statistics, but also through Gartner's and Forrester's prediction: in 2000 less than 1% IT department knew what the agile methodologies are, nowadays between 60 and 80% of developing teams use this type of methodologies as the primary in the software production. Also, they predict the continuation of the tendency of popularity of the agile methodologies, and increment of use this type of methodologies in software development. However, same study cites the fact that despite using the agile methodologies in high percentage, same can't afford objective results without quality basic management by planning and communication.
The initial focus in the agile methodologies is on what should be the result or outcome of software production; also they are less focused on the way how to get it. Regarding to this is the fact that, in the prior methodologies, the requirement and the characteristics of the expected product were defined often incorrectly or imprecisely, which eventually led to wasting time on something which wasn't client's requirement. The agile methodologies focus on the precision definition of the requirements, so the time and energy of team would be invested in the creation of the appropriate product and/or service that is also expected. Through iterations, team improves the way how they get the desired product, but also team increases own efficiency in the precisely definition of the activities, stakes, deadlines etc. But also, it is really important how the expected product is defined and precision, which certainly work on definition of the methodology (specific way of software development) makes easier. Also, involvement of team in the process is really important, because that helps them to figure out what type of product is about, or what characteristics should it own.
The main objective of the agile methodologies in the process of collecting and defining the requirements and distribution through iterations, is improvement of the communication, work compatibility and but also involvement of clients from the beginning, so the objectives and needs of the organization could be achieved.
Ola Sundin in his brochure -Scrum in 5 minutes‖ beside Scrum as the most popular agile methodology cites also Kanban, Extreme Programming (XP) and Lean Software Development noting that all of them can be combined and applied together: Kanban for the effectiveness issues, Lean for defining of principles for development of the organization, Scrum for organization and planning of the projects, and XP as an operating methodology that is based on 12 principles [2].

Most popular agile methodologies
The most wide-spread agile methodologies or by variation of access, management style and methodology, are, by group, author of the book "Learning agile" [3]:  Scrum  XP -extreme programming  Lean  Kanban Ultimately, each of these four methods are possible to implement on its own but the agile approach to software development in modern IT companies includes the variation of some or all of the four approaches. Therefore, it is frequently encountered that IT companies use Kanban and work on a selforganized teams of scrum. Also, XP is often utilized with Scrum and often, especially in societies such as Japan, the Lean philosophy is applied with any of the other agile methodologies. According to The VersionOne State of Agile Development in 2013 the most popular agile methodologies is the scrum. It is followed by a hybrid of Scrum and XP, then customized individual hybrids and the fourth place is certainly a variation of Scrum and Kanban, the so-called Scrumban [4]. Stellman defines agile in the following way: "Agile method is you and methodologies that help team to think more effectively, work more efficiently and make better decisions" [3]. The same author further states that these are practices that are directed and optimized to maximize flexibility [3]. Also, agile is a way of thinking and acting team, particularly in scrum, where self-organization is one of the priorities of the functionality and operation. Most of the values of the agile software development are contained in the Agile manifesto [5] although different environments and conditions require different practices and preparations from different approaches.

The requirements collection: traditional vs agile methodologies
Considering the speed at which technology is being changed, but also the effect of same on business, especially business of IT companies, it's not hard to conclude the importance of the organizational adjustments and continually improvement of work. Modern business requires improvement of connectivity and collaboration with clients or users, often through the use of these modern technological tools.
The use of technology becomes part of modern market competition, often a crucial part of business strategies of the companies. Continual improvement became the requirement for the companies when keeping their market position, or eventually improving it. The application of the agile methodologies, beside their popularity, can be harmful for organization (too complicated or too confusing). This is partly justified, because of the process of transition from the traditional methodology, which is concentrated around the documents, and is quite define in advance, to methodology, which is focused on the requirements of work and the effectiveness of it as well.
However, the traditional methodologies, such as, for example Waterfall are characterized by -separation‖ of phases, and lack of communication from one phase to other, often lead to development of software, which doesn't match the need of client. On the other hand, possible re-start of the process can be too long and too complicated, which may cause dissatisfaction of clients, but also dissatisfaction within organization. In the Waterfall in the initial phase, we have an intensive and often long process of collecting of requirements, however at the of this phase, communication with client and business analyst almost stops, which disables changes in the requirements, that are often appear in the process of development. Abundant documentation, as a result of the phase of defining the requirements is forwarded to the development team, but also is being forwarded through the phases of development, also leaving the possibility of different defining of initial need of the client.
Within the team there are usually different definitions of what is actually the requirement of the work, which leaves possibility of different interpretation, and inharmonious work. That brings as to crucial flaw of the Waterfall methodology, but also of the other traditional methodologies: lack of communication and precision in the work, which ultimately can lead to delay of the product launches but also much lower quality product that does not meet the requirements of the client.
Involvement of the team in development from initial to end phase improves their understanding of the expected product, which affects, not just the efficiency in the work, but also it increases the quality of outcome of the work.
On the other hand, the goal of the agile methodologies is the more quality launch of the product through the promotion of collaboration, and teamwork through the incremental process and optimizing of resources and the budget.
The agile methodologies have main requirement to improve the speed of reaction, also to increase precision in the definition of the requirements, which at the end should give a result through distribution of the products, which are optimally meet the client's requirements. However, although the agile methodologies initially arose from the need for greater flexibility, it doesn't minimize the importance of the existence of the structure and the project planning. In fact, the project planning and the definition of stakes, the scope of work, and time limits are even more important in the agile methodologies, but in a different way than in the traditional methodologies.
The agile methodologies divide whole expected scope of the work into the small parts, known as "EPICS". Epics define the crucial segments, which are necessary to develop through the project. Epics are further divided into the smaller parts of the work, usually called -STORIES‖, within which are defined special tasks -TASKS.
Definition of the individual and mutual conditionality, which are for sure very important in the implementation of the project, is crucial in the agile project planning. Also, it is very important to determine correctly and precisely the priorities in the work, for what are especially interested in team members. Determination of the priorities is mostly caused by the requirements of the work, but also by the continual communication with clients, as a characteristic of the agile methodologies.
At the end, we have SPRINTS, which represents time sections through which we implement epics and stories. Sprints are usual in the Scrum agile methodology, although they are different named and appear in the different methodologies.
Members of the project team in the agile methodologies must have common and precisely understanding of the project which they work on, that is partly achieved through their daily involvement in the project planning, determination of complexity of the tasks etc.

Criteria for selection of the appropriate methodology 4.1. The relationship of the methodology, organization and selection criteria
Each methodology carries certain qualities but also threats. The important thing that matters for the organization is to predict that there is no single solution to a potential issue and that each situation requires a special approach and further consideration. Sometimes, outdated methodologies, which are not adjusted for modern way of doing business, can be appropriate in some situations, whether combined or used independently. The choice of methodology, among other things, greatly depends on the size of the organization, the type of technology used, the style of management, and the structure of employees, locations, companies, clients/users and a number of other factors that need to be taken into account. Additionally, the choice of methodology is followed by the application that can identify whether the methodology is relevant or the modification is necessary. The application can also show that the management team or the organization as a whole is too rigid and inapplicable and that the changes cannot be implemented.
Overall, methodologies can be grouped into four larger groups [ Other methodologies (spiral, PAPER and similar). The above mentioned work has advantages and disadvantages of each of them. Among other things, linear is recommended for teams with less experience as well as an organization in which management has no experience of running projects. Also, it is recommended when the system can easily measure progress. However, taking into account its rigidities, heaviness and high control it is not recommended for projects that require quick response and those exposed to frequent changes of priorities and tasks.
What the study States [7] should not be used in real-time systems, conditioned systems and leading-edge applications. Prototype development is specifically recommended for the development of a system for unknown clients as well as with systems where the team members are experienced in preparation and launching the products. However, this methodology is not recommended when resources are limited, and when they are demanding strict control of deadlines of execution i.e. final product launch. Incremental development is recommended when there is a need for reducing risks through the "breaking" of the overall job into smaller parts where eventual failure of one does not reflect as a failure of the whole project. Some consider this methodology as a combination of two preliminary because, for each process, partially or fully controlled and planned process is implemented as it is in linear methodologies.

A review of the criteria for selection of the appropriate methodology
Caper Jones, after their research, states that "... the choice of methodology development has more in common in association with the cult of technical decision making. ..." [8] which stresses that the process of selecting the methodology, as part of a managerial decision, is classified in the area of work of social sciences that by themselves are more subjective and less precise than technical. Daniel Krige, site leader in AWS support in Amazon Web services, lists several criteria that got the survey [9]:  Clearly defined risks  Defined the scope and complexity of the work  "Maturity" (if the client recognizes his own needs)  Development costs  Relations on the team  The flexibility of the interested parties  Experience team  Necessity of documentation  The complexity of the applications/systems  The size of the application/system  Security environment  Team size  Knowledge of technology  Programming languages used  Contracting costing methodology and  The impact of the unit (if the project develops within the larger enterprises in the IT Department).

IT start-up business case study: Logica Technology, Banja Luka
In order to get valuable information regarding my research I tested above mention in case study of an IT start-up, Banja Luka's company Logica Technology. New investor (after investment one of two partners) is adding one new extra focus: creation of web platform for online gambling and casinos (CS furthermore) because he has already has some experience in this industry abroad. Investors main focus of the work is on-line media, marketing, SEO, specialization in one type of portal, content management, organization of port of the company, HRM and general management. Another partner, the one who has CBS previously is expert in WP technologies with very good knowledge of other technologies (HTML, CSS, PHP etc.) and his focus is continuation of the WP theme work and cooperation with technical and design part of the company.

Condition of the company in the time of interview
Company has two main streams:  Word press themes (+eventually other themes such are HTML/CSS) and  Development of the new online service for advising on gambling, casinos and CS. First stream is consisted of several smaller scale projects with 24/7 need for client support. Development of CV platform is a long term internal project and there are no specific clients for this one -it is completely rounded by second partner in company. There are not specific deadlines for CS stream. In time of the interview only WP stream was profitable and although it produced small income it was still the only profitable stream so far.

Resource and condition of the work
Company has excellent working conditions. Employees are using adequate space in center of the city, 115m 2 , and they can use similar underground space almost same size. Space has a small kitchen, two toilets and several balconies. Lighting is good and it secures successful work with no obstacles. Space is organized in four offices, different size and Management of the company has praxis to have joint activities and improve motivation and cooperation during and after working hours.

Employees
Having in mind the company's streams, there is a need for employees with certain profile and working experience: front and back-end development, content management/content creation, web editing, and design. Formal education of the employees is variable and does not fully correspond to the scope of the company however formal education often has small importance for the success of the company itself. Profiles of employees, by education, include: electrical engineers (self-taught in IT) graduated journalists, foreign language bachelors and economists and lawyers (graduates). The company has hired a modest team of developers and so far one senior designer.
Positions inside company are: front/back-end development & programming, content management and consulting, web editing and editing content for the portal in different languages and design. In addition, there are also regular general functions such as management and general administration.
The organization of the working and space in time of the interview was following:  One co-owner (co-owner A onwards) is focused on the development and maintenance of WP (HTML/CSS) stream. He has relatively regular meetings with another co-owner. Most of the time he is working with developers and designer. He is in the office 3 with the designer and one front-end developer and works closely with developers and translator in the next office 4.  Co-owner A is primarily engaged with WP theme: communication with existing clients as well as developing new ones, having in mined the potential for high profitability of the same. A smaller portion of time he is devoted to strategic planning and the organization of the rest of the company which is largely left to the other co-owner.  The other co-owner (co-owner B onwards) is in the office 1 with company's lawyer, and he is in charge of general affairs and administration. There are also two experienced journalists, responsible for the organization and management "journalistic team," which is consisted of eight foreign language teachers, translators and "content creators‖ (who are in office 2, which is also the largest in the company).  Co-owner of B is devoted to ideological and conceptual development of CS web services doing most of the time things connected to SEO and creation of the content. He left direct communication and organization of the journalistic team to two experienced journalists that are with him in the office. In the time of interview, most employees were working on the development of CS web services and few have been working on the development and maintenance of WP themes.

Proposed solution
Given the fact that the company has two base streams the first suggestion is certainly the introduction of scrum in both development teams. Of course, before that it is necessary to precisely define who constitutes the teams and who performs the general function of project management as well as management in general.
The process of change would consist of the following steps: • Precisely define the management team • Establishment of two development teams: WP team and CR team • Define the roles in both (scrum) teams • If necessary: additional training for those who take roles in scrum teams • Define the period for the introduction of the new methodology, after which a comparison will be made (the need for the continuous measurement of effectiveness, efficiency and employee satisfaction) • Start with the full implementation of the scrum • Define the period of performance evaluation and the need for additional changes.

Management team
The management team in this solution would consist of two co-owners, lawyer and senior journalists (one for every of two teams). Co-owner A would be part of the WP team while the other should stay outside the CR team because it would be desirable CR team sees him as a "Client‖. This would leave him more time for general management issues, HR issues, marketing, SEO and similar. It should be consider hiring an additional employee (psychologist, or economist) for Human Resources management. WP team WP team would be consisted of: co-owner A, 3 developers and 1content manager/interpreter. Roles in the WP team: co-owner A would be the team leader who would carry out fully-functions of the Product Owner, 1 front-end developer (N., a girl, with a good reputation and communication skills) would be a Scrum Master and ensure that the scrum process function smoothly and that the satisfaction of the employees in this team is satisfactory. It should be consider employing a QA (which could be QA for the other team too) and additional developers, given the potential revenues that this team can accomplish. It should be consider employing intern developers. CR team CR would be consisted of: 2 journalists, 8 associates for content. Roles in a team: a journalist, which is part of the management team of the company, would in this team be a Product Owner-a (conclusion based on the basis of good cooperation with the B co-owner), and second journalist would be a Scrum Master.

Company organization and functions
Strategic meetings should be organized at least once in two months in order to define further steps. Additionally, at the end of each month there should be an evaluation meeting in teams and then in the overall company in order to improve business processes and trigger further change.

Conclusion
Agile methodologies especially scrum as the most widespread and the one that gives the greatest effect, are an integral part of contemporary IT companies. Bearing in mind that it is largely confirmed that scrum or other agile methodologies ensure a well-functioning systems and processes, with a focus on people and the outcomes. It is reasonable that more and more companies recognize their quality and usefulness in the application.
However, the introduction of agile methodologies in itself does not guarantee the success of the process and work of the organization itself. Classic elements of management, organization, management of human resources and technical quality of work are certainly a prerequisite for the success of each company including IT start-up focused on the development of software and information systems.
Additionally, one of the main advantages of these methodologies is to continuously work improvement which is provided through meetings of classic scrum. These recommendations are actually taken into account and usually become an integral part of the process and the quality policy.
Through this paper there is a review of literature on this subject and the scientific field and preview of the basic characteristics of the agile based on the scrum as the examples of agile methodology. Through a case study I wanted to make an analysis of the work and the organization of smaller IT company in Banja Luka and on the basis of the data obtained make proposals variants and ways of introducing scrum into their daily work.