SlideShare a Scribd company logo
40058464
Final Report - Forestry Commission
1
Gavin Palmer
40058464
Work Placement – Forestry Commission
Final Report
40058464
Final Report - Forestry Commission
2
Contents
1. Employment Related Objectives
1.1. E2 – Use standard software packages
1.1.1. Example 1
1.1.2. Example 2
1.2. E5 – Implement/maintain computing solutions according to requirements
1.2.1. Example 1
1.2.2. Example 2
1.3. E6 – Test software or hardware systems
1.3.1. Example 1
1.3.2. Example 2
1.4. E12 – Apply knowledge in the production of user/system documentation
1.4.1. Example 1
1.4.2. Example 2
2. Personal Development Journey
40058464
Final Report - Forestry Commission
3
Employment Related Objectives
E2 – Use standard software packages
Situation
When there are multiple developers constantly updating different elements of the
same system, it is important to have methods in place to manage all of these parts
effectively.
Task
During my placement I have been responsible for releasing updates to test systems.
As developers can potentially make mistakes when developing their updates and
fixing bugs, it is important to manage the test releases so that only the code they
consider to be working is uploaded to be tested.
Action
One of the most important tools to help developers to work on a project together
effectively are repository tools. When conducting releases, I would take the files to
be run against the system from the repository (MS Visual SourceSafe, Oracle
Designer). This ensures that the latest version of the file is the one being used.
When a developer makes a change to a file, they can take it out of the repository
and make the changes, safe in the knowledge that no other developer can make
changes to the same file. To know which files needed to be run for each release, I
would also obtain the relevant release note from the repository, which would list the
files and the expected outputs, as well as the developer responsible. This made it
easier to ensure changes were working correctly and contact the developer if
necessary.
Result
As a result of running these releases, the relevant updates could be properly tested
and changes made before being run again in a live environment. If any of the new
features added caused errors, the release process means it would be easy to go
back to previous versions of the affected files until a bug has been located and fixed.
Learned
Conducting these releases taught me a lot about the process of releasing updates to
systems which are worked on by several developers. It also taught me the
importance of managing these releases, and keeping track of changes which have
been made, which would make it easier to identify the source of errors. Thanks to
this I also have a much stronger knowledge of repository tools, and am much more
aware of why they are necessary and how they work. These types of tools are an
important part of software development and I will undoubtedly come into contact with
them a lot more in my future career and so this initial exposure to them will prove
very useful as I continue to work within software.
Situation
In order to develop software solutions and fix problems with code, a knowledge of
basic programming environments is essential. During my placement, I became
familiar with several programming tools, including Oracle Forms, SQLDeveloper and
Eclipse.
Task
During my placement I was tasked with using software packages to develop
solutions for a variety of different problems. An example of this is when I was
40058464
Final Report - Forestry Commission
4
presented with a problem whereby a script to refresh a set of data nightly was
creating duplicate records.
Action
In order to ascertain what was causing this problem I had to use SQLDeveloper, as
this tool allows users to interact with databases. Using my knowledge of SQL I
conducted a series of queries on the relevant database, looking for any kinds of
patterns from the records which were duplicating. By doing this I noticed that the
records which were duplicated were listed under 2 cost centres. As I was still
uncertain how to fix this, I had to try and understand how the database was built. My
knowledge of SQLDeveloper gave me an understanding of the ‘Data Modeller’ tool,
which gives a visual representation of all of the tables and how they relate. I had
noticed that the script which runs takes its’ data by the cost centre, and so if the
record had two cost centres the record would be generated twice, using the data
modeller I was able to easily see where to add in a new identifier, and how it would
affect related tables, and so alter the database and script without causing any
additional problems.
Result
Once I had made my changes in SQLDeveloper, I submitted the new script to be run
in place of the old one the following night. The script ran without errors and fixed the
problem, details of this can be seen here.
Learned
Through solving this problem, I gained a strong understanding of how several
software development tools worked. This is very useful knowledge, as the software I
have become accustomed to is used in various different scenarios and so I will more
than likely come into contact with it again. Having a knowledge of these tools will
undoubtedly be very helpful in aiding me should I have to come up with solutions to
other software problems at any point in my career. Colleagues have also been very
helpful with teaching me tips for these tools, such as in this email. This has helped
me to continue to develop my knowledge of the tools and use them more effectively.
E5 – Implement/maintain computing solutions according to requirements
Situation
A problem was raised regarding viewing Business Objects reports via another
system which was in development, known as Casebook. Allowing the user to be
logged on to Business Objects automatically via a url was deemed an unsecure
method, as outside users could access the system if they knew the url. A different
method was therefore required.
Task
I was tasked with creating a small program using the Business Objects SDK which
would create a unique login token each time the user opened a report via the
system. It was agreed that the system to do this would be built as a web service,
which could then be integrated with Casebook.
Action
I set about creating the web application as specified by the users. I created it using
java and jsp files in eclipse. As there was no written specification, constant
communication with the customer was required, as well as updates on the progress
of the project to ensure it was what they wanted. Once the system was completed, I
researched using ‘ant’ builds to build an ear file for the program to be deployed onto
the servers.
40058464
Final Report - Forestry Commission
5
Result
I created a tool which can automatically log a user onto a system and display a
report specified within my web application. It also handles any parameters which the
report may require. When it is deployed to the live environment, this tool will be used
on a daily basis by numerous FC employees throughout the country.
Learned
From creating this system, I learned a lot of new skills. I gained exposure to using
enterprise java and .jsp files, which I had never encountered before, as well as using
new java libraries such as Spring MVC and the Business Objects SDK, and greatly
improved my knowledge of deploying completed projects to an environment to be
used by the end users, which has come in useful in my work since. As well as
technical abilities, I also learned the importance of having a clear product
specification, as without it the customer can change their mind and cause problems
with development. Where I to do this project again I would push more for a written
specification to follow. It did, however, stress the importance of communication, and
give me experience in relaying information to colleagues and customers through
mediums such as presentations and helped me to learn by listening and taking
criticism on board, which in turn improved my confidence in speaking to others and
getting my ideas heard.
Situation
Due to the ongoing devolution throughout Britain, with FC wales breaking off and
forming their own organisation and more parts of the Forestry Commission
potentially doing something similar, the need for certain system used throughout the
Forestry Commission to be replicated for each division of the FC to use
independently has grown.
Task
I was asked to replicate the system used to manage Government Procurement
Cards (GPC) for Forest Research. In theory, the new system could just be a replica
of the original one, however it was predicted that once the new system was running,
FR might request functionality changes to better suit their needs. As there are 6
different parts of the FC who all may potentially require their own systems and their
own functionality changes, files would have to all be named differently and point at
their own individual database schemas.
Action
The process of creating the new GPC system was a long one, involving speaking to
many different people regarding setting up a new database schemas and user roles,
as well as how the new system was going to interact with the same systems as the
original, and whether defining the difference between information from the two
schemas was important on other systems. Once I had created the new system, a
great deal of communication with the customer was required, as I was not familiar
with all of the systems functionality, having not created it all myself, and therefore
was not able to test it to the point that was needed. An example of a correspondence
regarding this system can be seen here.
Result
The Forest Research branch of the FC now have their own GPC system which will
be live for use soon. This system will be used regularly by many and play a big part
in the management and organisation of employee spending for a large section of the
FC.
40058464
Final Report - Forestry Commission
6
Learned
As well as gaining exposure to Oracle Forms and learning a great deal about
PL/SQL, this task involved the most communication with others during my placement
at the FC. As I was the only developer working on this project, I had to speak to a
variety of different people to learn about elements of the system, some of whom I
found it quite difficult to extract relevant information from. This taught me a great
deal about how to communicate and learn about systems from non-technical
customers, as they may not necessarily know that certain bits of information are
relevant, such was the case when I had to attempt to find out about a scheduled job
that had to be replicated from a different system. My ability to talk to people in a
professional environment has improved greatly as a result of this and I have learned
to be more confident when speaking to people and ask for help if I do not know how
something works.
E6 – Test software or hardware systems
Situation
A new website called ‘TreeAlert’ had been created by an outside contractor.
TreeAlert is a website which is intended to be used by the public to report trees
which are dead or infested with pests. The FC wanted the website to be tested
extensively before it was released to the public.
Task
I was asked to create a test plan for the product, and to give it a comprehensive test,
documenting the entire process in order for other developers to fix any mistakes.
Action
I was not given any of the code for the product, and so my testing was entirely from
a user perspective. As I had not had much experience with creating a test plan and
the FC did not have any template or guidelines regarding testing I had to spend
some time researching example test plans and working out the best way to proceed.
Once I had a good idea of the kind of test plan that would be best suited to the
system, I went through and attempted to evaluate all of the core functionality of the
website, and how best to test it. I then went about creating the test plan, and testing
every element of the program I could.
Result
Once the program had been tested, I sent my results to the team of developers
working on final improvements for the system, and they went about correcting the
bugs which I had found. My test plan can be viewed here and the TreeAlert website
is now live and can be found at http://treealert.forestry.gov.uk/.
Learned
From this task I learned a lot about the process of testing a product and the
importance of such a process. I hadn’t really considered before that certain aspects
of a website may work in one browser and not in the other, and how this could affect
the user and stop the website from performing as required. From reading about test
plans I realised that testing is a constant process, as every time a change is made or
the system updated in any way, that change needs to be thoroughly tested to be
sure it doesn’t negatively affect the system in any unexpected ways. I also gained a
lot of confidence from this in taking the initiative to work things out myself. I wasn’t
given many guidelines as to how to go about creating the test plan and so had to
work it out myself. I realised that having confidence and taking it upon yourself to
40058464
Final Report - Forestry Commission
7
learn things is a good mentality, as you can sometimes feel more confident with
certain things having worked it out for yourself.
Situation
Upon completing development of a software solution, it is important to test that the
solution you have implemented is working to a satisfactory level. Occasionally, the
testing must be passed on to a user, for example if they are testing that their own
account has been altered correctly. But in the case of certain projects, I was
responsible for making sure the program ran as required myself.
Task
After I had completed work on the Business Objects Report Viewer which I had
created, it was down to me to test it and ensure it was working without errors and
that it was fit for purpose.
Action
Whilst I did not conduct any formal means of testing on the system, I did go through
each function during each stage of development and ensure that it was working
without errors. If I found any errors or if the system crashed at any point, I would go
back and attempt to correct the problem. I also kept updating my colleagues who
were working on the project that this program would be used in conjunction with, to
ensure that the system was still fit for purpose, and made any alterations that were
necessary.
Result
As a result of constantly testing the system as I developed it, and checking to ensure
it did exactly what was required of it, I ended up with a robust product which was fit
for purpose
Learned
I learned a lot about the importance of constantly checking a product during
development. If I had left all of the testing until the product was completed, some of
the errors may have been much harder to fix, as it could have required altering much
more code. Testing that the product is fit for purpose is also a very important
process. As I was not given a written specification for this task it would have been
easy to create a finished product that was not ideal for its intended use. I found
during the implementation process that several times I had begun to add features
which were not relevant and over complicated the system, and likewise, I also
missed out certain features that had been asked for. By constantly showing my
product to the users I was able to ensure it worked as required. This project also
taught me a lot about the whole software development process, as I was able to
carry it out from conception all the way until it was ready to be ran as a live system.
E12 – Apply knowledge in the production of user/system documentation
Situation
When implementing changes to a live system, it is important to keep track of each
change in case the system should break, this may help you to trace the cause of any
problems as well as to re-implement changes should the system have to be rolled
back to a previous version in a timely manner. The documentation can also inform
you of the developer responsible for certain changes should any questions about the
change arise.
40058464
Final Report - Forestry Commission
8
Task
Each time I received an assyst for making a change to a system, whether it be
something small such as altering a table or a large change consisting of many files,
a release note must accompany the change. The release note will detail which files
need to be run against the live system, as well as what effect the changes will have
on the system. An example of a release note can be seen here.
Action
The release notes used by the FC, as can be seen in the example, all follow a
similar template. This means when creating a release note, one has to simply detail
the requested changes and the Assyst which they correspond to, as well as the
names of the files to be located in the source control.
Result
As a result, the person responsible for running the changes against the live system
can easily see which files were meant to be run, as well as the message they should
receive when the file is run, which ensures that the file has done what is expected.
This kind of documentation would be invaluable if someone wanted to find out more
about certain changes and when/how/by whom they had been made.
Learned
Doing this with many changes throughout my placement, as well as being heavily
involved in conducting releases to the test environments, has taught me a great deal
about the importance of documentation. Without it the management of releases
would be very difficult, a process which is important as it prevents developers from
making undocumented changes to systems, which could prove to be very
troublesome if something were to go wrong. Before my hands on experience with
such documentation, I never properly understood the need for such strict and
organised management of these processes and subsequently the creation of
documentation. The creation of such documentation seems to be a large part of
most organisations release and version management processes, and this
experience will prove to be very useful in any future software development jobs.
Situation
Once I had completed my Business Objects report viewer project, it was important to
demonstrate to users how it worked. As well as this, being the only developer to
have worked on the project meant that should it require maintenance after I have
left, another developer may struggle to understand the code.
Task
An effective way to demonstrate how the program works both from the front end and
in the code is to create documentation. I was therefore asked to create a document
to give to the customer as well as a document for the developers, explaining the
code.
Action
I began by listing every task I could think of that a user may wish to do with the
system, as a good user guide will explain every element of the system. I then went
about completing every task on the list, taking screenshots and writing a brief
description of each stage. I then copied all of these processes into one document
and added a brief description of what the system does overall, before asking a
40058464
Final Report - Forestry Commission
9
colleague to use the document to assist with using my system, to ensure it was
effective. To create the technical guide, I went through each java class and .jsp file
and wrote a brief description of what that file does, as well as explaining any code
which may not have been self-explanatory.
Results
I had created two documents to aid with the use and maintenance of the system
which I created. These documents can be viewed here and here.
Learned
From this task, I learned the importance of documentation accompanying a system.
Attempting to look at my code from the perspective of an outsider pointed out many
ways in which it could be confusing and hard for another developer to look at and
understand without guidance. Likewise, looking at the system from a user
perspective, and writing instructions in terms that a non-technical person could
understand posed a slight challenge. For example, writing about the method used to
log a user on to the system, whilst being a large part of the program, is irrelevant for
the end user, as all that they need to know is that the system will display the report
without asking for a logon, and subsequently, any additional information may cause
confusion and is unnecessary. This made me think more about how to give
information to non-technical users, and how to explain things in terms that a novice
would easily understand, a skill which has since come in useful on more than one
occasion.
Personal Development Journey
During my time at the Forestry Commission I feel I have learned a great deal. As
well as becoming more competent from a technical viewpoint, I feel that I have also
grown a lot as an individual, and am now a much stronger and more confident
communicator as a result of my placement. Being in a situation where every day I
have to behave in a professional manner and am forced to communicate effectively
and manage my time well has had a huge impact on how I go about my day to day
life.
One of the first things I learned from the process of applying for placements was the
importance of being well prepared for an interview. Before being offered my role at
the FC I attended another placement interview. With hindsight, I do not feel I was
adequately prepared for the first interview and found myself struggling to answer
their questions. Having gone through this first interview, however, meant that when I
went for my interview for the Forestry Commission I was much more prepared, with
answers to any questions they might ask regarding my cv as well as answers to a
few technical questions they could potentially ask and some background knowledge
of the organisation I could use to demonstrate my enthusiasm. I feel that this had a
huge impact as I went into the interview feeling a lot more confident and I was
subsequently offered the position.
The personal skill which I feel has developed the most during my placement is my
communication. I found myself in situations very often whereby I would have to
contact customers to enquire further about some work, or to answer any questions
they might have. I also had to communicate with colleagues regarding the work I
was doing and any additional work that may need to be done. Effective
communication was essential as otherwise time could be wasted doing unnecessary
work or doing work that was not correct and would therefore have to be redone. I
quickly became confident at talking and explaining problems to colleagues as well as
non-technical customers. Being able to explain a problem to a customer who was
40058464
Final Report - Forestry Commission
10
not necessarily computer literate could sometimes be difficult, as many things that
seem simple to a developer who has worked on a project for a long time may make
little sense to someone with no programming background. This became most clear
to me in week 27, when I was asked to demonstrate a piece of software which I had
created for some customers. As the demonstration was fairly informal, I had not
planned it too thoroughly. Once I started demonstrating the project, one of the
customers had to ask me to go over a point a second time, as I had brushed past
what I thought was a simple to understand aspect when in reality others did not
grasp the concepts so easily. This happened a few times during the demonstration.
From this, I learned a great deal about how to present information to people, and the
importance of making sure that everyone understands the point you have made in
the demonstration before moving on to the next. Whilst this particular presentation
did not go as well as I would have hoped, I feel that I learned a great deal from my
mistakes and I feel that any future presentations I give will be much clearer as a
result.
Becoming a stronger communicator has had a knock on effect on how I work as part
of a team. Whilst I have always tried to pull my weight when working as part of a
group, I often would have struggled to have my opinions heard, due to being too shy
and not confident enough to stand up and speak to a group. Being put in situations
where I have to discuss my work and my ideas for taking a project forward, as well
as having to listen very closely to my colleagues ideas and try to come to an
agreement on where to go next with a project has had a huge impact on my ability to
work as part of a team, and I now feel much more able to contribute ideas and have
my voice heard in a group.
Not only have I become much more confident at speaking to people face to face, I
have also become a stronger communicator via other means, such as phone and
email. Working in a large office and working alongside people from smaller offices
around the country means that I often have to speak to people on the phone. Before
my placement this wasn’t something that I had done very much, and as such the
thought of having to phone someone and ask them questions on something was
quite daunting. Once I had done this a few times, however, it became much less
intimidating, and I eventually found myself making phone calls without thinking twice
about it. Part of my job also requires communicating via emails, asking users for
information and assigning them new usernames and passwords etc. When sending
emails, I quickly learned there is more to be considered than when speaking to
someone personally or over the phone. An example of this is when I was helping to
conduct a housekeeping exercise for Business Objects, and was asked to contact
various users asking them to delete any unused reports. It is much easier for a user
to ignore an email, and if they did there wasn’t a lot I could do other than continue to
email them and ask. It is also very easily to misinterpret tone in an email, so I had to
be very careful when asking users several times not to accidentally come across as
aggressive, as this may discourage them from doing the task which you are asking. I
also learned some tricks from this exercise to encourage people to do a task you
request, such as putting a deadline on it so they feel some pressure to do it rather
than forget about it, and sending individual emails as opposed to group emails. I feel
that my new confidence in speaking in more than just face to face situations will
benefit me greatly in a variety of other jobs and situations.
Another area where I feel my work placement has allowed me to improve is time
management. It was not uncommon for me to have several different tasks to
complete at the same time. This made it vital for me to prioritise my workload and do
the most important jobs first. An example of this often occurred when managing the
release process for several different systems. I often found in a single day I would
40058464
Final Report - Forestry Commission
11
have 4 or 5 releases to conduct, as well as carrying out work on other projects and
attending meetings. I therefore had to schedule when each task was to be
conducted so that everything got done and nobody had to wait longer than
necessary for their releases to be done, whilst also attending any necessary
meetings and completing other work on time. Occasionally I would be asked to
conduct an emergency release, which would mean I’d have to schedule it into my
day amongst other work I had planned at the last minute. I feel that as the year
progressed I learned that being organised and planning your days made the
workload much more manageable, as at the beginning of my placement if I had 4 or
5 things which had to be done I would find the workload slightly daunting and not
know where to start.
If I were to redo my placement, one of the things I would do differently would be how
I managed my working hours. As the FC operates a flexi system, I used to find my
starting times would vary quite a lot. Whilst this was not really a problem as I would
always work my required hours and be present for any meetings I was required at, I
quickly realised the importance of a good routine, coming in later would often make
the day feel much longer as I would have to work until much later, and likewise,
coming in earlier would mean the day felt shorter and I had more time to do things
after my day at work finished.
During my placement, I very much enjoyed the projects where I was allowed to use
my initiative to complete a task and take it upon myself to learn how to solve a
problem. Many of the larger projects I did during my placement I was left to complete
on my own, with colleagues on hand to help if I needed it. I feel that as a result of
being able to work out a solution to a problem myself and implement it gave me a lot
of confidence regarding my abilities as a developer. It also felt much more rewarding
knowing that something that I had created on my own would be used by thousands
of employees throughout the country for a long time. Having more confidence in my
abilities has also allowed me to feel more comfortable with taking on tasks without
being asked and doing more work unprompted, which has had a great effect on my
performance during my placement, and is something that will hopefully help me to
continue to do great work in my future career.
Over the course of my placement, I have also made a lot of very close friends who I
intend to keep in touch with after my placement has finished. As well as people that I
work with every day, I have also made a lot of friends from other departments on
other floors in the building and have been to many social events outside of work from
barbecues to comedy shows. One of the personal highlights of my placement was
the Christmas party, as it was the first time I saw a lot of colleagues in a more
relaxed environment, and got a chance to meet other employees who I might not
have otherwise met. Working with a group of people that I get on well with has had a
great impact on my morale and motivation to work. I hope that in any future jobs I
have throughout my career I am lucky enough to work in more environments with
people who I get on as well with.
Overall I have very much enjoyed my time at the FC, I feel that as well as gaining a
whole variety of new technical skills, and a new confidence in myself to use my
initiative to put the skills into use, I have also grown a lot as an individual, and as a
result of working this year I have become much more confident and stronger at
communicating, a skill which will benefit me greatly not only in any future jobs, but
also during the rest of my university career and in my personal life as well. I am very
proud of all that I have accomplished during my work placement, and enjoy knowing
that systems which I have built will continue to be used by many long after I have
left.
40058464
Final Report - Forestry Commission
12

