Shared Development Space

Currently the company I work in gives each developer their own development virtual machine. On this machine (Windows 7) they install the entire stack of the product (minus database) this stack is normally spread amongst multiple machines of differing OS (although moving towards windows 2008 and 2008r2)

So when a developer has a new project they are likely to be updating only a small piece of their stack and as such the rest of it can become out of date with the latest production code. The isolation from others means some issues won’t be found until the code goes into shared test environments/production.

I’m suggesting a move from functional testing on these isolated machines to plugging machines into a shared environment. The goal being to move towards a deployment thats closer to production in mechanism and server type.

Developers would still make code changes on their Win7 vm and run unit/component testing locally but for functionally testing they would leverage a shared enviornment.

Does anyone else use a shared development environment like this? Are there many reasons against this sort of sandbox environment? The biggest drawback is a move away from only checking in code when you’ve done local functional testing to checking in after static testing.

I’m hoping an intelligent git branching strategy can take care of this for us.

6

I’m not sure if enforcing a shared development environment is a good idea, but I would like to suggest that you are focusing on the wrong tool.

It seems to me that what you really need is a well setup dev environment with nightly builds/continuous integration and automated testing.

It wouldn’t matter if I’m coding with vim in Ubuntu or with Eclipse in Windows if when I make a mistake the build/unit test system sends me an angry email that I broke something. By the same token, the said system would ensure the goal of better quality software much better than dictating a development environment.

It seems to me that whatever effort you would put towards a shared dev environment would be better spent setting up what I have described here.

1

Whether or not development should take place in a shared environment is a subtle question. My preference is not to, simply because that scales better. But I am also an advocate for making it as easy as possible to update the environment, and like to see it happen as often as possible. If everyone checks in early, checks in often, and syncs up regularly, you effectively have a shared environment except without resource contention or as big a window for oopses. If people aren’t doing that, then a shared environment may help.

If devs are failing to keep their environment up to date, and then relying on deprecated behavior, that may be a symptom of a deeper problem. Namely that devs are breaking each other’s code. In that case a shared development problem might solve the immediate problem, but could bring the underlying problem to the surface. Be aware of that, and be aware that people may blame the shared environment because it is an easier target.

But QA should definitely take place in a shared environment. It sounds like you’re doing that. To catch more the integration issues, I would highly recommend setting up https://wiki.jenkins-ci.org/display/JENKINS/Unit+Test to make sure that unit tests actually happen in a timely fashion, in a way that can track down problems to the commit that is at fault. Making sure that you have enough unit test coverage to actually see problems is a second issue, but is one that is highly worthwhile to tackle.

1

I’ve seen this happen… there were benefits, but some major drawbacks made it an unrealistic long-term solution when I saw it.

  • Co-ordination between testers
    • “Hi everyone, I need to do an IIS reset…” and the whole team waits
  • Regression testing branches (ie. testing against a previously released/supported build)
    • Unless you can host multiple versions of the software on the same hardware, you need a new environment.
  • Testing fixes
    • Dev makes a fix, and gives it to test… how do they deploy? Redploy to the shared environment? Wait until tomorrow to test it? What if it’s a high priority fix? It’s a simpler and safer scenario for QA to just deploy to a private environment… and if the latter is the most common scenario, it’s trivial to perform especially with automated deployment.
  • Performance testing
    • You need consistent and specific hardware with consistent and specific loads (ie. no other testers on it, only simulated ones) to get repeatable and stable performance results

That said, it was a great way to hammer 1 specific build, using all testers manually testing functionality. Got the team through a couple fire drills. Long term though? It’s really messy.

2

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật