My photo
Auckland, New Zealand
Smurf sized geeky person with a penchant for IT, gaming, music and books. Half of industrial duo 'the craze jones'. Loves data, learning new things, teaching new things and being enthusiastic.

Friday 5 April 2019

Meetings, meetings, and more meetings

I have an aversion to meetings. I do understand some people like to discuss things and talk about things and that’s how they work best, but we don’t all work well that way. What’s best for one person may be very disruptive for another.

The situation

It's 4pm on Friday and we've come to the meeting. You explained everything perfectly in the first five minutes but you could've just emailed that info to us, and now we’re still sitting here an hour later. Why? That’s right, all the people who understood in the first five minutes need to take turns explaining the same thing in different ways to John from accounts, and now he's even more confused than when the meeting started.

Within five minutes you gave us a spark of an idea to go and investigate more, but you’ve stopped us doing that for the past hour so there's fidgeting, window, floor, and ceiling staring, and possibly a touch of doodling (though I do that to stay focused on listening which can confuse people). As soon as someone even hints at meeting over – we’re gone – like Captain Marvel with her pants on fire!

Let’s compromise. 

All the people who like to talk, please meet those of us who prefer to read and think in silence at least a quarter of the way.

How can we make meetings less onerous?

After a day of back to back meetings then a query as to whether my work was completed, I did some Googling to find a polite way to say ARRRRRRGGGHHHH!!! As luck would have it, my rather specific search of “how can I decline meetings without offending anyone because they are a waste of time and I’d rather keep working?” found a very useful list

With another meeting scheduled in twenty minutes, I emailed the link to the organiser and asked if we could maybe incorporate some of the tips. It’s one of the most productive meetings we’ve had.

The meeting organiser tried a combination of various tips in the list and emailed round an agenda with a request for questions. Questions were asked and answered, in different colours, it was beautiful to behold. We still had the meeting but it was quick and to the point with nothing explained multiple times in different ways. Bliss! 

The ideas that worked:

  • Email round the agenda
  • Ask what we need to do so we don't need a meeting
  • Get as many questions answered as possible in advance
  • Get as many items clarified as possible in advance

A Thing For You To Copy So You Can Have Awesome Meetings Too OOOOH!

This is a rough mockup of the agenda sent round. You can use this technique yourself if you need to. Obviously these aren’t real requirements. Well, they probably are somewhere, but not here.

Email Prior to Actual Meeting

Dear Devs and QAs,

I need estimates for the requirements detailed below in the table. If you have clarifications, additions, or questions, ask and answer now. If we get everything answered and some matching estimates from everyone, then we may not need the meeting, but if not, at least in the meeting we can get straight to estimating.

Thanks in advance,
Your Helpful BA of Awesomeness

Requirement 1 – Holding a meeting in room 1
BA: People gather in a room and write notes on their notepads whilst reading a document on the screen.

Dev1: I think there may be chairs involved, should they be included in the requirement? Apart from that, all understood.

BA: Yup, good catch, have updated doc.

Dev2: Can we work on Req 1 & 3 at the same time as they look very similar?

BA: Alas no, they look similar but one is in the legacy area, one is in the new area, so we need to keep them separate for now.

Requirement 2 – Update table
BA: Drinks, snacks, laptops are added to the table.

BA2: We also need power supplies and pens included.

Dev: Can we have beer, coke, or cider?

BA/BA2: No
Requirement 3 – Holding a meeting in kitchen
BA: People gather in a room and write notes on their notepads whilst reading a document that’s been printed out too many times and handed around the room. The pile of spare documents is used to prop up the wobbly table corner.

Dev: …..

QA: Have you considered printing it on recycled leaves to see if it still works without breaking the printer?

Tuesday 11 December 2018

Titan Throne - Strongest Lord Event

How to maximise points and get in the top 100

Strongest Lord Event is in three phases:
  1. Building strength - most points come from building upgrades
  2. Resource gathering - you can get high points without annoying other teams
  3. Killing enemies - attack or defend - you get points either way
If you want to protect your resources and troops, keep your shields up at all times. City and mine shields are best, but if you can only do one, choose city shields.

