Development Environments

This blog is basically stealing “Healthy Software Developers” explanation of “Development Environments – Isolating Customers From Your Changes

Introduction

“Development environments” allow software engineers to view a particular version of the software and control who has access to it. 

If you go back about 20 years ago, there was much less maturity with how changes were rolled out to customers, and every company had a different process. In some companies, developers would just immediately roll them out, straight into production. This might work for the most part if you have a very small and trusted team without the process or contractual requirements. These days, the standard is that most companies need a minimum of three separate environments when developing software.

Even where I work, people used to tell me it used to be much less professional, and without as much legal scrutiny – allowing them to drop DLLs onto a server to quickly fix a bug for a single customer. Now there’s all kinds of people who need to sign it off, and 99% of changes are released as an official version to multiple customers.

Development Environment

The main development environment is a place where an individual engineer can actually work on the software in isolation from any other stakeholder such as a Tester or Customer. Instead of making changes directly to a live website/application, the changes can be run on a local copy on the developer’s machine. The developer can begin looking at the impact of the changes he’s making, and will use test data. Any problem introduced only affects the single developer.

It could be as simple as a copy of a database and a version of the website. A more sophisticated program may have even more dependencies, so need multiple websites or services configured – so you could leverage modern technology like “cloud services” or “containers” to easily deploy this setup. The decision of how this looks depends on the complexity of the software architecture, team size and process.

Staging Environment

The “User acceptance” test environment, sometimes known as a “staging environment”, is another copy of the application, but developers aren’t making any changes to it, and it is also using test data. The purpose of this environment is typically to run exhaustive testing to find any issues before deploying the changes to the end users. 

When companies rely on manual testing, and don’t have modern “continuous delivery” processes, an unreleased version may sit in the staging environment for an extended period of time. In a more automated environment, automated tests can be run, and the version easily deployed to customers if passed. This could take as little as fifteen minutes to an hour depending on the tests, software complexity, and process involved.

Production environment 

The Production environment, or Live environment, is where your customers use your product; so the actual website or application. 

Demo environment

You can have other environments like a Demo environment. This is another copy, but not used by Developers or Testers. The version can be “work in progress”, or a version that is deemed to be ready; but the purpose is to show customers upcoming features and to gather feedback.

Capacity testing

You could create a special kind of test environment for capacity/load testing. This is meant to  stress test the software and see how it’s performing under heavy load. Systems can have increased traffic at specific times of the day, e.g. users all logging in at 9am to start the day, increase in website hits during lunch breaks, more shopping traffic during Christmas period etc. If users are paying to use your service and it goes down; it’s a huge problem. If you sell a product/service on your website and it goes down; then it can cause lost sales. So performing this testing can be essential.

Office Tales: Food

One thing we miss now that we work at home is the free treats people will bring in, and some interesting food thefts. Here is a collection of stories I found from old emails and chat conversations.

Suspicious Chocolates

I was once walking past the security desk, and the security guard was quizzing a guy that had turned up with a box of chocolates. When the security guard asked who the chocolates were for, he kept on saying “for the person in charge”. Yet he couldn’t specifically name someone, or explain why they would be receiving such a gift. I couldn’t guess what his aim was. Was he expecting to be let through to wander around the office on his own. I think the best he could have done is for the security guard to take the chocolates.

Office Treats

When people do bring in treats, it was always a good read when they tried to write a humorous email to declare it.

Hi all, 

There is a selection of young Tobleronette in the upstairs kitchen freshly picked on the Swiss Alps this weekend.
It’s been a poor harvest this year due to bad weather (caused primarily by the blocking highs in the UK) so you might as well take this opportunity to savour some wholesome mountain produce.
Who knows when you may get the chance again.
Bon appetit

David

Canteen

We used to have a canteen that was announced to be closing due to cost cutting. However, it ended up being very temporary.

Farewell canteen and the awesome staff that knew us all by name, how cool is that? They provided caffeine infused productivity juice that was both hot, fresh and cheaper than anywhere else. Hello vending machine, with your cold touch and bags of mini-cheddars. 2016 has really sucked.  

Sausages

This is a weird email to send, admittedly, but has someone taken my sausages out of the downstairs kitchen fridge? 

Thanks,
Andy

This triggered some humorous replies with various sausage pictures

Stolen Milk

Me: There's a note on our kitchen door saying that "someone has been SEEN taking DI Team's milk"

Andy: hahaha
Me: not sure why they didn't reprimand the guilty culprit
it's like he was only partially seen so couldn't be identified. But all they know is that he was non-DI

