Vous êtes sur la page 1sur 10

Yourlastname 1 Student Name Professor Name Subject 13 October 2012 The Issues Surrounding the Coding of Software The

recent decades of intensive growth within the computer technologies industry have proven the assumption of the increasing need to estimate the sum of resources and knowledge incorporated into the software development processes. If take a look back, when computer programming was a subject to an individual contribution not necessarily connected to the other points of view and coding approach, the software development today is a global industry, where representatives of various cultures and behaviors closely collaborate in a global business environment. This transition has brought the human kind to a significant need of implementing new methods of both scientific and technological support vital to the software development in groups. Additionally, the assumption of possessing multiple programming techniques and languages, complex coding algorithms and even system analysis and forecasting methods seems to be not enough to become a member of a talented software developers group. One should not simply understand the basic principles of economics, management or finance, but at least to feel the way how certain business processes in software development environment work, as well as to learn the full cycle of organization methods and approaches, accepted through the particular group of developers. The last but not the least, those developers could be geographically dispersed through different locations, which bring additional complexity to business processes understanding. Considering the above, this paper addresses the problem of software coding

Yourlastname 2 within a team environment, the main issues surrounding it, the core reasons and the assumptions on how the process could be executed more efficient for particular team members. To achieve this goal, the paper is organized in several parts, which provide the background of the research, the focus areas like industry conventions, in-house coding rules and management software, the learning from experience section and, finally, further assumptions and recommendations, targeting to identify best practices when it comes to group development of software.

BACKGROUND To understand the way the collaborative software development paradigm evolved into a best practice option for delivering sustainable results within complex coding projects, we will assume the February 2001 as a key milestone to understand the change. It was the month when the worldwide statement and principles of agile development were accepted after the meeting of devotees to simplified methods of programming, which initiated the roll-out of collaborative development and simplified approaches to make the code easier to understand for diverse cultures and groups of different educational background (Dave, T., 2005, 14). Still, the initial approach intended to describe how modern requirements of cross-functional knowledge are important for team software development started being researched much earlier. Understanding the idea of iterative and incremental development applicable, summarized as agile development today, Larman and Basili describe several government and commercial projects, existed or deployed starting from 1950s (Larman, C., & Basili, R. V., 2003, 47). Later researches indicate the further evolution of the idea. As cited in Larman and Basili,

Yourlastname 3 If the computer program in question is being developed for the first time, arrange matters so that the version finally delivered to the customer for operational deployment is actually the second version insofar as critical design/operations areas are concerned. (48) This two-step versions approach later evolved into the waterfall model known as the series of iterations in software development process, essential for the further formation of both project management in information technologies and collaborative development in team environment. Further observations by Larman and Basili refer to the projects of 1980s, where the idea of short iterations and more frequent communication and review with customers becomes more obvious (51). Many discussions on the relevance of existent models and approaches in using the idea of incremental and iterative development become fundamental for programming techniques. As a result of the described facts, the interest to the topic risen significantly in 1990s with the increasing need to design certain systems requiring significant attention to the steps taken through the development life cycle. However, the development period for these projects appeared to be longer than expected or took significant risks, as shown by Larman and Basili on cases for Canadian Automated Air Traffic Control System and project of building a large logistics system in Singapore respectively (54). Consequently, this led to a formation of certain groups within programmers who either anticipated or confronted the principles of iterative approaches. First group capitalized on effectiveness of the ideas evolving in parallel with programming and customer reviews. Second group focused on the initial purpose of software development of following the initially planned steps until the end. As seen, the acolytes of the first one were the initiators of agile development

Yourlastname 4 principles, later transformed into a generation of people and set of processes reviewed under this research.

TEAM DEVELOPMENT ASPECTS The agile development, despite the benefits of the concept, usually is not an explanation to the way modern group of programmers approach the code and the problem they try to solve. One could be a master of object-oriented programming concepts but in the same time is not experienced in data mining and related techniques for database administration and sourcing. Comparing with a chain of processes required to compile and build into a huge infrastructure of collaboration and result, the particular knowledge and approaches are not a subject to the overall success. As stated in the introduction to the paper, it is more than programming it is as set of knowledge, visions and complex understanding of how to reach the destination through the coding process. The software development within a team environment is mostly focused on the following issues and problems, existent for one business environment but easily differentiated with others.

Industry conventions. The most challenging requirement for the group of developers is probably following a preliminary designed set of rules and guidance on how to write, compile and implement code. Apparently this was described in a previous section related to the waterfall model. Corporations and industries, as born process-oriented organizations, are strictly focused on how the mechanisms within the company should operate in order to bring a profit and stay in touch with customers or clients. The issue is usually about being incompetent to provide a

Yourlastname 5 sustainable solution for teamwork environment, focusing at front office operations and extra pressure for back office, where usually information systems experts are allocated. A good example of how both principles of agile programming, collaborative environment and corporate culture are combined together is described within the study of Highsmith, who compares the software development with an ecosystem. The key statements are described as individuals and interactions over processes and tools, working software over comprehensive documentations, customer collaboration over contract negotiations and responding a change over following a plan (Highsmith, J., 2002, 8). As a primary focus the study bring to a conclusion that the certain methods of separate coding would not be applicable for highest goals which business usually preserves, as well as the coders should be symbiotic to the end customer versus process oriented to the plan.