BEFORE the event starts:
  1. Save up all your speed ups for building, recruitment, enhancements, tech research, healing - you will need these in large numbers so don't use them until during the event. 
  2. If you have stamina items, save these too so you have spare killing ability in the Kill Monsters phase. 
  3. Also worth saving up alliance reward points so that you can get recruits out of Valhalla.
  4. Start saving up resources so you can build something big for the event. You will need to protect yourself with shields to avoid losing your stash.
  5. Start a building upgrade several days before the event starts so that it will complete just after the event starts. This will then leave you time to upgrade a second building during the build phase.
  6. Set troops building before the event starts so that they complete immediately after the event starts. This gives you extra troop building point opportunities. 
  7. Set an enhancement running on the highest level troop you can manage, before the event starts so that this completes just after the event starts, this gives you time to complete a second enhancement during the building strength phase.
  8. Set tech research running before the event starts so that it finishes just after the event starts, then you have more time for more tech research points. 
  9. Keep building and enhancing troops as fast as you can. If you have limited numbers of speed ups, use them on the high value troops.

During the Resource Gathering/Kill Monsters Phase:

Resource Gathering
  1. Send marches to the elite mines before it switches to the resource gathering phase, and time it so that they finish gathering resources just after the event switches to resource gathering phase and boom, instant point boost into the top 10 (unless everyone learns this trick).
  2. Don't bother gathering from the gold mine, you won't get any points. 
  3. Make sure you empty your mines regularly - other teams will be eyeing up mines that are full that they can raid.
  4. Use all your elite mine time.
  5. Empty your mines just before the phase closes to maximise points. 
Monster Killing
  1. Kill the highest level monsters you can with every attack. If you have stamina in your pack, use this during this phase to get extra monster killing opportunities.
  2. To get higher level monster, use the +3 attack, +3 defense, +10% leadership boosts. You can often find these in the alliance benefits area.
  3. If you can't kill a particular level monster on auto play, try manually driving the spell attacks. Also, try a different monster of the same level. 
  4. Look for the special event mutant monsters and try to kill those.
  5. Beasts don't seem to count, but they also won't use up your stamina, so you can continue hitting them for the goodies they drop.
  6. KEEP SHIELDS UP and keep clearing your mines.

Battle phase - KILL, KILL, KILL - ahem.. 

  1. You can get a lot of points defending other players' cities. If you do this, you can leave your shields up and no-one can attack you.
  2. If defending, be aware that you will lose a large number of troops. 
  3. It is best to run defense whilst you are online and able to keep healing in the hospital so that you don't lose too many troops. 
  1. Save up teleports that take you to a particular point, not a random point. You need at least two.
  2. Before the event starts, find some targets and bookmark them. 
  3. During this phase of the event, teleport next to your target and hammer the hell out of them before they can get reinforcements. 
  4. Teleport away before they can retaliate. 
  5. Put up a shield before they can retaliate.

  1. You will need lots of healing speed ups, so hopefully you have been saving them. Most defense battles against a big enemy will land you with 1d heal time in the hospital. 
  2. Check for recruits in Valhalla if your alliance has this, and get them out. You will need to have saved up your alliance points to do this.

Any more tips? Leave them in the comments.

Monday 19 January 2015

Conference planning 101

It's been a busy 2½ years helping out first with OSDC (Open Source Developers Conference) and then immediately jumping in to helping run lca2015 (Linux Conf Australia). Looks like another may be en route as well... watch this space...

Whilst it's very rewarding helping to run a conference, there are also some traps for new players that I've learned about on the way. Luckily the first conference was a lot smaller than the second, so the lessons learned weren't quite so brutal as they could have been if they were discovered during lca2015.