More Related Content

Viewers also liked

Plantilla de diseño
Plantilla de diseñoPlantilla de diseño
Plantilla de diseño
jopa7lgu
 
Staff Creativa
Staff CreativaStaff Creativa
Staff Creativa4831969
 
Reflexion Momento II
Reflexion Momento IIReflexion Momento II
Reflexion Momento IIpitagoras1957
 
Ftn– Diseño de Imagen Corporativa
Ftn– Diseño de Imagen CorporativaFtn– Diseño de Imagen Corporativa
Ftn– Diseño de Imagen Corporativa
4831969
 
Volvo Bus Corporation Presentation
Volvo Bus Corporation PresentationVolvo Bus Corporation Presentation
Volvo Bus Corporation Presentation
Key Point Consultants
 
Palestra PNL em Vendas
Palestra PNL em VendasPalestra PNL em Vendas
Palestra PNL em Vendas
Guilherme E cruz Silva
 

Viewers also liked (6)

Plantilla de diseño
Plantilla de diseñoPlantilla de diseño
Plantilla de diseño
 
Staff Creativa
Staff CreativaStaff Creativa
Staff Creativa
 
Reflexion Momento II
Reflexion Momento IIReflexion Momento II
Reflexion Momento II
 
Ftn– Diseño de Imagen Corporativa
Ftn– Diseño de Imagen CorporativaFtn– Diseño de Imagen Corporativa
Ftn– Diseño de Imagen Corporativa
 