In-house coding rules. Further expansion of the idea is related to a certain principles within addressing classes, objects and other data pieces vital for a collaborative programming. The key idea could be summarized that often the certain objects of existent realm could be represented through the set of data models, given their collection at different times and scales and requests for specific data quality (Volz, S., Walter, V., 2006, 41-49). It means that a single skilled programmer while operating with a problem modeling imagines the scope differently than the other one with a different experience and vision. If take a much bigger group, those vision will certainly create a problem of unified understanding of how the problem should be at least approached and solved, skipping the winning opportunity of identifying the further path to avoid misunderstandings in future.

Yourlastname 6 Multinational corporations normally try to solve the issue by creating teamspaces the portals for group collaboration where an assigned project group shares various ideas how to solve the problem before start working on a separate pieces of the code. This includes programming techniques, coding language, available instruments (e.g. the list of licensed software), cross-functional expertise and trainings etc. Still, without a preliminary briefing this might be difficult to get acquainted with if not accumulated through cultural differences and previous coding experience.

Management software and personal biases. The last but not the least complication in team development is a thorough understanding of the requirements for the end product. The code could be produced in a working manner for a local machine but if not testing outside and relying for the working program settings and configuration, the issues might be an obstacle. That is why the increasing importance of testing methods is now a part of collaborative development paradigm, focusing on management software, customers biases and other important factors.

LEARNING FROM EXPERIENCE The described above issues were applicable for a particular project work during a university course dedicated to a preliminary understanding of how the group development could be beneficial for business process learning. I was involved in a small team of classmates briefed to create a project focused on a topic of software applications for business profit. The group was created randomly, most simply because of the same educational and cultural background, still, with a different scientific perspective. The alignment was to focus on a product which could be a

Yourlastname 7 successful profitable start for further investments, therefore the area of entertainments was chosen. The primary idea was to create a browser-based computer game which will be focused on applying Flash MX programming plus 3D modeling via any available instrument. Supplementary requirements indicated sounds modeling, implementation of user-friendly installation wizard and further testing presentation. The core problem indicated after completion of the task was in skipping the project planning step. Each of programmers involved into the process possessed different level of programming skills and various types of tasks. Moreover, the task was closely related to gaming industry which is now a best in class example of how coding, visualization and final testing should be unified under one separate development platform, coordinated by a team leader or an expert. The evaluation result was positive, still, the number of learning, useful in frames of the topic this research paper addresses, are highlighted in the below section.

ASSUMPTIONS AND RECOMMENDATIONS Above sections provided a solid background on how the idea of customer-oriented programming evolved to an agile concept and what are the main issues of smooth transition from agile to collaborative. This section is primarily focused on the recommendation and vision of the prospective approach on focusing a software development team on a particular task, which could be beneficial for the final outcome: Project scope definition

This step explains the importance of proper planning and exact tasks which are intended to be addressed by the executive group. The maximum results will be achieved only in case the

Yourlastname 8 problem is assessed correctly or the scope is bigger and allows to imply the high spectre of programming skills and experience. There is a sense of producing a set of short meetings where the executive group members will get acquainted with a problem, ask questions, and familiarize themselves with an important set of documents like project scope, project deliverables and expected results; Executive group formation

The best option is to generate a brainstorm across the executive group on what resources (apparently, team members) one would like to see during the completion of the project. Normally, there should be a facilitator who fixes the major skills required for the project, asseses the group of candidates eligible under project requirements and shortlists the final project team members. If there are several topics, those could be ranged among all available resources and composed into a several groups. It is also important to define a team leader an expert who is both an interpersonal savvy and technical expert, able to direct and guide a group of executives able to collaborate together. Project execution planning

During this step the most important is to evaluate the way the project will go on. The group development software should be the best option to start working on the ideas and further approaches. Certain collaborative development environments like LibreSource, PHPGroupware, GForge could be estimated as winning solution for the university students and graduates trying to start working on team software development. Complex project execution

This recommendation is based on the revised in above sections principle of applying various teamspace environments, wikis, unified templates for coding, database relationships models

Yourlastname 9 etc. More detailed recommendations could be proposed in further researches focusing on project types, executive profiles, particular programming methods and the overall midcourse corrections. Summarizing, this paper attempted to indicate existent problems of groupware development a process, evolved about 60 years ago through the chain of economical and technological approaches. It brings to a conclusion a process of establishment of unified coding approaches within different cultures and business environments.

Yourlastname 10 References Highsmith, Jim. Agile Software Development Ecosystems. 2006. Available at: <http://www.docin.com/p-311678475.html>. [Accessed 10 Oct. 2012]. Larman, Craig, & Victor R. Basili. Iterative and Incremental Development: A Brief History. 2003. Available at: < http://www.docin.com/p-352236138.html> [Accessed 12 Oct. 2012]. Thomas, Dave. Agile Programming: Design to Accommodate Change. IEEE Computer Society. May/June 2005. Available at: <http://martinfowler.com/ieeeSoftware/accChange.pdf>. [Accessed 12 Oct. 2012]. Volz, S., & Walter, V. Linking different geospatial datahaxes by explicit relations. Geoinformation Science Journal, 2006, 6(1), pp. 41-49.