These pitfalls can be especially hard on those with certain mental illnesses and anxiety disorders, so I've come up with a top 10 list of how to protect your head space when helping to organise a conference.

  1. Make sure you have a 2IC/team for anything you're working on so that if you need to, you can take a month or two out without any feelings of worry or guilt. Remember to keep in touch with the team though so that they don't forget who you are. :-)
  2. Ask for help immediately if you're finding you have too much on your plate or if something isn't getting done as fast as you'd like, whether it's your own or someone else's job - this helps to avoid that gut wrenching anxiety feeling that you're letting folks down.
  3. Don't take on too much. If it's a big job - just focus on the one thing.
  4. Trust other people to do things. This is the hardest one for me as I want everything done perfectly so have to force myself to not step in and do something that takes me 5 mins when someone else is taking several hours. You just have to let them do it their own way. It's frustrating as hell but don't give yourself extra work.
  5. If someone else starts stepping on your toes, be polite but firm, tell them it's all under control and refer them to note 4 above. 
  6. Don't be afraid to stand your ground if something isn't right, but on the same note, if something isn't right but the majority don't care, just go with the flow and let it drop - life is too short to dwell on things.
  7. Don't dance around topics. If there is an issue - raise it in a matter of fact way so that something can be done about it and so that people understand what the issue is. Don't use 500 hundred words when 10 will do. No-one will thank you for spending 2 hours listening to you ramble whilst trying to work out what your problem is. Just tell us what you want us to do to help solve your problem without any histrionics.
  8. Take nothing personally. People get really stressed out and even the nicest person snaps occasionally. If you're the one who snaps, apologise immediately to diffuse the situation. This will also help stop you from cycling it over and over and over and over and so on... in your head whilst trying to sleep.
  9. If you make a mistake - fess up immediately, again, this will stop you from dwelling on it and building it up into more of an issue than it is. 
  10. And to repeat No. 1 - If you need a break, talk to the conference chair and then take a break. It's better to have you take 2 months off and then come back refreshed and eager to continue, rather than have you struggle on and do a half-arsed job that you won't be happy with either. 

Do you have any other ideas/suggestions for ways to protect yourself when running a conference? Leave your ideas in the comments so that others can benefit from your experience.

Thursday 15 May 2014

Continuous Delivery

Setting up a continuous delivery process can be quite a momentous task, especially when retrofitting to an existing product, however, I'm quite lucky with a current project in that we're at the very start of the project so there are no existing processes in place.

Once you've read this, I'd love feedback on my solution and ideas for improvements if you have any.

When I joined the project the developers had already put continuous integration and deployment processes into place using Team Foundation Server (TFS) and Octopus. So the challenge placed before me was to extend this process out to a full continuous delivery plan complete with testing, reporting, full end to end life cycle overview, and of course, happy project, change and release managers.

This is taking a bit of thinking.  I can easily do the geek thing and get down into the nitty gritty of setting all of this up but the business needs to see how it works at a higher level, and they also need to be given confidence in the solution provided. So this means writing documents.

I started out by figuring out the environments we'd need. Initially I requested far too many environments and after being told 'No' by the infrastructure team (boo sucks!) I had a rethink and came up with the following:
  1. CI - continuous integration server - already in place.
  2. DQT - automation server - already in place (just needed to aquire it for my own nefarious means). Needs to match production.
  3. QA - New - needs to match production.
  4. Staging - New - needs to match production.
  5. Production - New - needs to match pro... oh, nevermind...
The next issue was how to maintain the quality into and out of each environment. To do this I created something called Quality Gates(TM me) and a pretty picture to go with them.   Each Quality Gate has an owner to ensure standards do not slip and quality remains high.

Product development needs to pass each quality gate in order to move on to the next phase.

Quality Gate 1 - Requirements & Design
The team already had a quality strategy in place for the requirements.  All the requirements are reviewed by the test team and they also require business sign-off. The business analysts work closely with the business and project team to ensure accuracy of requirements. Architectural governance and design reviews ensure adherence to best practice and satisfaction of requirements.

Quality Gate 2 – Developing the code
Based on the criteria already set up by the development team, this gateway has the following criteria. All the developers working on building the solution need to follow a strict set of coding standards from the outset, the aim being a high quality product from the beginning of the application development lifecycle. Each check-in of code must be preceded by a code review. Prior to a code review, a developer must build the project and have it pass code analysis. The code is analysed by a code analysis tool that enforces strict coding standards rules. Any overrides or suppressions of code analysis errors or warnings must be discussed as part of the code review. All code checked in to source control is linked to either a requirement, a change request, a task or an issue.

Quality Gate 3 – Automated Build, Source Code & Version Control
The development team automate the build process. When code is checked in, a build is triggered. This automated build process re-runs the code analysis tool, performs unit tests and smoke tests to check that the build process has run correctly and that the software can be deployed to another environment. The scripts that run the automated build process are also subject to Source Code & Version Control, so that any changes to the build scripts are picked up and tested as thoroughly as any other code changes.

