Technologies Useful for Agile Projects – Part 1

In this blog post I would like discuss more about technologies that will aid and boost up the agile projects. I’m writing this article on the basis of Agile implemented on Scrum. So in agile scrum projects we do development, testing and release shippable products at the end of each sprint. It is a known fact that all these sprints are short, from 2 to 4 weeks, and the teams need to run as fast as they can to keep up the development work during the sprint to meet the objectives of the sprint, which is of course to deliver a tested shippable product that adds value to the end user.
For any project the infrastructure is very important. For the development team a development environment is highly important for execute their unit tests. Also for the testing team, a QA environment is important for execution of various tests such as, smoke tests, integration tests, regression tests, etc. If you are using an automated testing approach and the demand for a ready to use platform is very high where you can execute these automated tests.

I can remember couple of years back when we had to wait for days (not just hours) for the Infrastructure team to build us the necessary platform for development and to the QA work. All these environments were created virtually on a local development server. I’m not blaming anyone as the infrastructure team has to make room in the server and take backups which causing more time. Also when decommissioning a server needs to take authorisation from the other teams are some of the difficulties that we faced. So when there are several teams working on the same server in a smaller development company, the network traffic to the server creates a bottle neck and there are respond delays. Above all the hardware gets depreciated with time and the development teams need to be up to date with the latest technologies. So the older servers won’t do any good in that. Also the companies have to deal with maintenance as well. Even if you have larger and state of the art servers, they grow older and you need to spend on replacing them.
For agile projects there is no such time to waste. Time is critical and need to keep up the development and must deliver constantly. So a development team can’t wait for the infrastructure team to build a platform for days. Even waiting for hours will have significant impact on the deliverables.
So with the introduction of the Cloud computing these problems were sold and I’m particularly interested in AMAZON AWS cloud, which provided an infrastructure platform for any scale from development to production. When this was introduced in our company the time that we were waiting for a development platform to start up the work was reduced and in matter of minutes we had a development environment for carry out our development work. The only time taken was to create an AWS machine image and that image can be used over and over again and we didn’t have to wait for the infrastructure team to get things done, the developers themselves were capable of getting this done.
Following are some of the services provided by AWS:
imge17
For example with Amazon Relational Database Services you could easily set up a database of your choice and integrated with your development environment.
Select the type of the Database instance you want.
imge2
Specify the DB instance details
imge3
Do the additional configuration
imge
Launch the DB
imge4
imge5
Then your instance is done. It may take few minutes to initialize the instance.
imge6
To make your instance available locally, you need to add the CIDR/IP. Amazon will detect you a closest match. Since for R&D purposes I’m using that, but I’m sure you will have your own platform architecture.
imge7
imge8
Now you are ready to connect from SQL Server Management studio:
imge16
Open Visual Studio and open the server explorer.
imge9
Right click on the data connections and select Add connection and you will be prompted to enter the connection. You need to enter the RDS end point and the user login that you created when creating the RDS instance.
imge10
Test Connection:
imge11
Once the connection is set up you can modify the database as you whish.
imge12
imge13
imge14

There you have a quick an easy way to set up a development or QA db instance.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s