Friday, November 9, 2018

ITERATION ONE ON CORE JAVA


Introduction

Core Java is a computer programming language that serves general purpose computer programming. The programming language is specifically object-oriented, class-based, and concurrent among other attributes. Its design is specifically aimed at having few implementation dependencies. Its primary intention is to let the application developers write the program once and test it anywhere without limitations. This means that compiled core Java code can run on almost all the platforms that support Java without requiring recompiling. Java-created applications are compiled to bytecode that has the capabilities to run on various Java virtual machines (JVM) without the need to worry about the architecture of the computer. Since its introduction, core Java, has been growing in popularity as one of the most used programming languages. It is mostly used for client-server web applications. More than ten million developers have developed applications using core Java as of 2015. Core Java borrows most of its syntax from C and C++. However, its level facilities are lower than both C and C++ (Flanagan, 1999). 
 

            Sun Microsystems are the original developers of Core Java through James Gosling. The company released the programming language in 1995 as a primary component of its Java platform. The company also released the initial and reference implementation virtual machines, class libraries, and the compilers under the application proprietary licenses. Core Java has continued to evolve since its first introduction and implementation. Its latest version is Java 8 which has a free support from the Oracle. However, other versions have either Oracle or other companies support or both on a commercial basis. This is not the end because there are every signs and possibility that core Java will evolve further.
            Core Java works on principles thereby cementing its supremacy and authenticity. Every developer should, therefore, stick by them for successful core Java programming. The principles are also the goals of the programming language that became the pillars of its creation. The five goals are (Groce&Visser, 2008):
·         The language should be familiar, simple, and object-oriented
·         It must have security and robustness
·         Its execution should be high performance
·         It must be easily interpretable, massively dynamic, and threaded
·         The language should be easily portable and neutral to architectures
            There have been nine major releases of core Java by the time core Java 8 was being released. Surprisingly, core Java 8 is the only version that is supported publicly. Some of the major releases are JDK 1.0, JDK 1.1, J2SE 1.2, J2SE 1.3, J2SE 1.4, J2SE 5.0, Java SE6, and Java SE7. One of the commendable features of the above core Java versions is portability. It means that all the programs developed purposely for Java platform run similarly on any set of hardware and operating system with enough support of runtime.
            I will be attached to a software development company as an intern in software development using core Java. My primary aim as an intern is ensuring there is a significant improvement in the overall process of software development life cycle (SDLC). I will conduct my software development duties vigorously and diligently to reduce the time it takes to develop computer applications and software. The changes are important to the stakeholders in the development of software and applications using core Java. Most quality assurance teams fail to implement such changes. Additionally, active participation of all the various stakeholders will authenticate the development process and energize it for positive effects and efficiency. Therefore, I will also be tasked with mobilizing every member of the development team to make it a possibility (Williams, 2006).

Methodology

            Action research is a research methodology in practicing and conditioning of research activities in the research field and in the places where researchers are conducting the research. It largely and mainly involves the collaboration of researchers and various stakeholders in an attempt to ensure that there are strong objectives and suitable ways through which those particular objectives will be accomplished. The improvement in the researcher’s practices leads to simultaneous improvement of the environments in which the action research is taking place as well as the society that is the part of the environment (Feldman, 2007).
            Through communication between the researchers and between them and the society and close observations, they can make comprehensive and informed decisions about the topic of research in hand. This helps them in coming up with the most suitable research methodology and tools to use in improving the societal or organizational problem at hand. This improvement also helps them to make significant improvements in their research practices. Studies have shown that action research does not embrace neutrality. Therefore, it means that each of the participants in the process of research should participate actively. This leads to enhancement of comprehensive understanding of the problem and the topic of research as well as the approach that will be employed in solving the problem.
            Action research is a brainchild of Kurt Lewin. The German psychologist developed action research in 1946 during one of his several research works in the community and concern with social problems in his community at that time. His main focus was on the participative groups that would enable him to address the crises better, positive changes, and conflicts either within the society or the organizations. The term action research first appeared in one of his works titled “Action Research and Minority Problems” in 1946. He thought action research as a comparative study of effects and conditions on different types of research and social actions that would later lead to social action. Kurt Lewin’s imagination of action research had spirals with each having repeating steps where each step was made up of planning, action, observation, and reflection. He defined reflection as fact-finding about the outcomes of the action. Action research continued to develop in each generation of researchers (Lewin, 1946).
            Eric Trist used action research in later years for the purpose of improving it where possible. Both Kurt Lewin and Eric Trist emphasized on active and professional collaboration between the researcher and the client. Additionally, they advocated for embracing of roles in group relations as the cornerstone of problem solving. Action research took a serious and positive growth in the 1970s. Many researchers started applying it in their works thereby improving it and have since developed to what is being used today.
            According to Kurt Lewin in the above discussions, action research is a four-step process. The four steps are planning, action, observation, and reflection. The four steps follow one another in that order. They are also conducted iteratively until the researchers meet the goals of the research and come up with a suitable solution to the organizational or societal problem at hand. The researcher engages in data collection in the planning stage. He analyzes the data and moves on to the next stage of action. He conducts the planned action while borrowing much of the action from the planning stage. The researcher then proceeds to the next stage of observation. He notes down his observations in the planning and action stage. The researcher may now proceed to the fourth and final stage of reflection. The researcher reflects on several things such as what went well and according to the plan and what might not have gone well and the improvements required in the next iteration (Kidd &Krai, 2005).
            I will use action research in my position as an intern to conduct research process in software development using core Java. Using action research is a sure way through which I will gain software development experience and skills. The skills will not only be beneficial to me but also to the company where I will be attached. Action research will ensure active and motivated participation of the researcher and other members of the team in the process of software development. Application of action research will also give me freedom and opportunity to engage fully in the development of other software in the company in the future or as soon as the company will need my services. This full participation and engagement in software development will have positive and significant effect in my practice as a software developer. I will also improve my human relation skills and appreciate what software development career offers (Lather, 1986). 

