We are hiring

Continuous Everything – From Coding to Feedback

Continuous Integration and Continuous Deployment are strong concepts in modern software development and specifically useful and necessary for cloud applications. Delivering code continuously keeps the product development agile and allows for fast iterations. Specifically when it comes to SaaS products or services, the way to ship software has to follow the continuous track, delivering new “releases” several times a day. For example, at Quora every commit is submitted to the production system, unless this process is actively suppressed.

Ever decreasing software release cycles also require to rethink the way feedback from real users is gathered. Bimonthly user experience reviews with a selected set of customers are not suitable if new features of a product are published daily. Tools to suggest improvements and to report bugs need to be actively integrated in the product development process, addressing not only a selected group of testers but also includes real users.

This blog post is essentially an extended tutorial, explaining how to set up a 3C software production chain:- Continuous Integration, Continuous Deployment and Continuous Feedback.

We will use Microsoft Visual Studio and deploy directly to Windows Azure (Section 1). After that we connect Microsoft Team Foundation Server Online to our tool chain (Section 2) and subsequently connecting TFS with Windows Azure to establish Continuous Deployment directly from Visual Studio (Section 3). Finally we will add Usersnap to introduce Continuous Feedback to our setup (Section 4).

Since a standard “Hello-World” approach is always disappointing, we decided to create a tweet-wall which displays tweets containing the hashtag #usersnap. Lots of screenshots should provide a step-by-step tutorial to get you started with Visual Studio 2012, Team Foundation Service and Azure and finally Usersnap. There is no need to write code while walking through this tutorial.

Continue Reading “Continuous Everything – From Coding to Feedback”

[{"code":""30 days before Christmas
[{"code":""30 days before Christmas
is my 30 days of happiness"."
is my 30 days of happiness"."
"label":"30 days free trial"
"label":"30 days free trial"
"win":true}
"win":true}
{"code":""I'm up in the sky with joy about this Free Upgrade"."
{"code":""I'm up in the sky with joy about this Free Upgrade"."
"label":"Free Upgrade"
"label":"Free Upgrade"
"win":true}
"win":true}
{"code":""25% off for 6 months? Yaaas!" Or simply apply coupon BLACK25 upon check out."
{"code":""25% off for 6 months? Yaaas!" Or simply apply coupon BLACK25 upon check out."
"label":"25% Off Coupon"
"label":"25% Off Coupon"
"win":true}
"win":true}
{"code":""I love Usersnap so much I'm going to wear it"."
{"code":""I love Usersnap so much I'm going to wear it"."
"label":"Usersnap Tshirt"
"label":"Usersnap Tshirt"
"win":true}
"win":true}
{"code":""30 days before Christmas
{"code":""30 days before Christmas
is my 30 days of happiness"."
is my 30 days of happiness"."
"label":"30 days free trial"
"label":"30 days free trial"
"win":true}
"win":true}
{"code":""I'm up in the sky with joy about this Free Upgrade"."
{"code":""I'm up in the sky with joy about this Free Upgrade"."
"label":"Free Upgrade"
"label":"Free Upgrade"
"win":true}
"win":true}
{"code":""
{"code":""
"label":"Not your day!"
"label":"Not your day!"
"win":false}
"win":false}
{"code":""25% off for 6 months? Yaaas!" Or simply apply coupon BLACK25 upon check out."
{"code":""25% off for 6 months? Yaaas!" Or simply apply coupon BLACK25 upon check out."
"label":"25% Off Coupon"
"label":"25% Off Coupon"
"win":true}
"win":true}
{"code":""30 days before Christmas
{"code":""30 days before Christmas
is my 30 days of happiness"."
is my 30 days of happiness"."
"label":"30 days free trial"
"label":"30 days free trial"
"win":true}
"win":true}
{"code":""I'm up in the sky with joy about this Free Upgrade"."
{"code":""I'm up in the sky with joy about this Free Upgrade"."
"label":"Free Upgrade"
"label":"Free Upgrade"
"win":true}
"win":true}
{"code":""
{"code":""
"label":"Spin again"
"label":"Spin again"
"win":false}
"win":false}
{"code":""
{"code":""
"label":"Trip to Vienna"
"label":"Trip to Vienna"
"win":false}]
"win":false}]