Quality Gate 4 - Deployment
Deployments are automated to ensure consistency and accuracy. Once deployed to an environment, automated tests need to run to check that the deployment into the new environment was successful. If the deployment is successful, the deployment tool will pass a success message to the automated test tool that will trigger automated smoke and integration tests. If these tests pass, then automated release notes should be created that include all test results, code changes and any build script changes.

Quality Gate 5 - QA Automation
If the automated smoke and integration tests pass, then the full automated suite of testcases should run. The tool should be set up to run automated regression, smoke, use case, performance, load and integration tests. If these tests pass, the release notes should be updated to show the testing results obtained and the process can then move forward.

Quality Gate 6 - QA Manual Testing
After being successfully tested on the automation server, a deployment is made to the QA server. This allows for another test of the deployment process to a new environment. Automated smoke and integration tests should be performed to ensure the deployment was successful prior to commencing manual testing. Manual Tests are performed on new functionality, changes and defect fixes, these tests are then automated so that they are covered in the next release. Using this process ensures the manual testing is extremely focused and detailed. There should be versions of the software available on the QA environment. One will always be a version behind the current version. This will allow for manual regression/comparison testing should an issue be found in the current version. Once manual testing has been completed on this environment, the release notes should be updated to show the testing results obtained, and the process can then move forward to the staging server.

Quality Gate 7 - Staging/Pre-Prod
Here we perform another test of the deployment process. Once deployment to the is environment has been completed, automated smoke and integration tests should be performed. Release notes should be updated to show that these tests have been performed and the environment is handed over to the business for final evaluation and approval. Only when the business approves can the process move to the next phase.

Quality Gate 8 - Production
If the business passes and approves the staging/pre-prod deployment, the process can then deploy into Production. Again, automated tests should be run across the deployment to smoke and integration test the application but this time without affecting any underlying data - for rather obvious reasons.

Here's the pretty picture I created in Visio to match the words above:

That was the plan, next was figuring out a way to do all of the above. And so began the multiple weeks of evaluating software.

The tool needed to provide an end to end lifecycle view, it needed to hook into TFS and Octopus, it needed to manage manual and automated testing, and test automation needed to be powerful and flexible but still easy to set up and understand.   Cut a long story short... we found SpiraTeam and Rapise. They do everything we want them to do, and more.

And now we're onto the next phase, setting up the tools.  I've managed to get TFS, SpiraTeam and Rapise all hooked up, the next challenge is setting up the interaction between Octopus and SpiraTeam using the command line interface in SpiraTeam.  Once that is set up we'll have an end to end automation from coding through to deployment through to automated testing through to deployment to the next environment.

A few myths I've had to debunk over the past few weeks:

1. Manual deployment into production is better than an automated deployment. 
The automated deployment process will have passed testing on multiple environments before reaching production. You can still decide to manually deploy at this point, no-one is preventing that, however, it seems a risky strategy, you could use the well tested automated deployment, or you could use the potentially error prone human deployment.

With Continuous Delivery You can step in and step out of the continuous delivery process at any point. You're not tied to having a fully automated process, in fact, it is probably better to have some manual human check points on the way just to make sure the automation is running the way it should.  For example, you could add in a CAB between staging and production to make sure the change board are happy to proceed into production, and then wait for sign-off before proceeding to the deployment into production phase.

2. Quality isn't as good as you don't have a dedicated system test phase.
Quality in a continuous delivery process is much higher as strict rules are put in place from the outset.  Instead of the developers spending weeks or months writing code then delivering a package to a system test team to spend a few weeks manually testing, the process is continuously tested throughout the lifecycle using a combination of automated and manual testing.  Only code that has passed rigorous testing and has made it through each stage of the continuous delivery process will make it to production.

3. There's no change control
Oh change control, how I love thee. I'm a stickler for change control processes to ensure broken builds don't get into production, however, I can see the benefits of doing it in a new way, both in reduction of time and reduction of risk to the product.

The old way: Build a change register of items requested by the business.  Pick 20 or so of the changes and assign them to build x.  Developers work on build x and the 20 or so changes touch a lot of other code  with risk increased for each additional change included in the build.  When the build is complete and tested, it goes to UAT for each and every change to be tested by the business. If one change isn't correct, or the business decide that change isn't quite the way they want it, the entire build is rejected. This is a very high risk method of implementing change both in terms of time and the risk to the code base.

