Your wiring is for hardware SPI. Both hardware SPI and software SPI should work.
I think everything is wired okay.
I would like the see the bottom side of the module to check your soldering.
Could you move it to another location on the breadboard ? Some breadboards are low quality.
Perhaps the sensor module is broken.
Do you have a multimeter to measure the voltages of the module ?
Perhaps the I2C is a little easier. You can connect the wires and measure the voltages while the i2c_scanner is running. Arduino Playground - I2cScanner.
At this moment, the soldering of the pins is the first thing to check.
BME280 is a SPI or I2C sensor. It has two I2C addresses 0x77 and 0x76. The first is the default address, to have the latter you have to put SDO line to GND.
Adafruit boards have SPI and I2C pins so you can choose which address to use but cheap I2C only boards doesn't allow to choose the address.
If multiple parts are to be used, then pin 5, SDO, can be used as a chip select in I2C mode. Drive each devices SDO high with a unique signal. Drive SDO Low to one device and access it at address 76 - the other will be looking for address 77 and will not respond.
The SDOs can be from a shift register if you are short on pins.
Tho, if you had that many devices and chip select pins, I don't know why you wouldn't use the much faster SPI (up to 8 MHz) vs the slower I2C (400 KHz).
Usually these sensors take time for a measurement so faster SPI is useless.
If we talk about displays or ADCs you're absolutely right, SPI is much better.
Reading the documentation (I did it very late!!!!) it seems that you can use bme.begin(0x77) instead of changing the library as I did before.
I should have read the F.... manual!!!
CrossRoads:
Tho, if you had that many devices and chip select pins, I don't know why you wouldn't use the much faster SPI (up to 8 MHz) vs the slower I2C (400 KHz).
I2C: two pins for up to 128 devices. More than fast enough for the few bytes that you read from a sensor.
SPI: three pins for the bus plus one SS pin for each device. Makes you run out of pins fast.
For me, it's SPI for the MicroSD and I2C for just about everything else.
On the ESP8266 I'd just open a second I2C bus for such a situation, if it ever happens. Don't know how well the ATmega handles that. It just takes two extra pins, still a easy win over SPI in pin count: four BME280 sensors take seven pins for SPI, or four pins with two I2C buses. Well, I'm sure you can come up with a situation where it happens.
When you have problems using an I2C chip the first action is to discover if it works using an I2C scanner taking care that some few chips have an address that is not recognized by the scanner because is longer that expected, 10 bits instead of 8, if I remember.
If you don't see it show up on the I2C scanner, check wiring, make sure it's all connected properly.
If still nothing, take another - preferably known good - sensor, see if that one works. That confirms whether your wiring and so is correct, and that the other sensor is probably defective.
If you also don't see the known good one, start working on your wiring.