Literature Review

            Core Java, Java programming or simply Java is a widely used and robust technology for software development and creation of applications. Therefore, Java is both a programming language and a platform. On the other hand, a platform is any hardware or software environmental setting where software developers run their programs. Therefore, since Java has its own environment (JRE) and API on which it runs, it is referred to as a platform. A person who might not have encountered Java might want to know where Java is used. According to the studies, there are approximately three billion devices running on Java. It means that there are many devices around the world where Java is currently being used. Some of the devices where Java is being used are (Levenick, 2006):
1.      Desktop applications like the acrobat reader, media player, and antivirus among others
2.      Several web applications such as javapoint.com
3.      Mobile phone devices applications
4.      Robotics
5.      Embedded system

Types of Core Java Applications

            As has been seen in the description above, Core Java is a programming language that is used in the process of developing systems, software, and applications. It develops that have the capability of working on the local machine and the Internet. The most known features of core Java is that it is object-oriented, and it works across all the platform languages. Therefore, there are various categories of programs which Java can be used to develop them such as (Russel, 2001):

Stand-alone applications

            An application is a type of program that runs on a PC or any computer under the OS such as Windows, Mac OS, Linux, or Android of a computer or a mobile device. The process of creating an application in Java is similar to creating a program using another programming language. A stand-alone application can either be a graphical user interface (GUI) based or console based. Console based Java programs are the types of programs that run on being prompt by a command. Furthermore, such programs do not display any screen based on GUI. The output of such programs is console-based (Fain, 2011).

Web Applications

            Web applications are the Java applications whose nature is based on the web. They are simply web-based, and they require a web browser to execute them. The web-based Java applications use a Server to store data. Every time a user sends a request to have the application executed, the user request is passed on to the server for an appropriate reply. Web-based applications come as an Applet or a Servlet.