The new way: as a change or defectc is identified, it is coded, built and deployed through the continuous delivery process.  The testing is very detailed around this one change and when it gets to UAT there is only one item to sign-off. This is a low risk method of implementing change into a system.

Anyway - that's all I have so far.  Feel free to leave feedback.  :-)

Thursday 1 May 2014

20 Week Challenge

The 20 week challenge started on the 28th April 2014, so hopefully it's goodbye wobbly bits.

I'm planning to blog progress on a weekly basis to make sure I stay on track with this. I will also make my exercise schedule available so that anyone who wants it can download it and join in with the madness.

My goals for this 20 week challenge period are:

  • Get my weight down to 70kg
  • Shrink my boobs (please boobs, shrink)
  • Get rid of any back flab
  • Get slimmer upper arms 

My longer term goals are:

  • Get my weight down to 55kg
  • Get back into my size 8 brushed cotton jeans because they are seriously comfy 

I've already lost a ton of weight, down from 105kg to 73kg in 2010, but then a few years ago this insane nagging, constant hunger took over and my weight went up a little. It now fluctuates between 81kg and 85kg. My GP and I now have this monster hunger under control with high doses of ranitidine, and since further upping the dose of ranitidine two weeks ago I've lost 4kg and am no longer distracted by an ever present gnawing pain in my oesophagus. Throughout this hunger period I have been working out at the gym and walking 5-12km per day because I quite like being fit and healthy, but now it's time for phase two of the weight loss and getting hot and sexy. Whoop!

Last night my REPs certified PT, Melinda Rhodes, came over to do my starting assessment. I am that nerd who enjoys gym assessments way more than normal gym stuff, it was loads of fun.

My starting stats:
  • Weight: 81.6kg
  • Body fat % using calipers: Melinda had issues getting any fat on my waist - whoop! This is good news for my heart, I don't store fat around my waist. My arms and hips were a different story though. So lots of work to do there. Just waiting to get the calculated results back from Melinda.
  • Resting heart rate: Resting heart rate was higher than normal at 73bpm as I'd just been rushing around, feeding dogs and was generally stressed from my drive home taking 1hr 45 mins instead of 45 mins.
  • Heart rate recovery: 3 mins of stepping in time to music on a very high step - seriously, that thing is designed for giants, not smurfs. Heart rate at end was 151bpm. After 1 minute it was 129bpm. So not a bad recovery but it could be better.
  • Pushups in 1 minute: 30 (full ones, not the girl ones).
  • Situps in 1 minute: 27 (full sit ups, from flat to fully upright each time).
  • Squats in 1 minute: 30 (deep squats, had to squat and touch bum on the step behind me).
  • Balance tests: I can stand on one leg all day and after a few minutes we decided static balance tests were a bit easy, so we switched to some dynamic balance tests. These are a lot harder and I definitely need to work on improvement in this area. You stand on one leg, raise one leg behind you whilst raising your hands in the air and leaning forward, then stand upright again, but you can't put your hands or foot on the ground. It's a pendulum type motion. I managed three on each leg before wobbling and putting down a foot. Then it was balancing squats on the wobble board - easy peasy again.
All in all, not too bad but there are definite areas for improvement.

My goals for the next 2 weeks:
  • Pick up rowing machine on Sat morning from Elite Fitness.
  • Set up an interval training schedule for the rower, planning to use a combination of HIIT and Tabata Methods.
  • Do daily interval training on the rower.
  • Keep working on push-ups, situps, squats and those pesky dynamic balance pendulum things.
  • Lose another 2kg by 14th May.
Two days a week I only eat a max of 500 calories, on these days I eat hard boiled eggs, meal replacement shakes and veggies; the other five days I eat what I like, which for me is usually soup, tomatoes and more eggs. This method is easier than a diet as you're not actually dieting. This is a lifestyle change and a pretty easy one at that. It's how I used to eat until my late 20s and I was always very slim, full of energy and had no health issues. It was hard to restart eating like this when "The Hunger" was present but now that's been resolved it's proving quite easy to drop back into this way of eating. Seems that research now shows that I wasn't an anorexic exercise junky but was simply eating the right way for the human body to work at its best.