Volvo Bus Corporation Presentation
Volvo Bus Corporation PresentationVolvo Bus Corporation Presentation
Volvo Bus Corporation Presentation
 
Palestra PNL em Vendas
Palestra PNL em VendasPalestra PNL em Vendas
Palestra PNL em Vendas
 

Similar to FINAL_40058464

Nexteer Internship Technical Paper
Nexteer Internship Technical PaperNexteer Internship Technical Paper
Nexteer Internship Technical PaperEthan Williams
 
Sen2 Software Processes
Sen2 Software ProcessesSen2 Software Processes
Sen2 Software ProcessesMatzeAtFontys
 
Project report
Project report Project report
Project report
MansiKulkarni18
 
Bright copy
Bright   copyBright   copy
Bright copy
Natasha Bains
 
Online examination management system..pdf
Online examination management system..pdfOnline examination management system..pdf
Online examination management system..pdf
Kamal Acharya
 
Bright
BrightBright
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
FarjanaAhmed3
 
online news portal system
online news portal systemonline news portal system
online news portal system
Arman Ahmed
 
Job portal
Job portalJob portal
Job portal
Arman Ahmed
 
Sample report
Sample reportSample report
Sample report
Niro Thakur
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
Kamal Acharya
 
Durgesh o level_2nd_part
Durgesh o level_2nd_partDurgesh o level_2nd_part
Durgesh o level_2nd_part
Durgesh Singh
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
Srinivasan Hariharan
 