·         Applets: These are Java programs that cannot work in any other environment except on the Internet. Therefore, they are specifically created for that purpose. These programs run through a browser embedded with a Java such as Firefox, Chrome, Internet Explorer, and Netscape among others. Applets are created through any Java development tool. It cannot work on the Internet without it being contained within a web page. Java Applets programs include games developments and visual effects among others (Gladychev, Patel, & O'Mahony, 1998).

·         Servlets: Java is also appropriate for development of web-based n-tier applications. The Java Application Programming Interfaces (APIs) on the server side address the program processes and request of the client’s response. The server sides APIs extend their capabilities of the standard Java APIs and are referred to as Java servlets or server side applets. An HTML processing of a form is a simple use of servlets. The servlets can also process databases as well as performing server side transactions. Servlets execute through web servers (Hunter & Crawford, 1998).

Distributed Applications

            Distributed applications require a server to run. Additionally, the applications use several servers simultaneously to back up the data and information and prevent any losses that might occur. They are also called enterprise applications. Such applications include banking applications, and they are advantageous in that they have a high level of security, clustering, and load balancing. EJB is used to create enterprise applications in a Java development environment.
·         Database applications: They are distributed applications that use the JDBC API to connect to the database. They could either be applications or applets. However, applets may face security challenges in the database connections (Morgenthal, 1998).

Client Server Applications

            Client server applications cannot execute without the availability of web technology. Therefore, they are web dependent. The application follows a less complicated Client-Server model in which a client sends a request to the server directly. Examples of such applications are Yahoo Chat. They are developed in Core Java and Web technologies (Kleinov & Lehmann, 2002).

Proposal

            . The software development process will largely entail a systematic research process to ensure that the development process is conducted according to the requirement, and it delivers the expected results. The internship will be a subdivision of four iterations where each of the iterations will entail different tasks and activities. Below are the iterations (Oshana, 2006):


Iteration 1
Orientation

 
Reflect

 


 
Reform
Plan
Act
 
                                                          



 






                                                          
Iteration 3
Gathering SDLC tools

 
                                                          





Iteration 1: Orientation – It includes an introduction to the company’s management, employees, and its code of conducts and operations. Furthermore, I will be introduced to the software development team and the department of IT from where I will be working.
Iteration 2: Training – The iteration includes being guided in the process of software development life cycle by the company’s experts in the development process. I will also be introduced to the company’s specific guidelines to the software development such as punctuality and adhering to professional ethics in the process.
Iteration 3: Gathering SDLC tools – The iteration includes collaborating with the software development team to identify and gather all the tools that the implementation phase will require. This includes setting up the computers on which the development will take place and installation the computers will necessary software as well as the JDK (Saini & Kaur, 2014).
Iteration 4: Implementation – The activities of the iteration will include the actual development of the software using Core Java. Therefore, we will follow the SDLC process from the first step to the last step.

Iteration 1: Orientation

The orientation process defines the introduction to the company’s management, employees, and its code of conducts and operations. The basic governance of the company is well described during the orientation. Furthermore, I was to have the introduction to the company software development team and department of IT from where I was working. Java is a technology that applies the principles of the DOT NET technology. It has been on the application in the development of applications and currently in the controlling and mobile computing systems. I take to present the internship program iteration one that will describe my orientation at the company. The program run for two weeks, and I had developed the undertaking of activities into typical action research process of plan, action, observation, and reflection.

Plan

Planning is the initial phase that will define the overall plan for the orientation process. I developed a schedule for the actions that I was to get involved with during the entire process of orientation (Reschke,  Schelle&Gutsch, 1990). The plan for the orientation process at the company was divided into several sections. Each section described the actual actions that I was involved during the introduction process. The first division of the plan was the familiarization of myself to the background of the company. The phase activities will enable the understanding of the company locations and strategic organization. The process is quite useful at it will get me the ideal understanding of the directions and the major activities that the company takes major very much. The second part of the plan for the orientation program will be the understanding of the company operational goals along with the understanding of the general company governance. The corporate governance of the company will describe the policies, procedures, and principles that will have to follow and apply as undertake the key tasks of the company.
The third tier of the plan will be the familiarization with the company employees, management and the entire personnel that impacts to the operations of the organization. The process will be accomplished through the movement from one office to another to create the relationship and get to know the persons that will impact much to my entire activities at the company. The accomplishment of the process will also involve the holding of meeting for the best of my success of the program. The follow-up activity will include the determination of what it entails for me to work at the company as a Java expert. In this case, I will take to have the determination and understanding of the duties, roles, and responsibilities. At the same time, skills are required for the attaining for the skills, I undertake a small research over the same before I get into the training of understanding application development using the core Java technology. The schedule was prone to changes since before the training I had to have a good preparation of which the activities were included within this last phase of the orientation program.

Action

The activities of the program began with the company pre-visit that I made before the actual date of reporting at the company. I intentionally did the visiting to have the better understanding of the strategic location of the company though it was part of the activities I was to undertake within the plan. I reported at the working company some days after the pre-visit. The initial activity that I began with during the program was the familiarization with the company background. It is always important to have the knowledge of the organization history so that you have the depiction of what the company has given to the society and the operations the business gets involved. I once more moved around discovering the terrain and the strategic location of the company by defining the actual direction to the specific departments and offices.
I went ahead to familiarize myself with the company employees, management, and other stakeholders. The process was done by moving from one office to the other. However, since the company is large, I was to take almost two weeks just familiarizing and getting to know the business staff I went by holding a meeting. The IT department used to hold meetings with other departments with the key staffs from which I was introduced and familiarized of the activities the staffs are involved. I then learned about the company governance principles, policies and procedures through the one to one meeting with the supervisor, IT department, operational department and human resource representatives. The process was giving direction by then on the way to go.
The most involving part was when I held a meeting with the supervisor who defined the duties and roles along with the responsibilities that I will be concerned with for that given period of the organization. This was just the preparation for the next internship program iteration phase of training. I organized myself and acquired some guide materials from the company archive and simple research relating to core java as I prepared for the training.

Observation

Planning in project management is the primary key to the success of the project. The time I took to develop the plan was limited by the benefit of the company planning template given by the supervisor. I had an initial plan that saw me make a pre-visit to the company that got me save time on the understanding of the company background. As I was moving around the company, I noticed the way the business was strategized with the inclusion of sign posts that gave directions as you move around the organization. This described how the company developed strategic plan was well planned and properly implemented. The company communication was well established and benefited the team working (In Fischhoff, In Brewer, In Downs & United States, 2011).
The company has some well defined governing policies, principles, and procedures that have shaped the enterprise to undertake the operations in an orderly and standardized manner. I discovered the governance during the time of holding a meeting. Each personnel was focused on the tasks he/she assigned and alongside that, there was teamwork motive that I have never encountered (Pina & Joe, 2002). The staffs were cooperative to each as depicted from the way they were describing the company governance in the meetings. The meeting with the supervisor gave me a lesson as the supervisor purposely insisted on focus, adhere to professional working courtesy, handling of the tasks within the company governance. This gave me a challenge of understanding the governance of the company in details.
As a preparation for the next activity, the supervisor began with the definition of the roles, duties, and responsibilities which describe the skills that I require. I had to respond to the case and the training preparation I had given me the enthusiasm and moral as I was waiting for the training.

Reflection

Orientation comes with its benefits when enacted to new employees within a company. Orientation comes along with the measuring of employee capability, quality and easy mode of adjusting within the environment (Arthur, 2012). The initial activity of company pre-visit was the special kind of orientation preparation. The ideology bore me a lot of time saving, and it was a boost to the entire program. The background company description defined the reputation of the company. The organization is recognized for the most quality and standardized based companies that have maintained a steady growth. One of the descriptions was basing on the defined governance that focused on the management company relationship with the employees and the overall governance. Indeed the look of the business from the way the employees takes their duties you are just encouraged of wishing to be part of the team.
In my opinion, the entire orientation process was successful, however, during the meetings I wished the head of departments and top management officials could attend to get me more empowered with leadership and management skills. In any case, preparation is the key to the success of every action that once can get involved. I was able to have a defined plan that though was challenging but got me through succeeding about the program. The orientation program gave me the well understanding of the company, and as I had begun earlier, I was to have the deep understanding of the core Java on top of the information the supervisor provided. There is the need of training of the concepts so that during the actual development of core Java-based application, I gain the expertise and firsthand experience of the same.

Iteration 2: Training

The Training includes being guided in the process of software development life cycle by the company’s experts in the Core Java development process (T. Henry, Personal Communications, February 29, 2016). The intern will also have an introduction to the company’s specific guidelines to the software development such as the punctuality, and adhering to the professional ethics.  That will form the basis for the subsequent iterations that will entail a hands-on experience while applying the knowledge and experience guided from the training. The researcher will also request the team of experts that will be training him to arrange for an assessment to test the skills the intern will have gained from the training session. The intern will use that assessment to prepare adequately for the next iteration of gathering the SDLC tools and implementation.

Plan

The researcher planned to make some search on the Web so as to get an in-depth insight into the area of Core Java development process and gain the basics knowledge of what was expected from the training. The researcher also planned to come up with and objectives list including the deliverables and milestones of the areas of training that he would expect from the experts. The researcher also planned to arrive early at the premises and request to be given a schedule and the outline of the training so that he would align his objectives with the training session and so gain maximally as per his expectations. The researcher also planned to interact with the other interns and Java developers in the company that would not be part of the training team. That will help in imparting the intern with more experience and skills that entail not only Java development, but also the execution of other tasks such as project management, communication, and brainstorming software development meetings.
The intern also planned to understand the challenges of software development and how to handle those challenges so that the process of software development is made a success. The other things that the intern planned were to have through insight are concerning the selection of the development team and the qualifications that the develops need to have so as to be trusted in developing a market-oriented software that can be helpful in solving many of the common problems that businesses face.  The intern panned to understand the entire process of software developing beginning with specification, design, implementation, integration and testing of the developed software application. The intern planned to put in place specific area that he wanted to be handled during the training session for each phase of the development process.
In the first phase of the specification, the issues that the intern planned to get a thorough knowledge on included what the phase involves, how to carry it out and the specific deliverables for the phase. In the second phase the intern wanted the trainers to address included the planning of the phase, how to define the system, building prototypes and carrying out the object oriented design of the new software system. In the third phase of software development, that is, the implementation phase, the intern wanted to understand the elements and how to carry out the development using Java language including the principles of programming and rules in Java.  The intern also planned to understand how to perform unit the integration and testing that formed the last phase of the SDLC process.

Action

The intern made sure to conduct a search on the Web ahead of the iteration so as to familiarize himself with the components of the training and the Java software development process in general. The knowledge of those concepts would be helpful in tailoring his plan and objectives to meet the requirements of the training (J. Japheth, Personal Communications, March 05, 2016). The intern also arrived in the software development company early enough and had to get the training materials that helped him to make further refinement ion his plan and objectives for the session. The intern then enquired of the room where the internship was to take place.  The intern met with other interns who were already seated in the room, and they had a great share of ideas and experiences regarding Core Java development before the training began.
The training was taking place in the company’s Java room that had a capacity of hundred people.  The company’s staffs that were responsible for training the interns had training in Java, Java Applets, software development, multimedia content development, Web user interface design, and object-oriented design.  The developers introduced themselves before they would begin the training. They also talked about the areas that each would handle for the period of two weeks that the training was to take place. In the first week led by the senior Java developer Mrs. Carrillo, the trainers trained on the first two phases of Java software development that were, specifying the problem domain and designing the solution. The training on the problem specification entailed how to create the project development team, defining the vision of the project, conducting a risks assessment and a feasibility study of the project and developing the project plan. The deliverable is a well-written document containing properly defined requirements of the software system.
As pertains the third phase of software development, the researcher got training on the planning and documenting the architecture of the proposed solution of a software system. The training also involved the definition of the system, which is the partitioning of the system to individual programs, defining and documenting interfaces, and documenting the Java libraries.  There was also the training building the user interface prototypes and the performing object-oriented design. In doing the object-oriented design, the researcher learned how to create hierarchies as well as designing the field and methods for the Java classes and interfaces.  The three basic classes that the intern learned how to develop included the user interface classes, the problem domain classes, and the data management classes.
In the fourth phase, that is, implementation, the intern learned how to code the software. It also involved writing the ‘for loops,’ if statements, the variables, catch clauses and commented. There was also training on how to carry out unit testing of the individual codes of the application, compiling and bugs fixing.  The training on the last phase incorporated how to get the various pieces of software to work together. The coding that takes pace during this phase is for fixing bugs in the system. The researcher also had top interact with other company staffs who were Junior Java developers so as to get to understand other areas that may not have been properly addressed. The intern also learns about the ethics as well as the legal requirements while designing the software application. The researcher also got training on the soft skills such as communication skills.

Observation

The Plan that the researcher made concerning the training session was very substantial in making the training session successful as observed. The researcher observed that software development is a hectic process that should not be a one-man show, especially when that project is a major one. The trainers mainly focused on the practical design and development techniques that would be useful to the intern in his future careers as a Java developer. The trainers assumed the basics such as the Java language and APIs.  They had to focus on the basics because the employees normally want the developers that have practical experience regarding the areas of their professional (J. Japheth, Personal Communications, March 10, 2016). The intern observed that software development is an area that requires much attention and caution because there are many funds being pumped into the same, and so the development process should deliver the desired deliverable.
The other observation that the intern made was that there has to be careful planning because a careful plan is what determines the success of the project. It is better to take much time in developing the plan rather than hurriedly planning and jumping into the execution because that can lead to frustrating results. The intern also observed that the trainers were people that were well-versed wit in-depth knowledge and experience concerning Core Java development and programming due to their training and specialization in the area. For that reason, they handled each area comprehensively and so the intern garnered much knowledge in the session that would offer a good input into the skills in the requirement to complete the remaining iterations. The intern also observed that during the development of software, there has to be an adherence to rules and regulations because software development is a critical area that is not without rules and regulations.
The intern also learned that Java language is majorly useful in the development of Web applications, and it receives competition from other languages such as Visual Basic and frameworks like Dot Net.  For that reason, it is required that an organization have a competent development team that can be vigilant with the market trends so they can develop the market-oriented products. By so doing, they will stand out and outdo the other applications in the market.  The intern also observed that training of the staffs is something that cannot be ignored. The training can help to impart them with the new skills that they do not have so that they can effectively execute their tasks with ease (T. Joan, Personal Communications, March 13, 2016).  The intern observed that the practical skills are vital, but the developers also need the soft skills such as the communication skills because many times they have to communicate with clients, stakeholders, and other project team members.

Reflection

The training session on the devolvement process of Java software went so well in many areas because from the same the intern got to learn how to structure it to meet the user requirements. The researcher got to learn how to carry out all the required steps from the requirements specification, planning, developing, implementing, and integration and testing. The training also helped the intern to garner the specific practical skills in light of Java development of market-oriented applications. The intern learned how to work with the development teams to ensure there is the success of the delftware development process. The intern not only learned how to develop the application, but he also learned some leadership skills such as how to direct team members in accomplishing the given project. That knowledge and skills would prepare the intern to handle technical tasks in the future concerning Java software development (J. Japheth, Personal Communications, March 13, 2016).
The interaction that the intern had with the members of the development team, the junior Java developers of the company and the other non-Java developers provide a crucial input that he did not and would not have gained from the trainers. The companies also provided a good arena for learning. The company had a substantial market share due to the competence and training of its team members. They were people that had through knowledge in the area of Java development, and they were also vigilant with the market trends so that they could develop the software applications that would best meet the demands of the market. The company had good plans for training the developers from time to time so that they could acquire new skills to continue developing outstanding software products to beat the competitors. It was a good thing to do the internship in the company because the researcher got to learn many things that were critical to his career as a young Java developer.
There are a few things that the researcher noted while I the training in the software development company. The researcher learned that the company majorly concentrated in the development of Java applications without paying much attention with other programming languages and platforms. The intern suggests that the company also needs to examine other frameworks such as Dot Net framework that is useful in the development of powerful web-based applications with a market orientation. The intern also noted that most of the trainers did not spend their time properly, and so they missed other areas that were crucial to the training. The researcher suggests that the trainers should learn to keep their time properly especially during the training so that they help the intern to acquire all the skills he needs to become competent in his area of profession.

Iteration 3: Gathering SDLC tools

 The iteration includes collaborating with the software development team to identify and gather all the tools that the implementation phase will require. That includes setting up the computers on which the development will take place and installation the computers will necessary software as well as the JDK.

Plan

The intern planned to meet the company’s Java software development team who would help to provide him with the necessary knowledge required to accomplish the setting up to the development environmental and getting all the tools ready for the development of software. The intern wanted to learn the basics such as system analysis and writing the user specifications as well as the functional specifications of the software application. The intern also planned to learn about the setting up of the PC from where he would be working while carrying out the development of the required software application.  Apart from setting up the computers, the researcher also planned to understand the software tools that would be in requirement. The intern planned to learn about how to acquire the software tools, get them installed and also make the necessary configurations as required.
Acquiring information would also be something important because the lack of that information makes the intern would not be successful in accomplishing the required project (N. Didier, Personal Communications, March 15, 2016). In the first phase the intern wanted to learn how to get the software product for development and gather the necessary requirements while interacting with the users of the application under development. The intern then planned to make a detailed documentation of the user and system requirements. That would form the foundation on how the researcher would structure the objectives and make the plan for implementing those requirements. In the design phase of the application, the intern planned to garner all the tools including the ones for developing the right architecture and prototype for the application that would be helpful in the subsequent phase. The intern also wanted to get the software in place that would be helpful in describing the software system under development and that included the SOA tools.
The other tools that the researcher planned to acquire were the tools for the implementation phase. They included setting up the code editor such as the Java beans and then installing the Java Software Development Kit.  The intern also wanted to get all the testing tools ready so that the testing would have accomplishment with ease in the next phase.  That also entailed setting up the testing environment. The intern planned to interact well with the development team so as to properly understand the software to have development so that he would avoid any mistakes that may accrue from the project execution due to lack of properly understanding the requirements. The other plan that the intern had was the accomplishment of the iteration within the time specified with all the deliverables at hand at the end of this iteration.

Action

The intern searched the company’s website and then came up with a solid plan regarding the session and what it would require. In the first day, the intern met the company’s Java developers in a brainstorming session so that they would brief him on the software product under development. That session was very fruitful because it was conducted well. The researcher got a thorough understanding of the software under development and proceeded to begin gathering the tools and the requirements for the software product and making an appropriate plan for the development. The intern then made a plan on how to go about setting the computers and implemented that plan successfully. 
The intern set the computers and made the necessary configurations on the computer because it was of the same that he would be working in the subsequent phase. He tested the installed computer and confirmed that it was working well. The intern then embarked on gathering the project requirements. He had to meet the end users of the software application that helped to shed more light on the project under development. The intern also met the senior company managers and had to brainstorm with them regarding the feasibility of the software project under development. The researcher made sure that he outlined all the benefits that would accrue from the software product if it would be successful.  The intern solicited the help of the developers to carry out the analysis of the gathered requirements and then made a requirements specification document. The document clearly defined the user as well as the system specifications (T. Henry, Personal Communications, March 25, 2016).
The intern then garnered the software requirements for the design phase including the SOA application tools.  The intern then installed the AutoCAD application that was helpful in the design of the application architecture. The intern then got downloaded the Java software development Kit and installed it in his working station. The user made the necessary applications on the software and then installed the code editor, particularly the Notepad++ and the JavaBeans.  The intern then installed the common JML tool suite or the development phase of the software. The JML suite contains several other tools including the type checker, JML compiler, runtime assertion checker, Javadoc, and the unit testing generator framework (N. Didier, Personal Communications, March 25, 2016)..  The JML tool suite saved the intern the tasks of installing other tools that would otherwise be time-consuming.
The researcher then set up the testing tools for the software application.  The first tool that the intern confirmed its availability was the JML-JUnit tool that would be useful I the testing of the unit codes. The intern installed the Mobius Program, Verification Environment that contained a plethora of testing tools for a Java application.  The other tools that the researcher acquired were the JavaNCSS and the CheckStyle tools that would be useful in the code analysis process. The researcher also got to test those tools to make sure that they were working well to avoid frustrations in the last minute.  The intern interacted with his supervisor and the development team to have a thorough knowledge of the tools in requirement and the supervisor also helped in the installation and the testing of those tools. Lastly on of the senior developers had to evaluate the tools and their suitability to the software under development so that he provided advice where necessary.

Observation

The researcher observed that a good plan is very important because it assures the success of s project.  The intern came to learn that there were many tools useful in accomplishing the software development process than he had anticipated.  The intern also learned that the structuring of the iterations in the form of the SDLC process was very helpful in acquiring the tools that were specific to each phase of the development. The intern also observed that the collaboration of the experienced developers was of paramount importance as it helped to get the skills that the intern did not have before. The software development process entails a lot, and it is a process that is too involving according to the intent’s observation.  The intern also observed that the developers were very substantial to the accomplishment of this iteration through their advice and performance of the critical tasks.
The intern observed that all the phase were as good and that there should be no phase that the developer should ignore. For instance, the intern observed that the careful analysis of the system and the specifications were something that was too as compared to the other areas. That was because the intern had to go to the field and gather the requirements using the right tools and make sure that the information was as elaborate as possible so as to inform the project execution. The analysis of those requirements also followed so as to have the properly documented requirement ready to begin the development of the application in the next phase. According to the researcher’s observations, the most important thing was to produce the required deliverable at each phase. The deliverable in this iteration was the tools and the requirement specification document because the subsequent phase would entail only indoor activities majorly the development of the required software product.
The intern also observed that the installations of the software tools were also an involving task that had to be performed with much care. The intern had to configure the tools properly and test them to make sure that they worked properly and that they produced the desired output.  Almost all the tools that were collected during this phase were open source, meaning that the intern had to download and install them without having to pay for them. Others were trial versions because the iteration was aimed at helping the intern to understand how to set up the software tools as well as the hardware tools.  The researcher also observed that there had to be the last evaluation of the tools by an experienced developer. The purpose of doing that was to confirm that the right tools were in place and that those tools were working properly; producing the desired results.  It also came to the observation of the researcher that even simple tasks of the research tasks required to go through the software development process.

Reflection

The performance of this iteration was very helpful to the researcher because it is the same that resulted in having a thorough knowledge of the tools having requirements in the software development process. The intern got to learn that there are various tools in entirely all the phases of the SDLC methodology.  The support that was offered by the development team and the intern’s supervisor helped to make the iteration successful. Many of the issues were also solved during this phase including the issues regarding the ambiguity of the tools. The supervisor gave also coaching while the selection of the tools was taking place as well as during the process of installing and testing the tools. That helped the intern to learn many other things on how to determine the tool specifications for a given task based on the type and size of the project that needs to be developed.
The intern had not interacted with a few of the tools before, but the supervisors gave him the necessary knowledge that helped him to understand not only the configuration of the tools but also how to work with the tools.  The intern got to understand how those tools worked and the basic working standards for the tools. The interaction with other team members also helped the intern to learn other things including the way one should conduct oneself while carrying out the given tasks (N. Andrew, Personal Communications, March 28, 2016). The freedom that the supervisor and the development team gave helped the intern to learn how to work on my own and deliver the needed results without any compromise of quality results. The iteration gave the intern the confidence that having the right tools in place would make the project successful. Also, the time given for accomplishing this iteration was more than enough as the intern completed all the activities and had some time left to make other vital inquirers into the area of software development. 
The iteration, however, faced some difficulties. For instance, while the intern was gathering the requirements, some respondents that he made were not very positive while others totally refused to provide any responses to the system. The intern plans to solve that in the future by involving a large sample so that in case there are those that may fail to respond positively, then the others can take care of that. The supervisor was also unavailable sometimes for consultation, and that resulted in looking for help from the other developers or junior members. The company should have supervisors that are available all the time the interns need them, and that can help in avoiding costly mistakes that may result from lack of close supervision. The intern also suggests that the company to groups the interns into two during the execution of tasks instead of each working independently, hence wasting time and resources.

Iteration 4: Implementation

Plan

The activities of the iteration will include the actual development of the software using Core Java (N. Didier, Personal Communications, April 01, 2016). Therefore, we will follow the SDLC process from the first step to the last step. The intern planned to work closely with the company’s developers to develop an application that had a market orientation and the one that would pass the user test. The intern wanted to use the requirements specification, the plan properly, and the tools gathered in the previous iteration to accomplish the development of the software application. The intern planned to make sure that the resulting software product had all the features as per the requirements specification document.  The other thing that the intern planned to do was to leverage the software development methodology in the developing of the software product at hand fully.
The intern planned to utilize the services of the development team and the supervisors closely so as to make sure that the project had development in the right manner and that everything is done as required. The intern planned to schedule and structures the development of the project in light of the available time and make sure that all deliverables are produced within the time specified.  The intern planned to make sure that he carries out unit testing during this phases before the development team, and the quality assurance officers would carry out the last testing of the completed software product.  The intern planned to ensure that he closely followed the review process of the test cases as he would not be allowed to carry it out due its sensitivity. It requires the skills of the senior developers and the senior quality assurance officer. Below is the model the intern would use.

Action

The intern met the supervisors hand then he was given the mandate to carry out the development of the software application in light of the software requirements at hand. The intern began by examining the requirements once again so as to make sure he thoroughly understood them and eliminated any ambiguity.  The intern then developed the execution plan to fit into the available time for the development of the application.  The intern used the proper tools to draw the architecture of the application in the first two days before translating the design into the actual system.  The researcher is then designed and implemented first the user interface of the software application before designing and implementing the backend systems, ensuring that he leveraged all the coding principles and standards.
The intern also made sure to leverage the required tools to carry out the unit testing. The essence of carrying out the unit testing was to eliminate any issues that would have caused the developed software product not to work as per the user requirements.  The unit testing was to confirm if all the units of code worked well and that they produced the required output (N. Andrew, Personal Communications, April 10, 2016). The intern then met the development and the quality assurance team after ascertaining that the software functioned as per the requirements. The development team thoroughly tested the software product, and they also prepared the tests cases that were to have an examination by the review team. The purpose of the review was to make sure that the testing was thoroughly executed and that it utilized all the available platforms to make sure that the software worked on all the available platforms, producing the same results.

Observation

The intern observed that the software development process is very helpful in guiding the development of projects of any kind. The knowledge of this process contributed to the success of the project task at hand. The researcher also observed that he had to be careful while developing the application because any mistake that he made would have culminated into wasting time correcting it.  The supervisor that was given the intern had mastery of the Java software development because he had worked as a senior developer for nine years (N. Didier, Personal Communications, April 12, 2016). The intern observed that the tools that he had collected in the previous iteration worked well although he did not have the knowledge of how to use some of the tools. The Web was sometimes helpful especially when the supervisor was not near for consultation.
The researcher also observed that the company took their project development projects seriously, and although interns had to develop critical projects, they had to be thoroughly supervised at very single step.  The intern also observed that the company had many customers that enjoyed their services as the intern learned from the supervisor. Paying attention to the market-oriented software products and having a strong software development team is what made their clients stay (T. Henry, Personal Communications, April 14, 2016).  The researcher also observed that the methodology that the company leveraged made sure that all the elements and requirements were put into consideration while carrying out the development of the application. The researcher also observed that the company was very keen on the tasks that the interns performed so that they would recruit some of them after the internship.

Reflection

The intern observed that software development tasks were the most involving activity in the company and the software development process. It is the time when the intern got to learn the practical skills concerning software development and the quality standards of the software that should be followed.  The knowledge that the researcher had gained from the previous iterations helped him to accomplish this iteration with less difficulty. The intern got to acquire the problem-solving skills as required in the software development field. The support that the developers gave the intern was very helpful in making the software development successful.  The intern got to acquire practical skills that a complemented the ones that he had to learn in the previous iterations. At the end of the iteration, the researcher evaluated all that he had done in the company during the internship and discovered that he had accomplished 80 percent of his objectives.
The intern was impressed by the internship that he had undertaken in Grand Technologies Inc. the intern however suggests some improvements to this last iteration. The company did not involve the intern while the review of the test cases was taking place. Therefore, the intern suggests that there be involvement of the intern in all the major activities sand tasks as he is there to learn.  The intern also did not get close supervision of the intern coordinator, and so he would not address his dissatisfactions to anyone. Intern coordinators are the point of contact between the intern and the company, and he is the one that handles the dissatisfactions of the intern. The intern suggests that the coordinator should be available all the time to address the intern issues.

Conclusion

The first iteration was about orientation into Grand Technologies Inc, and the intern learned many things concerning the company. The intern was able to have a defined plan that though was challenging but got me through succeeding about the program. The orientation program gave the researcher a well understanding of the company, and as he had begun earlier, he was to have the deep understanding of the core Java on top of the information the supervisor provided. There is the need of training of the concepts so that during the actual development of core Java-based application, the researcher gained the expertise and firsthand experience of the same. In the training session, the researcher got to learn how to carry out all the required steps from the requirements specification, planning, developing, implementing, and integration and testing. The training also helped the intern to garner the specific practical skills in light of Java development of market-oriented applications. The intern learned how to work with the development teams to ensure there is the success of the delftware development process. The intern not only learned how to develop the application, but he also learned some leadership skills such as how to direct team members in accomplishing the given project.
The third iteration had the intern gathering the necessary tools for the software development process. The performance of this iteration was very helpful to the researcher because it is the same that resulted in having a thorough knowledge of the tools having requirements in the software development process. That helped the intern to learn many other things on how to determine the tool specifications for a given task based on the type and size of the project that needs to be developed. In the last iteration, the researcher developed the actual software.
During the software development activity, the intern got to learn the practical skills concerning software development and the quality standards of the software that should be followed.  The knowledge that the researcher had gained from the previous iterations helped him to accomplish this iteration with less difficulty. The intern got to acquire the problem-solving skills as required in the software development field. The support that the developers gave the intern was very helpful in making the software development successful.  The intern got to acquire practical skills that a complemented the ones that he had to learn in the previous iterations.

References

Arthur, D. (2012). Recruiting, interviewing, selecting & orienting new employees.  Pp 299. New York: AMACOM, American Management Association.
Fain, Y. (2011). Java programming 24-hour trainer. Indianapolis, IN: John Wiley.
Feldman, A. (2007). Validity and quality in action research. Educational action research, 15 (1),  21-32.
Flanagan, D. (1999). Java enterprise in a nutshell: A desktop quick reference. Beijing: O'Reilly.
Gladychev, P., Patel, A., & O'Mahony, D. (1998). Cracking RC5 with Java applets.          Concurrency: Practice and Experience, 11 (13), 1165-1171.
Groce, A., &Visser, W. (2008). Heuristics for Model checking Java programs. International          Journal on Software Tools for Technology Transfer, 6 (4), 260-276.
Hunter, J., & Crawford, W. (1998). Java servlet programming. Sebastopol, CA: O'Reilly Media.
In Fischhoff, B., In Brewer, N. T., In Downs, J. S., & United States. (2011). Communicating risks and benefits: An evidence-based user's guide.
Kidd, S. A., &Krai, M. J. (2005). Practicing participatory action research. Journal of Counseling                 Psychology, 52 (2), 187-195.
Reschke, H., Schelle, H., &Gutsch, R. W. (1990). Dimensions of project management: Fundamentals, techniques, organization, applications. Pp 230. Berlin: Springer-Verlag.
Russel, J. P. (2001). Java programming for the absolute beginner. Roseville, CA: Prima Tech.
Saini, M., & Kaur, K. (2014). A review of open source software development life cycle models.   International Journal of Software Engineering and its Applications, 8 (3), 417-434.
Williams, R. (2006). Real-time systems development. Burlington, MA: Elsevier Butterworth-         Heinemann.

Sherry Roberts is the author of this paper. A senior editor at MeldaResearch.Com in custom nursing essay writing services services if you need a similar paper you can place your order for college essay writing services.

No comments:

Post a Comment