Fruits

A few developers had dried up fruits on their desks, like a shrivelled orange. They claimed the office environment naturally dried the fruit rather than rotting it, then they kept it as an ornament. I wondered if they took the fruits home and still have them on their desks.

Missing Mugs

Someone has left a black flask/cup on my desk this morning which says “Looking after your world” and “Hot Stuff…” on it. 

If this is yours, please come claim it.
Morning, 

If anyone has seen my ‘Slave’s mug’ mug please can you let me know? I left it in the upstairs kitchen with my teapot on Friday afternoon and it’s this morning it was gone.
I’ve had it 20 years and grown quite attached to it.
Thanks,

Kettle

Hi all

If you are filling the kettle please ensure you don’t dip the bottom of it in the bowl of water (perhaps emptying the water out of the washing up bowl first would be the way forward?). It will trip the electrics out (as has just happened) and water on the kettle base is potentially dangerous anyway.

Cafe2u 

There used to be a van that came to the office to serve fresh coffee and snacks which was called Cafe2U. Someone mailed about it and typed U2. I made a great joke about it.

From: Me

Subject: FW: CafeU2

Like Coffee?
Like U2?
Check out Café U2. They have parked where the streets have no name.

Café U2 Promoter | Bono Enterprise



From: Gill
Subject: Cafe2u Yeadon

Cafeu2 are here.
Gill | Testing | Development

Ant Infestation

Me: Did you hear about the ant infestation caused by Chris? anyway, Mel said that Chris left a can of Red Bull in the office for a few days, and a horde of ants were around it, so they had to call pest control.

Andy: haha i’m sure we don’t call it pest control in england. yet again an americanism 

Me: we call them Bug Bashers around here. Sam has spilled a drink behind his monitor and has left it. Mel is kicking off about it, fearing a new infestation.

Pig Balloon meeting

No idea what a pig balloon meeting is, but I love how passive aggressive this is.

I have made the executive decision, by reason of proximity to where these were left lying around unclaimed, to do something with the pop and dips left over from your pig balloon meeting.

I have put the pop (which is probably flat now) and the dips (BBQ – expire Sept 17) into the downstairs kitchen for people to take. If they are not used up/gone by Friday, they shall be binned. Please help yourselves.
Dorothy

The Pregnancy

My manager received an email from HR apologising for some erroneous emails:

Email Notification Error – PLEASE IGNORE 

We are always looking to improve our HR processes and carry out regular routine work within our IT System to ensure we deliver the smoothest experience.

It has come to our attention that a recent tweak to our maternity process has accidentally triggered an email to be sent to some employees.

Please note, this email was sent in error.

If you received this email, please ignore it and we apologise for any confusion caused.

Many thanks,

Paul

The email they are referring to is a pregnancy email sent about male employees. I wonder what sort of change they made to their system. Were they modernising and allowing male employees to declare pregnancy?

Hello Andy, 

It's now been a few months since we last contacted you, advising that Steven notified us of their pregnancy.

We'd like to remind you of a couple of things, should they be applicable:

Since completing the initial Expectant Mothers Risk Assessment, should either your or your team member feel their work circumstances have changed and would benefit from a further assessment, please complete a new assessment and upload to the "Risk Assessment screen

If the original maternity dates have changed, please remember to raise an HR ticket to ensure their payment during their maternity leave is calculated correctly.

Should you require any further support, please raise a HR ticket.

Test Specifications

Many  years ago, when I was a Software Tester, I remember when we had to write a Test Specification based on the work that the Developers had planned. This was for both Enhancements and Bug Fixes (so new features and changes to old ones).

It would be a Word document, with the Item Number, Title, and then a description of what you would test (the description would be a bit more high level than the step-by-step description featured in an actual Test Case).

You would spend weeks writing it, then you had to get it approved by all the developers, or the Dev Lead. The developer often then told you it’s nothing like you imagined so you had to rewrite it. 

Sometimes they would demo the feature to you so you had a better idea. If they had no comments, I often felt that they didn’t read it.

When there was a new Developer who wasn’t familiar with the process, he “rejected” a Test Specification because of some grammatical issues. I think it was something to do with the wrong tense, and not using semicolons. The Tester was fuming, but he was quite a belligerent character.

I think we often worked from the Bug description, or some comments from the Developer. However, quite often, the comment section would be the Developer writing something generic like “test bug is fixed”, “check data is saved“. If it was more detailed, sometimes you would paste the developer’s notes and change a few words – and have no idea what it meant until you saw the finished thing.