How to implement an enterprise system
How to implement an enterprise systemHow to implement an enterprise system
How to implement an enterprise system
Miki Lumnitz
 
CSCI-383 Lecture 5-6-7: Object-Oriented Design
CSCI-383 Lecture 5-6-7: Object-Oriented DesignCSCI-383 Lecture 5-6-7: Object-Oriented Design
CSCI-383 Lecture 5-6-7: Object-Oriented DesignJI Ruan
 
quiz game project report.pdf
quiz game project report.pdfquiz game project report.pdf
quiz game project report.pdf
zccindia
 
Online Quiz System Project Report
Online Quiz System Project Report Online Quiz System Project Report
Online Quiz System Project Report
Kishan Maurya
 
departmental store
departmental storedepartmental store
departmental storeFreelancer
 
Summer-17 Internship at Spreetail
Summer-17 Internship at SpreetailSummer-17 Internship at Spreetail
Summer-17 Internship at Spreetail
Padma Channal
 

Similar to FINAL_40058464 (20)

Nexteer Internship Technical Paper
Nexteer Internship Technical PaperNexteer Internship Technical Paper
Nexteer Internship Technical Paper
 
Sen2 Software Processes
Sen2 Software ProcessesSen2 Software Processes
Sen2 Software Processes
 
Project report
Project report Project report
Project report
 
