I suggest British because then you can easily search for ‘z’
Formal Writing
Title
- Choose a good title!
- Ideally a reader should be able to hazard a decent guess at the main
point of your article, just from the title
Formal Writing
- A final tip which is at odds of almost everything else I have said
- Entertain the reader
- The level to which you can do this depends on how formal the writing is
- This is often hard to do whilst still being clear
- Some things are difficult and cannot be summed up in a few bullet points
Formal Writing
- Particular thanks to Dr James Bednar whose notes on
formal writing were much of the basis for these guidelines
- Well-worth reading in their own right
-
here they are
Word/Page Limits
- In coursework assignments such as these you often are given a minimum word count
- For these assignments the word-count estimates are intended to give
you an idea of the depth of your discussion
- For this assignment I'm looking for a report of between 5 and 10 pages
- depending of course on your formatting, diagrams (if any) etc.
- This is merely a guideline
- There is no minimum limit
Word/Page Limits
Maximum
- In less contrived situations you are often given a maximum limit
- There is always an implied maximum limit that people will read
- I will say 10, 000 words is a hard limit
- If you wish to exceed this, contact me
- Otherwise, when marking, 10K words is the amount which I will
be obliged to read
- Of course if you are entertaining then I will continue,
but to be entertaining you area also likely concise
Your Report: Contents
- Your report is there to convince me:
- You have followed sound software development practices
- You have done an adequate amount of work
- You have made well reasoned decisions
- Any deficiences are well justified or
- You have now learnt what you should have done instead
Your Report: Contents
Software Development Practices
- If you are using your source code control well, this should allow
me to figure out how good your software development process was
- But why rely on my detective skills?
- In particular a good thing to describe in your report is the
structure of your source code that might not be obvious:
- This does not mean tell what things are in which files
- This means, tell me why the program is divided in that manner
Your Report: Contents
Software Development Practices
- In addition the report is a good place to explain any refactorings
of which you are particularly proud:
- Explain why it was necessary/warranted
- Explain how your refactor solves the problem it was intended for
- Does your refactor make some part more general, or more readable, or both?
- “My design is adaptable because ...”
- “The look and feel of my web application sucks, but all a designer
need only edit the statically served main.css file”
Your Report: Contents
You have done an adequate amount of work
- You may feel that that needs no justification, in particular you
may feel that the functionality speaks for itself
- But, you may feel that the amount of work is not fully appreciated
simply by looking at the functionality, so:
- Explain any difficulties you had
- Explain how you overcame those difficulties
Your Report: Contents
You have made well reasoned decisions
- Describe any decisions which you think are interesting
- In particular anything where you think the obvious answer is wrong
and you want to explain your reasoning behind what seems like a
surprising choice
- “At first glance it seems silly to have used more than one
general purpose language for the back-end, but ....”
Your Report: Contents
Any deficiences are well justified
- This is mostly about saying what you would do if you had more time
- Examples:
- “I have not implemented user authentication because it is not interesting and other features
demonstrate value much more clearly”
- “Users cannot edit their posts once submitted, but clearly adding such a feature does not require a major re-design”
Your Report: Contents
Or, lessons were learnt
- As stated previously, failure is how we learn
- Failure is a good thing, provided you learn what not to do
- So, describe anything you now recognise as a mistake:
- Explain why you thought it was correct initially
- Why you now believe it was incorrect
- What you think you should have done instead
Your Report: Structure
A Possible Structure
- Introduction: what works, are you happy with what you have?
- Difficulties: what did you spend more time on than you would have hoped
- Structure: and how you arrived at that structure, major refactorings, what makes you think it is the correct one now
- My test strategy: This is how I tested my implementation, this is how I know I have tested enough
- Deficiencies: Both justified and caused by errors in decision making
- Things I would do differently: did I choose the correct languages/technologies, where I would go from here? Start again?
- Conclusion: are you happy with what you have?
Refactoring, Optimisation & Testing
Software Engineering Large Practical
Automation
- Tests are really just a special case of the maxim:
- “Never do what the computer can do for you”
- Any activity that requires more than one step, should be
reduced to exactly one step
- Code as if you have anterograde amnesia
- Everything you do today, you will forget, so it must be
recorded
- If there is specific software for recording it, such as an
issue tracker then use it
Instructions
- If you have to write down instructions, such as installation instructions:
- Ask yourself whether or not you can simply make those instructions executable
|