The Verdict

I think both Developers and Testers saw Test Specifications as a waste of time. The Developers weren’t enthused to read it, especially when most people rewrote what the Developer provided, and that might not be the full test coverage needed. The Testers should be adding more value by using their existing knowledge of the system to come up with additional scenarios to cover “regression testing”. 

I think the only advantage is to quickly verify that the Developers and Testers were on the “same page”, but that only works if the Tester has not used the developers words and tried to illustrate that they do understand the upcoming features.

I think it eventually got binned off for what we called “Cycle Zero Testing” which was where the developer quickly demoed their changes; which I think was still hated by the Developers but was easier to understand the value, and was a more collaborative between the two roles.

The Price Of Cheese

It’s a non-programming blog again, but this story is too good to share.

One of my colleagues, Andy, bought some cheese for Christmas from a specialist, and his mate pointed out that the same cheese was way cheaper at Morrisons (a popular supermarket in northern England).

So he threatened to post a bad review, and the Cheese Care & Quality Manager at the company gave him an essay about the cheese making process and schooling him how their cheese is higher quality.

So if you are interested in the process of making Stilton, then continue reading:

The Response:

Dear Andy,

Thank you so much for emailing us and giving us a chance to respond to this for you. I can certainly see why you would be both concerned and upset to see this really big price difference.

There are two answers to this question. The first is that the cheese isn’t identical. It is certainly made by the same producer but not to the same recipe. Most of the Stilton made by Cropwell Bishop is made in the main building at their dairy. It is a good cheese made by a talented producer, but the method of production involves moving large quantities of curds from the vat to the draining table using gravity.

The cheese that we buy is their hand-ladled animal rennet Stilton. This is made in a smaller room to the side of the main production area. In this room the cheese is made in much smaller vats and is made entirely by hand. A crucial step in Stilton making is the transference of the curds from the vat to the draining table. This is done by the traditional, painstaking method of ladling scoops of curds, one by one, and layering them up gently so that the fragile curds are as undamaged as possible. This method has a big impact on both the texture and flavour of the cheese.

Here is a photo of this taking place. You can see that it is a very different process to the large movement of curds that would happen in most larger scale cheesemaking.

A tiny proportion of the overall make of the dairy is made to this method, but this is the only one that we buy. We believe that you can really taste the difference and it is very interesting to do a side by side blind tasting. I hope you would agree that the cheese is not the same if you were to do this.

The second answer is that even given this difference, I am still really surprised to see their standard Stilton being sold at this price and can’t help wondering if Morrisons had some sort of promotion going on at Christmas. The Best range Stilton from Morrisons is usually made by the Long Clawson dairy rather than Cropwell Bishop. Long Clawson Stilton is much cheaper than Cropwell Bishop and is definitely considered to be of a lower quality by most in the cheese industry. I had a look at the Morrison’s site today and the “The Best” Stilton on the site is listed as being made by Long Clawson. In fact, I have never seen standard Cropwell Bishop Stilton being sold at this price. Cropwell Bishop themselves charge £20.57/kg when buying a half cheese and £23.68/kg when buying a 454g piece. They don’t sell their hand-ladled animal rennet Stilton online so I can’t make a comparison. 

I have also looked at other online retailers to get a sense of what other people are charging. The Cropwell Bishop standard Stilton varies from around £29.75/kg to £34.95/kg. So, while it is certainly true that Morrison’s would have much bigger purchasing power than we do, I still find the price of £15/kg to be a really surprising one and wonder if perhaps there may have been some trouble with supply from Long Clawson that led them to replace “The Best” range with Cropwell Bishop but charge the same price. However, this is speculation, and I may be wrong. I shall go to my local Morrisons and take a look as soon as I can out of interest. Perhaps they really do usually charge this price, in which case, they are undercutting both the supplier themselves and any other retailer that I know. I can only say that it is a huge bargain at this price and we would not have a business at all if we tried to compete with it. Our cheese is always well looked after in our maturing rooms and is cut fresh to order. It is never pre-cut and wrapped, which has a really detrimental impact on quality and we have confidence that we are supplying the best cheese that we can, both by buying only the hand-ladled Stilton and ensuring it reaches our customers as fresh as possible.

I very much hope this goes some way to explaining the price difference. Thank you for ordering your Christmas cheese from us. I very much hope you enjoyed it.

Best wishes,

Ruth

Cheese Care & Quality Manager