Someone recently asked me whether we used an ‘agile’ approach to developing software. So I thought I would post a few words about our experience of Agile:
What is Agile?
The conventional approach to producing software is that you decide what need to be produced, write a specification, develop the software, test it, and have a finished product.
With an ‘agile’ approach, you have a number of ‘sprints’, or ‘increments’ lasting 1-4 weeks, where, in each of these sprints, the team adds a part of the functionality of the final product, tests it, and releases a version ready for use, with the final ‘sprint’ resulting in the finished program.
Agile also has a couple of interesting terms, which come from rugby: the team is supposed to have a ‘scrum’ or get together every day to discuss progress, and the person in charge is called the ‘scrum master’. The word ‘sprint’ comes about as the team sprints for the line (to get the software completed).
The short answer is that we don’t use an agile approach to develop our educational software. One of the reasons is that we can’t release a program that is anything but finished, and there usually isn’t a half way stage we can get to.
We also know that writing the software (and getting in audio and graphics), whilst not quick, is the “simplest” part of creating a new title. We know how to write software, it is time consuming, but straight forward.
The hard part is knowing what needs to be produced, and as such, we do need to spend quite a lot of time creating a new title: this means thinking of the idea for a program; working out how to make that into a good interactive activity; and then adding the details for the program (what the screens will look like, what happens when buttons are pressed); and what graphics, animation and audio will be needed.
We also realise that we are creating something, and that does not always lend itself to the idea of sprints (and the implied sprint deadlines). Yes, we can knuckle down and get things done for a sprint deadline, but having done that and realised that with an emphasis on speed, we haven’t noticed that what had been created wasn’t quite right!
Work in industry
I have also worked in industry where the ‘agile approach’ is often spoken about. The overall development is broken up into ‘sprints’, with milestones for each sprint. For example with a system that is being used, but needs changes, it’s a matter of implementing some of the changes, creating a version of the software that can be used (in a sprint), before going on with the next set of changes in the next sprint.
An all new system, is a bit like our educational software, where time needs to be spent working out what needs to be done at the start. After that the software development can be broken down into sprints. In this case, what needs to be done will have been agreed with clients etc., so there is more certainty, and sprint deadlines need to be followed.
We have become greatly interested in the rise in interest in computing lessons in schools, and as software developers we wanted to let you know how we created our Wordsearch activity.
1. Reason for creating
Why make the program? To support some of our existing activities, we wanted to offer a wordsearch containing some of the keywords for the main activity. To get it started, we thought that we would create a Christmas version for children to use, and to see how popular such an activity might be online.
3. Starting Point
4. Plan of Action
The list of tasks that we needed to do included:
a. Draw the screen containing a Grid and Letters
b. Be able to handle mouse clicks
c. Generate grids containing words
d. Add some graphics and animation
5. Draw the screen containing a Grid and Letters
In an ideal world, we would have the skeleton of our “framework”, and we could add code to make into a new activity. In the real world, we took the last activity (Property of Materials), and bolted on the code, initially for displaying the Grid.
This brought up the key questions about whereabouts on the screen we would place the grid (and we use global variables so that we only have to set the position of things like the left margin , the top and the cell width and height once). And how we would store data about the grid – we decided on one two dimensional array storing the letter to go into each square, and another two dimensional array storing whether a square would be shown as highlighted.
Once the grid was looking ok, we could them cut out the old bits of code (and directories containing data) that would not be needed. We are always careful when doing this, in case we delete something that means the code won’t work (and it takes a long time to sort out), so we go one small (reversible step at a time)
6. Be able to handle mouse clicks
This was the trickiest part of the development. For this, we wrote some ‘pseudo code’, a half way stage between English and computer code of the form:
Writing pseudo code involves some crossings out, and rethinks, which is great, and to be encouraged. Sometimes your first idea isn’t the best, but it needs to be put down, as it lets you have a better idea – and it’s a mistake to try to stick with the original idea. The great thing about writing pseudo code, is that mistakes made at this stage can be corrected more quickly than when it’s entered into the computer. Ideally, you would dry run the code (or have someone else do that), but I must admit we didn’t do that on wordsearch.
So we were able to write this code, and test it with a basic word in the grid.
7. Generate grids containing words
This was a potentially harder piece of code to write, and involved more pseudo code. We used a simple system (maybe too simple as the grids don’t have many words that cross with each other). We were aware that the code could potentially lock-up, if it could not fit all the words into a grid, so we let the program try a word in several positions, and then give up and go onto the next word. Cheating maybe, but it worked!
A further complication was that this code needed to be re-run once all the words had been found, where the variables needed to be re-initialised.
8. Testing, testing, testing
Having broken the coding down into stages, we did test each part as we went along. But once it was finished (and we added some graphics, but the animation has been missed off for now), we started to test it.
This showed up a few things we’d forgotten (like we hadn’t got the re-initialising part right when it needed to regenerate a new grid). Once they were done, we normally write a test check list – to ensure that when we make a small change, either now, or in the future, we check everything. Then we test with some representative users (in this case with a 7 and a 9 year old), and hey presto, it was ready to go!
I hope this has shown some of the steps involved in writing a small software program, and if you have any questions, please ask me. In the meantime, the final program is here: https://stormedapps.co.uk/christmas/
It is with much sadness we are sharing the news that our friend and colleague, Roman Kirsanow has died in Coimbra Hospital, Portugal from lymphona. He was in his mid 40’s.
Roman was a very talented software engineer, and much more, and had been working in the area of educational software since the late 1980’s. He came from Newcastle in the North of England, and in the early days of computing, was introduced to programming by a teacher. he worked for a number of small companies in the UK at the time.
At the end of the 90’s Roman decided that he would like to live abroad, and work remotely using the power of the internet. After a spell in Wales, he spent several years in France, and had spells living in Spain, Portugal, Brazil, France again, Hungary, Romania, Sweden, and finally back to Portugal, where he loved the way of life.
We worked with Roman over a number of years. His first demo of his work was a dinosaur database on Acorn Archimedes computers, and he pursuaded us to adopt Java (so our programs would work online), and later on to produce the programs as apps! He also recently worked with the Fench company, Cabrilog.
Roman was always excited by the possibilities of computing and technology, and was very innovative with his idea, both commercially and technically. He was always interesting to talk to, he had a good sense of humour (even when in hospital), and was able to build friendships and connections wherever he went. He will be sadly missed.
A big thank you for the lovely expressions of love and sympathy for Roman. Roman’s funeral will be held on Saturday 10th November in Leiria, Portugal.
The recent biopic about Neil Armstrong brought back memories of the Apollo moon shots that happened in the late 1960’s, culminating of course in Apollo 11’s landing on the moon, and Neil Armstrong stepping onto the moon’s surface.
This summer, we decided to start an experiment to grow sunflowers from seeds – just like our character, Smudge the Spaniel does in our activity Seeds to Plants.
Seeds to Plants is a popular science activity for children aged 4 to 8 years old. It is currently an app for iPads, a free app, and it also runs online (fre with ads). It is designed to help children learn that in order for plants to grow, they need a source of warmth, water, and to be kept away from the cold. In Seeds to Plants, this is done by children choosing the weather on each day, and a mix of rain and sunshine works best, and avoiding choosing snow for two days running!
In our case, we started with an old packet of seeds, some plastic cups, and some soil from the garden.
The first amazing thing that happend was when, on day 2 or 3, we saw shoots appearing above the soil. What was most amazing, was that the seeds still worked, despite having been in a packet for at least ten years!
After a few days, the first leaf appeared, and the plant started to grow! In the software activity, this is also one of the first noticeable thinsg to happen
Through June, the plants continued to grow. One plant is shorter than all the others, but it does continue to grow – in the software activity, all the plants are the same height, although the details about them are slightly different.
After six weeks, no heads had started to appear, but the plants were just about ready to be moved from their plastic cups into a larger plot: in the software activity, Smudge had anticipated this, and planted them into a patch of garden!
It has been a remarkable summer – and not just for England’s performance in the soccor World Cup – but we’ve had a heatwave that has lasted, really from late April, with hardly any rain. This has meant that we have needed to keep the plants watered – in the software activity, children do have the option of using a watering can. If children don’t water, then the plants will start to wilt, but by choosing rain, or watering them, the plants will recover
And that is just what happened to our plants – they would wilt, when we forgot to water, and then recover. I do remember not being able to watch the penalty shoot out against Colombia, going out and watering the garden, with success – the plants recovered, and England got through to play Sweden!
Last night it was clear, and we went outside after 11pm to look up at the Perseids, and hey presto, we saw lots of meteor streaks! It’s the first time I have seen multiple meteors: they happened every minute or two, some were long spectacluar streaks of light (it’s the ‘afterglow’), and some were shorter, almost like seeing a bird flying across the sky! Most of the streaks came from the North East, heading South West, but one or two came from different angles.
We also saw two satellites travelling across the night sky.