Fixed Interval High Intensity Interval Training
Fixed interval HIIT. Row high intensity intervals at about 85-95% of maximum intensity alternated with low intensity intervals to recover. Adjust the length of the intervals to the level of fitness. A beginning rower can start with high intensity intervals of 30 seconds and recovery periods of 1.5 to 2 minutes, and repeat this for about 10 minutes.

What is the Tabata Method?
The Tabata method involves performing 8 – 10 sets of 20 seconds very high intensity exercise separated with 10 second recovery periods giving a total training time = 4 – 5 minutes. The caveat of the Tabata Method is that all the intervals have to be done at 100% intensity – an absolute flat out effort. You have to strive to perform as much work in each 20 second interval as possible and try to maintain that work rate for the 8 – 10 sets.

Sunday 17 November 2013

Trying New Things

A while back I looked into getting Lasik because contact lenses were uncomfortable after a few hours due to dry eye, and glasses are just impractical when walking dogs in the rain or going to the gym. It took me ten years to pluck up the courage as I'm a bit sqeamish with eyes, but eventually off I trotted to the eye clinic with my loan offer all sorted for the fees so that I can do things quickly before chickening out. I get the eye checks done and find out that the only part of me that isn't too fat is my corneas. They are both too thin for Lasik and there's nothing I can do, there are no alternatives, I just have to live with being a speccy four eyes. ARRGGHHH... Fast forward a few months..{{{wibble wobble fast forward hands thing}}}.. I'm reading a magazine a few weeks ago and I read about something called Ortho-K. It's been around for a while apparently but no-one I've spoken to has heard of it. Why does no-one know about it? It's freaking awesome! Ortho-K: contact lenses you wear at night that correct your cornea so that during the day you don't need to wear glasses or contact lenses. And NO SURGERY REQUIRED! It's cheaper than Lasik but is of course more high maintenance. With Lasik you get it done and that's it. With Ortho-K you need to keep wearing the lenses at night to make sure your cornea is the right shape in the morning for clear vision. In New Zealand, Lasik costs $5800 to get both eyes done, Ortho-K costs $940 the first week when you get the lenses and fitting, then you have 3-4 follow up visits at around $200 each throughout the first year, all up it works out at around $1700. On Thursday I had my lens fitting and Friday morning I could see! When you're young apparently you get awesome vision after the first night, when you're an old fuddy duddy like me, it can take a few nights. I've noticed a gradual improvement over the past few days. The lenses are not the most comfortable thing to wear, but as you're asleep most of the time you're wearing them it's not normally an issue, and the first night was definitely the worst, by the third night (last night) they weren't too bad. If you've never worn lenses it will probably be quite unpleasant initially. In the morning you have to apply liquid tears to free up the lens as it suctions itself to the cornea over night (it's supposed to). Once it's freed up and moving, you have a little orange tool that you use to get it out of the eye - it comes out with a popping sound. :) For the first few minutes things are blurry, and then you realise you can see the pattern on the curtains on the other side of the house - RESULT! Driving to work without glasses or lenses made me feel as though I was back in my early 20's. It's so nice driving without the discomfort of lenses or the peripheral limits of glasses. My sight wasn't 100% perfect, but I could see road signs clearly a long way down the road. 8.30am on Friday was the first night follow up, and the sight test showed an improvement of 2 points, from a -3 to -1, plus the astigatism was also improved by 2/3rds. The legal limit for driving without glasses in NZ is -1.5. The optician gave me some -1.5 soft lenses for the evening as I'm pretty picky about having good vision for driving and your cornea does start to reset over the day, so by bedtime you're not as clear as first thing in the morning. The eyes should continue improving each night to get better and better vision, with longer last effects, some people report having improved sight for 2 days at a time, only needing to wear their overnight lenses on alternatte days. I will find out at the follow up next week just how much improvement we get over a week. It was fantastic going to Taste of Auckland without glasses or lenses, and even better was a really challenging hike on today around Waiheke Island unencumbered by glasses or lenses. If you're thinking of giving these a try, I went to OPSM at 185-187 Queen Street, Level 1.

Thursday 14 November 2013

Shiny Has Shipped

The new phone has shipped overnight. If the US postal service gets a shifty on, it could arrive next week and the queue of people wanting to check it out before I leave MBIE will not be disappointed. I have turned into an excited Tigger! Bounce, bounce, bounce.