Bright copy
Bright   copyBright   copy
Bright copy
 
Online examination management system..pdf
Online examination management system..pdfOnline examination management system..pdf
Online examination management system..pdf
 
Bright
BrightBright
Bright
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
online news portal system
online news portal systemonline news portal system
online news portal system
 
Job portal
Job portalJob portal
Job portal
 
Sample report
Sample reportSample report
Sample report
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 
Durgesh o level_2nd_part
Durgesh o level_2nd_partDurgesh o level_2nd_part
Durgesh o level_2nd_part
 
Sdpl1
Sdpl1Sdpl1
Sdpl1
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
How to implement an enterprise system
How to implement an enterprise systemHow to implement an enterprise system
How to implement an enterprise system
 
CSCI-383 Lecture 5-6-7: Object-Oriented Design
CSCI-383 Lecture 5-6-7: Object-Oriented DesignCSCI-383 Lecture 5-6-7: Object-Oriented Design
CSCI-383 Lecture 5-6-7: Object-Oriented Design
 
quiz game project report.pdf
quiz game project report.pdfquiz game project report.pdf
quiz game project report.pdf
 
Online Quiz System Project Report
Online Quiz System Project Report Online Quiz System Project Report
Online Quiz System Project Report
 
departmental store
departmental storedepartmental store
departmental store
 
Summer-17 Internship at Spreetail
Summer-17 Internship at SpreetailSummer-17 Internship at Spreetail
Summer-17 Internship at Spreetail
 

