Assignment title: Information
Programming Solutions 1 (IB137)
Resit Assessment 2015/2016
Deadlines:
Part 1: Friday 5 August 2016
Part 2: Friday 2 Sept 2016
Financial Advisor Recruitment
Introduction
Most organisations state that their people are their most critical resource; however relatively few
organisations actively plan the recruitment, retention, progression and departure of their staff, to ensure
they have the best ongoing resource profile to meet the anticipated workload of the organisation. This
issue can be important for financial advice companies, and one such firm has invited you to develop
and present a prototype application that will help them to improve their thinking and planning. This
particular firm works sells and services contracts to provide advice for the staff of other companies.
This advice can be seen as an employment benefit offered by the customer companies to their staff. It
normally includes pension planning advice in particular, but can also be broader in scope.
The model must also be extremely easy to use, and 'foolproof', since the MD has expressed an interest
in taking it home to 'play with'!
A full specification follows later.
Part 1 (25%)
Consider the task, and the capabilities of Excel. Design a suitable spreadsheet-based
application that addresses the requirements. The model must conform to the detailed
requirements specified later in this document, must support the overall task and must
provide the deliverables listed below. It must include both a significant number of nontrivial formulae, and also VBA macros to achieve the required functionality, control and
usability.
Deliverables
Submit a report, clearly marked with your ID that includes:
x a logic model that represents the entities and their logical inter-dependencies required to achieve
the basic functionality, and a short review of how it informs your design (200 words approx.).
x a diagram that shows of the layout of the spreadsheet model, with an explanation of the key design
aspects, decisions and assumptions about the model, including choice and purpose of the sheets,
and their broad layout. It should also visualise the relationships between the sheets, and should
outline the user interaction and any special features or functionality that you wish to emphasise.
You will get relatively few marks for merely describing your work – you must say why your design
is appropriate, as well as assessing its strengths and limitations (refer to the literature and module
notes). You should not need to specify detailed cell references, but might label different sections
to help explain the working. You should explain what will function with formulae and what will
use macros (800 words approx.).
x a specification (in pseudo-code / English, not VBA) of a macro that will
implement a key element of automation provided by the spreadsheet (150
words approx. in addition to the code itself). Do not just explain the
pseudo code operation; say how it adds value to the application.
x a sketch1 of an informative chart that could be generated from your data,
with a brief justification of its purpose and its particular chart type (100
words approx.).
x two original (i.e. not given below) ideas about additional functionality you
might realistically include in your implementation (200 words approx.).
Notes.
1. The main value of the separation of Part 1 and Part II is to emphasise the importance of the design
as a pre-requisite to implementation, as well as to encourage progress and creative, collaborative
initial design.
2. You may include support for one additional feature within your design, if you wish, as long as it
does not compromise communication of the basic concept.
3. I will provide feedback and a mark for part 1 within 3 working days of the deadline if it is submitted
by the deadline.
4. For part II, you may change and develop ideas about their individual model, and may use as well
as critique the earlier ideas.
5. Part 1 does not require computer implementation, but appropriate computer tools may be used if
you wish. The report should be word-processed, however.
6. Word limits are approximate guides only; however answers that are too verbose (e.g more than
20% over the guide) may incur penalties. Conciseness is generally a virtue in academic reports.
Part 2 (75%)
Implement the application in Excel. You may change the part 1 design. The
implementation must run on an English language system – so avoid non-English
characters embedded in field names or code etc, use English language variable
names. It must include both a significant number of non-trivial formulae, and VBA
macros to achieve the required functionality, control and usability.
Deliverables
x your spreadsheet that fulfils the functional requirements, in Microsoft Excel format, and no other
unnecessary files. It should include the required charts. The name of the spreadsheet should be
simply YourIDNumber.xlsm (or .xls). It must not be password-protected and must be virus-free.
Check that you can load and run the application on a WBS network computer.
x a report (YourIDNumber.pdf) including:
1) user operating instructions: concise but clear and appropriately structured. Before handing
in, follow your own instructions to test them as well as your model! Good instructions should
direct the user rather than just describe the system (250 words approx.).
2) descriptions, and optionally, printouts of the main areas of interest and functionality in your
model with an explanation of the key design and assumptions of your application, including
spreadsheet layout, user interaction and any special features. You will get relatively few marks
for merely describing your work – say why your design is appropriate, or critique it. You will
1 I mean here to offer you the freedom to create the sketch any way you like. You can use Excel if you wish! Put some
realistic data in, but it does not have to be the output of a working Excel model.
also not gain credit for over-documenting minor parts of the model. This section may also
indicate key differences from the plan previously submitted in Part 1 (1000 words approx.).
3) images of two informative charts, one of which may be the Part 1 chart suggestion, which can
be critiqued if appropriate. Describe how the new chart illustrates some of the key information
generated by the model (150 words approx.).
4) results of any specified calculations or optimisations (200 words approx.).
5) 2-3 selected illustrative VBA routines (not all of them – focus on those that best illustrate your
work; show and discuss briefly what you've achieved with VBA and how it helps the
application). (250 words approx.)
6) brief reflections on the particular strengths and weaknesses of the implementation you have
created, including three further ideas about how you might significantly improve or further
develop your system if you had the same time again, in terms of both the functionality, design
and realism of the model. You gain little credit for merely listing the standard basic or additional
functionality elements that you failed to implement, nor for repeating the group's suggestions
for additional functionality in these three suggestions (400 words approx.).
Evaluation
The assessment will gain credit for design, functionality, usability, presentation, robustness and clarity,
conformance to the specification, generalisability, maintainability, and the use of appropriate
functions, programming constructs and the quality of the report. Better models will have innovative
but relevant features and original additional functionality. Do not neglect the report, which
contributes to the marks and should do full justice to your model and thinking. The marking scheme
will be approximately as below.
Marking scheme (approx.)
Part 1
Logic model 4%
Sketch Layout and design justification 12%
Macro specification 3%
Chart and interpretation 3%
Additional functionality 3%
Part II
User instructions 3%
Justification of design and features 4%
Layout, structure, formulae and
formatting
12%
Charts and interpretation 3%
Basic functionality 20%
User-friendliness and control including
validation and robustness
12%
Additional functionality 7%
General control of macros 10%
Ideas for improvements and overall
perspective
4%
A viva may be also given to test your personal understanding of your submitted work.
Detailed specification
Contracts are sold as packages of work (sometimes a customer may buy more than one package,
depending on its size). The firm's staff who generate and service these contracts can be represented by
three key ranks; junior advisor, senior advisor and partner. Staff costs are £30k, £60k and £100k for
juniors, seniors and partners respectively. All staff undertake productive work, but have different work
profiles. A contract package lasts for just one year (so contracts have to be won again for the next
year), and requires the time of 3 juniors, 0.6 seniors and 0.5 partners. Although contracts may be won,
they can only be delivered and the profits earned if there are sufficient staff in place at each required
level to resource the contracts over the year they are due to run; otherwise the work is lost to
competitors. Partners and senior advisors spend the rest of their time after servicing contracts working
on bids for new contracts; each partner-year is expected on average to win 0.5 new contracts, to be
delivered in the following year2; each senior advisor-year is also expected on average to win 0.5
contracts3. Only whole numbers of fully-resourced contracts may be signed up. There is a limit to
scalability however, and senior advisors' contract-winning capability is reduced by 1/150 for each
senior advisor in employment, although partner capability is not affected by scale.
Past records from personnel suggest that about 20% of staff of each rank leave at the end of each year
for one reason or another. Likewise, 15% of juniors are promoted to seniors, and seniors to partner,
each year.4 Additionally, new advisors may be recruited towards the end of each year, becoming
available for work in the next year; however partners are not recruited, but are only promoted from
within the firm.
Assume that the firm wants a stable recruitment policy of the same numbers every year5. Your
investigations have established that currently there are 8 juniors, 5 seniors, 3 partners, with 3 contracts
already won for the current year, and that the average revenue per contract is £500k.
You are required to use this information to formulate a model that will allow the HR planner to
experiment with recruitment figures and contract-winning capability, and to examine the firm's overall
performance for 10 years ahead.
2 So contracts are won in one year, but worked on in the following year (if there is capacity in the following year).
Seniors and partners have to work current contracts, and only use spare capacity to win new contracts. These figures are
referred to as their 'contract-winning capability'.
3 Senior advisors pool their efforts, and partners do the same, but each group works contracts independently of the other.
4 Both promotions and leavers are based on figures at the start of the year, independently of each other.
5 This also considerably simplifies the problem. The number can be different between juniors and seniors, but for each it
must be the same each year.
Basic functionality
The application must:
x Support calculation of ongoing resource numbers, the number of contracts won, contracts actually
worked, resources needed, and the expected profit each year and overall.
x Support user interactions that allow the planned number of recruits and contract-winning capability
to be changed.
x Demonstrate your model's capability to answer the following questions, supposing that promotion
and leaving rates and partner contract-winning capability are fixed:
a) Show that the profit for the first year is £160k, with 2 contracts won for the next year, both of
which can be delivered.
b) Suppose that 3 juniors and 2 senior advisors are recruited each year; show that there would
be an expected profit over the 10 year period of £1250k.
Use the model to explain why/how this profit is lower than optimal; how (in general terms)
could it be improved?
c) Find the maximum total profitability over the ten years that could be achieved with these
assumptions, by changing recruitment plans for juniors and for seniors (still keeping the
numbers the same for each year). What is the maximum profitability, and what recruitment
levels will deliver it?
Optional additional functionality:
1. Experiment with one parameter of the model to find how it drives profitability. Report on the
sensitivity and the behaviour of the recruitment plans to this parameter, keeping other parameters
at appropriate constant levels (and still keeping recruitment the same for each year).
2. Make other insightful observations about the behaviour of the model.
General support and tips:
(Individual techniques required will depend on each particular model; here are some suggestions)
Part 1
1. Part 1 (design) is to be done in groups, and should not include implementation.
2. Be steady, systematic and consistent about the setup of your model; then the multiple
different parameters will not confuse you or the user. Think through the logical
dependencies; although there are several factors, it is essentially a relatively straightforward
model.
3. It is likely to be helpful to plan your spreadsheet layout and functions on paper, in your own
language, to express clearly what you need to happen, then to work out how to implement
it in Excel. Of course you need to know Excel functionality in order to plan appropriately,
but you only require a subset of what we have seen in the module. Split it into small stages
and use the spreadsheet's power to link them together.
4. I am more interested in seeing functional, usable and maintainable models than ones that have oversophisticated presentational or mathematical features; however, neat and tidy presentation does help
usability and is normally associated with good design.
5. You are not expected to formulate or implement a mathematical optimisation algorithm, but are encouraged
to design macros that allow you to automate some of the heuristics you discover as you use the model
manually. You are not expected attempt to design for exhaustive optimisation except as indicated in
'Additional functionality'. Although it is interesting to reflect on this possibility, you should know enough
about combinatorial explosion to know that it would take rather a long time!
6. There is no single best model.
7. You need not repeat the assumptions given in the specification.
8. It is helpful in general not to rush to macros too early, in order to get an appropriate balance between statics
and dynamics, but you should use the power of both macros and formulae, demonstrating competence in
each. The layout of your spreadsheet will be influenced by the balance of macros and formulae, and vice
versa.
9. Since we have not yet dealt fully with macros, you may have to anticipate elements of their role, and you
will have freedom to enhance your designs for part 2.
10. The logic model need only represent the logic for the basic functionality.
11. The Part 1 report is to be directed to the assessor.
Part 2
12. Part 2 (implementation) is to be done entirely as individuals, independently, and is subject to collusion
and plagiarism regulations.
13. First set up a 'static model' that allows you to make some decisions manually, experimenting with
different possibilities to get a feel for the impact of various parameters and decision variables. This will
also give you a feel about what information (intermediate as well as output) you need to be displayed, and
what controls you need.
14. Implement the basic features first, although there are significant marks for the additional functionality.
However, try to think through the whole model before implementing. If you are having difficulty creating
the functionality, make assumptions or simplifications, state them clearly, and use as few as possible. You
need not repeat the assumptions given in the specification.
15. Ensure that the program is robust, so that is does not crash if inappropriate or unexpected responses are
made by the user, and so that data entry is valid.
16. Ensure that your model implements the rules realistically.
17. It will be nice if you can easily vary some of the key elements of the model, since you know that in the
medium term 'change is the only aspect of business that is constant'.
18. Macros should not take long to run!
19. Considering the warnings made in the lectures, and because solutions can be found without using Solver,
the use of Solver it is discouraged for this piece of work.
20. A good application will include significant user interaction, and validation of that
interaction. It will include a range of both formulae and macros (but see comment under
Part 1).
21. Remember that the user is to be your client, who is familiar with Excel as a user but not
as a developer, and who thinks macros are magic (as we do -).
22. Avoid variable names in VBA that have a reserved meaning – e.g. 'Day', 'Row', 'Column', 'History'.
23. Avoid parameters that are embedded into formulae or code.
24. You are encouraged to record parts of macros, then paste the VBA instructions into procedures, or to adapt
examples (with appropriate referencing for significant sources).
25. There is no substitute for testing your own system to identify and solve bugs, clarify requirements and
ensure usability.
26. Try to shape your code so that you do not need to repeat almost identical code instructions (or at least tidy
up, where you find that you have repeated code).
27. File size should be <5Mb, probably much less; you will not get marks for size per se!
28. Sorting data (if you need to) is easiest if they are in spreadsheet rows; you could sort an array of data in
VBA, but would need to code a sort algorithm.
29. Use named ranges, but not too many – they can get in the way of copying and pasting; use key reference
points only. Excel "Error 400" usually means you are trying to use a range name that does not exist. Error
400 or Error 1004 may mean that your macro is attached to a sheet but is trying to do something in a different
sheet.
30. Ensure you do not hide sheet tabs, row/col headings or scroll bars, unless you allow me a one-click override
to restore these!
31. The Part 2 report is to be directed to the assessor, but the user instructions element should be directed to the
user.
Health Warnings
1. Maintain regular backups; computers are programmed to crash during critical times of assessment work
2. Strategies encouraged by this simulation are not guaranteed to return profits in the real world!
Students may seek further clarification if any ambiguities become apparent.
Plagiarism guidance
Please ensure that any work submitted by you for assessment has been correctly referenced, as WBS expects
all students to demonstrate the highest standards of academic integrity at all times and treats all cases of poor
academic practice and suspected plagiarism very seriously. You can find information on these matters on
my.wbs, in your student handbook and on the University's library web pages here.
The University's Regulation 11 clarifies that "…'cheating' means an attempt to benefit oneself or another by
deceit or fraud. This includes reproducing one's own work…" It is important to note that it is not permissible
to reuse work which has already been submitted by you for credit either at WBS or at another institution
(unless you have been explicitly told that you can do so). This is considered self-plagiarism and could result in
significant mark reductions.
Upon submission of assignments, students will be asked to agree to one of the following declarations:
Individual work submissions:
"I declare that this work is entirely my own in accordance with the University's Regulation 11 and the
WBS guidelines on plagiarism and collusion. All external references and sources are clearly
acknowledged and identified within the contents. No substantial part(s) of the work submitted here
has also been submitted by me in other assessments for accredited courses of study, and I
acknowledge that if this has been done it may result in me being reported for self-plagiarism and an
appropriate reduction in marks may be made when marking this piece of work."
Group Work submissions:
"I declare that this work is being submitted on behalf of my group, in accordance with the University's
Regulation 11 and the WBS guidelines on plagiarism and collusion. All external references and
sources are clearly acknowledged and identified within the contents. No substantial part(s) of the
work submitted here has also been submitted in other assessments for accredited courses of study and
if this has been done it may result in us being reported for self-plagiarism and an appropriate
reduction in marks may be made when marking this piece of work."
By agreeing to these declarations you are acknowledging that you have understood the rules about plagiarism
and self-plagiarism and have taken all possible steps to ensure that your work complies with the requirements
of WBS and the University.
You should only indicate your agreement with the relevant statement once you have satisfied yourself
that you have fully understood its implications. If you are in any doubt, you must consult with the NIE
of the relevant module, because once you have indicated your agreement it will not be possible to later
claim that you were unaware of these requirements in the event that your work is subsequently found to
be problematic in respect to suspected plagiarism or self-plagiarism.
Andrew Martin, July 2016
[email protected]