FINAL_40058464

  • 1. 40058464 Final Report - Forestry Commission 1 Gavin Palmer 40058464 Work Placement – Forestry Commission Final Report
  • 2. 40058464 Final Report - Forestry Commission 2 Contents 1. Employment Related Objectives 1.1. E2 – Use standard software packages 1.1.1. Example 1 1.1.2. Example 2 1.2. E5 – Implement/maintain computing solutions according to requirements 1.2.1. Example 1 1.2.2. Example 2 1.3. E6 – Test software or hardware systems 1.3.1. Example 1 1.3.2. Example 2 1.4. E12 – Apply knowledge in the production of user/system documentation 1.4.1. Example 1 1.4.2. Example 2 2. Personal Development Journey
  • 3. 40058464 Final Report - Forestry Commission 3 Employment Related Objectives E2 – Use standard software packages Situation When there are multiple developers constantly updating different elements of the same system, it is important to have methods in place to manage all of these parts effectively. Task During my placement I have been responsible for releasing updates to test systems. As developers can potentially make mistakes when developing their updates and fixing bugs, it is important to manage the test releases so that only the code they consider to be working is uploaded to be tested. Action One of the most important tools to help developers to work on a project together effectively are repository tools. When conducting releases, I would take the files to be run against the system from the repository (MS Visual SourceSafe, Oracle Designer). This ensures that the latest version of the file is the one being used. When a developer makes a change to a file, they can take it out of the repository and make the changes, safe in the knowledge that no other developer can make changes to the same file. To know which files needed to be run for each release, I would also obtain the relevant release note from the repository, which would list the files and the expected outputs, as well as the developer responsible. This made it easier to ensure changes were working correctly and contact the developer if necessary. Result As a result of running these releases, the relevant updates could be properly tested and changes made before being run again in a live environment. If any of the new features added caused errors, the release process means it would be easy to go back to previous versions of the affected files until a bug has been located and fixed. Learned Conducting these releases taught me a lot about the process of releasing updates to systems which are worked on by several developers. It also taught me the importance of managing these releases, and keeping track of changes which have been made, which would make it easier to identify the source of errors. Thanks to this I also have a much stronger knowledge of repository tools, and am much more aware of why they are necessary and how they work. These types of tools are an important part of software development and I will undoubtedly come into contact with them a lot more in my future career and so this initial exposure to them will prove very useful as I continue to work within software. Situation In order to develop software solutions and fix problems with code, a knowledge of basic programming environments is essential. During my placement, I became familiar with several programming tools, including Oracle Forms, SQLDeveloper and Eclipse. Task During my placement I was tasked with using software packages to develop solutions for a variety of different problems. An example of this is when I was
  • 4. 40058464 Final Report - Forestry Commission 4 presented with a problem whereby a script to refresh a set of data nightly was creating duplicate records. Action In order to ascertain what was causing this problem I had to use SQLDeveloper, as this tool allows users to interact with databases. Using my knowledge of SQL I conducted a series of queries on the relevant database, looking for any kinds of patterns from the records which were duplicating. By doing this I noticed that the records which were duplicated were listed under 2 cost centres. As I was still uncertain how to fix this, I had to try and understand how the database was built. My knowledge of SQLDeveloper gave me an understanding of the ‘Data Modeller’ tool, which gives a visual representation of all of the tables and how they relate. I had noticed that the script which runs takes its’ data by the cost centre, and so if the record had two cost centres the record would be generated twice, using the data modeller I was able to easily see where to add in a new identifier, and how it would affect related tables, and so alter the database and script without causing any additional problems. Result Once I had made my changes in SQLDeveloper, I submitted the new script to be run in place of the old one the following night. The script ran without errors and fixed the problem, details of this can be seen here. Learned Through solving this problem, I gained a strong understanding of how several software development tools worked. This is very useful knowledge, as the software I have become accustomed to is used in various different scenarios and so I will more than likely come into contact with it again. Having a knowledge of these tools will undoubtedly be very helpful in aiding me should I have to come up with solutions to other software problems at any point in my career. Colleagues have also been very helpful with teaching me tips for these tools, such as in this email. This has helped me to continue to develop my knowledge of the tools and use them more effectively. E5 – Implement/maintain computing solutions according to requirements Situation A problem was raised regarding viewing Business Objects reports via another system which was in development, known as Casebook. Allowing the user to be logged on to Business Objects automatically via a url was deemed an unsecure method, as outside users could access the system if they knew the url. A different method was therefore required. Task I was tasked with creating a small program using the Business Objects SDK which would create a unique login token each time the user opened a report via the system. It was agreed that the system to do this would be built as a web service, which could then be integrated with Casebook. Action I set about creating the web application as specified by the users. I created it using java and jsp files in eclipse. As there was no written specification, constant communication with the customer was required, as well as updates on the progress of the project to ensure it was what they wanted. Once the system was completed, I researched using ‘ant’ builds to build an ear file for the program to be deployed onto the servers.
  • 5. 40058464 Final Report - Forestry Commission 5 Result I created a tool which can automatically log a user onto a system and display a report specified within my web application. It also handles any parameters which the report may require. When it is deployed to the live environment, this tool will be used on a daily basis by numerous FC employees throughout the country. Learned From creating this system, I learned a lot of new skills. I gained exposure to using enterprise java and .jsp files, which I had never encountered before, as well as using new java libraries such as Spring MVC and the Business Objects SDK, and greatly improved my knowledge of deploying completed projects to an environment to be used by the end users, which has come in useful in my work since. As well as technical abilities, I also learned the importance of having a clear product specification, as without it the customer can change their mind and cause problems with development. Where I to do this project again I would push more for a written specification to follow. It did, however, stress the importance of communication, and give me experience in relaying information to colleagues and customers through mediums such as presentations and helped me to learn by listening and taking criticism on board, which in turn improved my confidence in speaking to others and getting my ideas heard. Situation Due to the ongoing devolution throughout Britain, with FC wales breaking off and forming their own organisation and more parts of the Forestry Commission potentially doing something similar, the need for certain system used throughout the Forestry Commission to be replicated for each division of the FC to use independently has grown. Task I was asked to replicate the system used to manage Government Procurement Cards (GPC) for Forest Research. In theory, the new system could just be a replica of the original one, however it was predicted that once the new system was running, FR might request functionality changes to better suit their needs. As there are 6 different parts of the FC who all may potentially require their own systems and their own functionality changes, files would have to all be named differently and point at their own individual database schemas. Action The process of creating the new GPC system was a long one, involving speaking to many different people regarding setting up a new database schemas and user roles, as well as how the new system was going to interact with the same systems as the original, and whether defining the difference between information from the two schemas was important on other systems. Once I had created the new system, a great deal of communication with the customer was required, as I was not familiar with all of the systems functionality, having not created it all myself, and therefore was not able to test it to the point that was needed. An example of a correspondence regarding this system can be seen here. Result The Forest Research branch of the FC now have their own GPC system which will be live for use soon. This system will be used regularly by many and play a big part in the management and organisation of employee spending for a large section of the FC.
  • 6. 40058464 Final Report - Forestry Commission 6 Learned As well as gaining exposure to Oracle Forms and learning a great deal about PL/SQL, this task involved the most communication with others during my placement at the FC. As I was the only developer working on this project, I had to speak to a variety of different people to learn about elements of the system, some of whom I found it quite difficult to extract relevant information from. This taught me a great deal about how to communicate and learn about systems from non-technical customers, as they may not necessarily know that certain bits of information are relevant, such was the case when I had to attempt to find out about a scheduled job that had to be replicated from a different system. My ability to talk to people in a professional environment has improved greatly as a result of this and I have learned to be more confident when speaking to people and ask for help if I do not know how something works. E6 – Test software or hardware systems Situation A new website called ‘TreeAlert’ had been created by an outside contractor. TreeAlert is a website which is intended to be used by the public to report trees which are dead or infested with pests. The FC wanted the website to be tested extensively before it was released to the public. Task I was asked to create a test plan for the product, and to give it a comprehensive test, documenting the entire process in order for other developers to fix any mistakes. Action I was not given any of the code for the product, and so my testing was entirely from a user perspective. As I had not had much experience with creating a test plan and the FC did not have any template or guidelines regarding testing I had to spend some time researching example test plans and working out the best way to proceed. Once I had a good idea of the kind of test plan that would be best suited to the system, I went through and attempted to evaluate all of the core functionality of the website, and how best to test it. I then went about creating the test plan, and testing every element of the program I could. Result Once the program had been tested, I sent my results to the team of developers working on final improvements for the system, and they went about correcting the bugs which I had found. My test plan can be viewed here and the TreeAlert website is now live and can be found at http://treealert.forestry.gov.uk/. Learned From this task I learned a lot about the process of testing a product and the importance of such a process. I hadn’t really considered before that certain aspects of a website may work in one browser and not in the other, and how this could affect the user and stop the website from performing as required. From reading about test plans I realised that testing is a constant process, as every time a change is made or the system updated in any way, that change needs to be thoroughly tested to be sure it doesn’t negatively affect the system in any unexpected ways. I also gained a lot of confidence from this in taking the initiative to work things out myself. I wasn’t given many guidelines as to how to go about creating the test plan and so had to work it out myself. I realised that having confidence and taking it upon yourself to
  • 7. 40058464 Final Report - Forestry Commission 7 learn things is a good mentality, as you can sometimes feel more confident with certain things having worked it out for yourself. Situation Upon completing development of a software solution, it is important to test that the solution you have implemented is working to a satisfactory level. Occasionally, the testing must be passed on to a user, for example if they are testing that their own account has been altered correctly. But in the case of certain projects, I was responsible for making sure the program ran as required myself. Task After I had completed work on the Business Objects Report Viewer which I had created, it was down to me to test it and ensure it was working without errors and that it was fit for purpose. Action Whilst I did not conduct any formal means of testing on the system, I did go through each function during each stage of development and ensure that it was working without errors. If I found any errors or if the system crashed at any point, I would go back and attempt to correct the problem. I also kept updating my colleagues who were working on the project that this program would be used in conjunction with, to ensure that the system was still fit for purpose, and made any alterations that were necessary. Result As a result of constantly testing the system as I developed it, and checking to ensure it did exactly what was required of it, I ended up with a robust product which was fit for purpose Learned I learned a lot about the importance of constantly checking a product during development. If I had left all of the testing until the product was completed, some of the errors may have been much harder to fix, as it could have required altering much more code. Testing that the product is fit for purpose is also a very important process. As I was not given a written specification for this task it would have been easy to create a finished product that was not ideal for its intended use. I found during the implementation process that several times I had begun to add features which were not relevant and over complicated the system, and likewise, I also missed out certain features that had been asked for. By constantly showing my product to the users I was able to ensure it worked as required. This project also taught me a lot about the whole software development process, as I was able to carry it out from conception all the way until it was ready to be ran as a live system. E12 – Apply knowledge in the production of user/system documentation Situation When implementing changes to a live system, it is important to keep track of each change in case the system should break, this may help you to trace the cause of any problems as well as to re-implement changes should the system have to be rolled back to a previous version in a timely manner. The documentation can also inform you of the developer responsible for certain changes should any questions about the change arise.
  • 8. 40058464 Final Report - Forestry Commission 8 Task Each time I received an assyst for making a change to a system, whether it be something small such as altering a table or a large change consisting of many files, a release note must accompany the change. The release note will detail which files need to be run against the live system, as well as what effect the changes will have on the system. An example of a release note can be seen here. Action The release notes used by the FC, as can be seen in the example, all follow a similar template. This means when creating a release note, one has to simply detail the requested changes and the Assyst which they correspond to, as well as the names of the files to be located in the source control. Result As a result, the person responsible for running the changes against the live system can easily see which files were meant to be run, as well as the message they should receive when the file is run, which ensures that the file has done what is expected. This kind of documentation would be invaluable if someone wanted to find out more about certain changes and when/how/by whom they had been made. Learned Doing this with many changes throughout my placement, as well as being heavily involved in conducting releases to the test environments, has taught me a great deal about the importance of documentation. Without it the management of releases would be very difficult, a process which is important as it prevents developers from making undocumented changes to systems, which could prove to be very troublesome if something were to go wrong. Before my hands on experience with such documentation, I never properly understood the need for such strict and organised management of these processes and subsequently the creation of documentation. The creation of such documentation seems to be a large part of most organisations release and version management processes, and this experience will prove to be very useful in any future software development jobs. Situation Once I had completed my Business Objects report viewer project, it was important to demonstrate to users how it worked. As well as this, being the only developer to have worked on the project meant that should it require maintenance after I have left, another developer may struggle to understand the code. Task An effective way to demonstrate how the program works both from the front end and in the code is to create documentation. I was therefore asked to create a document to give to the customer as well as a document for the developers, explaining the code. Action I began by listing every task I could think of that a user may wish to do with the system, as a good user guide will explain every element of the system. I then went about completing every task on the list, taking screenshots and writing a brief description of each stage. I then copied all of these processes into one document and added a brief description of what the system does overall, before asking a
  • 9. 40058464 Final Report - Forestry Commission 9 colleague to use the document to assist with using my system, to ensure it was effective. To create the technical guide, I went through each java class and .jsp file and wrote a brief description of what that file does, as well as explaining any code which may not have been self-explanatory. Results I had created two documents to aid with the use and maintenance of the system which I created. These documents can be viewed here and here. Learned From this task, I learned the importance of documentation accompanying a system. Attempting to look at my code from the perspective of an outsider pointed out many ways in which it could be confusing and hard for another developer to look at and understand without guidance. Likewise, looking at the system from a user perspective, and writing instructions in terms that a non-technical person could understand posed a slight challenge. For example, writing about the method used to log a user on to the system, whilst being a large part of the program, is irrelevant for the end user, as all that they need to know is that the system will display the report without asking for a logon, and subsequently, any additional information may cause confusion and is unnecessary. This made me think more about how to give information to non-technical users, and how to explain things in terms that a novice would easily understand, a skill which has since come in useful on more than one occasion. Personal Development Journey During my time at the Forestry Commission I feel I have learned a great deal. As well as becoming more competent from a technical viewpoint, I feel that I have also grown a lot as an individual, and am now a much stronger and more confident communicator as a result of my placement. Being in a situation where every day I have to behave in a professional manner and am forced to communicate effectively and manage my time well has had a huge impact on how I go about my day to day life. One of the first things I learned from the process of applying for placements was the importance of being well prepared for an interview. Before being offered my role at the FC I attended another placement interview. With hindsight, I do not feel I was adequately prepared for the first interview and found myself struggling to answer their questions. Having gone through this first interview, however, meant that when I went for my interview for the Forestry Commission I was much more prepared, with answers to any questions they might ask regarding my cv as well as answers to a few technical questions they could potentially ask and some background knowledge of the organisation I could use to demonstrate my enthusiasm. I feel that this had a huge impact as I went into the interview feeling a lot more confident and I was subsequently offered the position. The personal skill which I feel has developed the most during my placement is my communication. I found myself in situations very often whereby I would have to contact customers to enquire further about some work, or to answer any questions they might have. I also had to communicate with colleagues regarding the work I was doing and any additional work that may need to be done. Effective communication was essential as otherwise time could be wasted doing unnecessary work or doing work that was not correct and would therefore have to be redone. I quickly became confident at talking and explaining problems to colleagues as well as non-technical customers. Being able to explain a problem to a customer who was
  • 10. 40058464 Final Report - Forestry Commission 10 not necessarily computer literate could sometimes be difficult, as many things that seem simple to a developer who has worked on a project for a long time may make little sense to someone with no programming background. This became most clear to me in week 27, when I was asked to demonstrate a piece of software which I had created for some customers. As the demonstration was fairly informal, I had not planned it too thoroughly. Once I started demonstrating the project, one of the customers had to ask me to go over a point a second time, as I had brushed past what I thought was a simple to understand aspect when in reality others did not grasp the concepts so easily. This happened a few times during the demonstration. From this, I learned a great deal about how to present information to people, and the importance of making sure that everyone understands the point you have made in the demonstration before moving on to the next. Whilst this particular presentation did not go as well as I would have hoped, I feel that I learned a great deal from my mistakes and I feel that any future presentations I give will be much clearer as a result. Becoming a stronger communicator has had a knock on effect on how I work as part of a team. Whilst I have always tried to pull my weight when working as part of a group, I often would have struggled to have my opinions heard, due to being too shy and not confident enough to stand up and speak to a group. Being put in situations where I have to discuss my work and my ideas for taking a project forward, as well as having to listen very closely to my colleagues ideas and try to come to an agreement on where to go next with a project has had a huge impact on my ability to work as part of a team, and I now feel much more able to contribute ideas and have my voice heard in a group. Not only have I become much more confident at speaking to people face to face, I have also become a stronger communicator via other means, such as phone and email. Working in a large office and working alongside people from smaller offices around the country means that I often have to speak to people on the phone. Before my placement this wasn’t something that I had done very much, and as such the thought of having to phone someone and ask them questions on something was quite daunting. Once I had done this a few times, however, it became much less intimidating, and I eventually found myself making phone calls without thinking twice about it. Part of my job also requires communicating via emails, asking users for information and assigning them new usernames and passwords etc. When sending emails, I quickly learned there is more to be considered than when speaking to someone personally or over the phone. An example of this is when I was helping to conduct a housekeeping exercise for Business Objects, and was asked to contact various users asking them to delete any unused reports. It is much easier for a user to ignore an email, and if they did there wasn’t a lot I could do other than continue to email them and ask. It is also very easily to misinterpret tone in an email, so I had to be very careful when asking users several times not to accidentally come across as aggressive, as this may discourage them from doing the task which you are asking. I also learned some tricks from this exercise to encourage people to do a task you request, such as putting a deadline on it so they feel some pressure to do it rather than forget about it, and sending individual emails as opposed to group emails. I feel that my new confidence in speaking in more than just face to face situations will benefit me greatly in a variety of other jobs and situations. Another area where I feel my work placement has allowed me to improve is time management. It was not uncommon for me to have several different tasks to complete at the same time. This made it vital for me to prioritise my workload and do the most important jobs first. An example of this often occurred when managing the release process for several different systems. I often found in a single day I would
  • 11. 40058464 Final Report - Forestry Commission 11 have 4 or 5 releases to conduct, as well as carrying out work on other projects and attending meetings. I therefore had to schedule when each task was to be conducted so that everything got done and nobody had to wait longer than necessary for their releases to be done, whilst also attending any necessary meetings and completing other work on time. Occasionally I would be asked to conduct an emergency release, which would mean I’d have to schedule it into my day amongst other work I had planned at the last minute. I feel that as the year progressed I learned that being organised and planning your days made the workload much more manageable, as at the beginning of my placement if I had 4 or 5 things which had to be done I would find the workload slightly daunting and not know where to start. If I were to redo my placement, one of the things I would do differently would be how I managed my working hours. As the FC operates a flexi system, I used to find my starting times would vary quite a lot. Whilst this was not really a problem as I would always work my required hours and be present for any meetings I was required at, I quickly realised the importance of a good routine, coming in later would often make the day feel much longer as I would have to work until much later, and likewise, coming in earlier would mean the day felt shorter and I had more time to do things after my day at work finished. During my placement, I very much enjoyed the projects where I was allowed to use my initiative to complete a task and take it upon myself to learn how to solve a problem. Many of the larger projects I did during my placement I was left to complete on my own, with colleagues on hand to help if I needed it. I feel that as a result of being able to work out a solution to a problem myself and implement it gave me a lot of confidence regarding my abilities as a developer. It also felt much more rewarding knowing that something that I had created on my own would be used by thousands of employees throughout the country for a long time. Having more confidence in my abilities has also allowed me to feel more comfortable with taking on tasks without being asked and doing more work unprompted, which has had a great effect on my performance during my placement, and is something that will hopefully help me to continue to do great work in my future career. Over the course of my placement, I have also made a lot of very close friends who I intend to keep in touch with after my placement has finished. As well as people that I work with every day, I have also made a lot of friends from other departments on other floors in the building and have been to many social events outside of work from barbecues to comedy shows. One of the personal highlights of my placement was the Christmas party, as it was the first time I saw a lot of colleagues in a more relaxed environment, and got a chance to meet other employees who I might not have otherwise met. Working with a group of people that I get on well with has had a great impact on my morale and motivation to work. I hope that in any future jobs I have throughout my career I am lucky enough to work in more environments with people who I get on as well with. Overall I have very much enjoyed my time at the FC, I feel that as well as gaining a whole variety of new technical skills, and a new confidence in myself to use my initiative to put the skills into use, I have also grown a lot as an individual, and as a result of working this year I have become much more confident and stronger at communicating, a skill which will benefit me greatly not only in any future jobs, but also during the rest of my university career and in my personal life as well. I am very proud of all that I have accomplished during my work placement, and enjoy knowing that systems which I have built will continue to be used by many long after I have left.
  • 12. 40058464 Final Report - Forestry Commission 12