Monday, May 23, 2011

Agile software development

Agile software development based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. Agile came about because methods like waterfall didn’t allow high level customer involvement, or change. Taking weeks to months to document what we think our customers want no longer work.

Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders. This minimizes overall risk and allows the project to adapt to changes quickly. Stakeholders produce documentation as required. An iteration may not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations may be required to release a product or new features.

Most agile implementations use a routine and formal daily face-to-face communication among team members. This specifically includes the customer representative and any interested stakeholders as observers. In a brief session, team members report to each other what they did the previous day, what they intend to do today, and what their roadblocks are. This face-to-face communication exposes problems as they arise.

Some principles on Agile Development

  • Customer satisfaction by rapid delivery of useful software
  • Welcome changing requirements, even late in development
  • Working software is delivered frequently (weeks rather than months)
  • Working software is the principal measure of progress
  • Sustainable development, able to maintain a constant pace
  • Close, daily co-operation between business people and developers
  • Face-to-face conversation is the best form of communication (co-location)
  • Projects are built around motivated individuals, who should be trusted
  • Continuous attention to technical excellence and good design
  • Simplicity
  • Self-organizing teams
  • Regular adaptation to changing circumstances

Commenting on major difference between waterfall model vs. agile are

  • Waterfall model suites more when development of program are already stable. Their design doesn’t need any major makeover.
  • Communication/Involvement with customer is big difference between them. In Agile development customer involvement is much more than Waterfall development.
  • In Agile development because of the continuous feedback from customer,they know the product better way than waterfall model.

Thursday, May 19, 2011

C# Aggregate Method

You want to apply a function to each successive element in your C# collection. With the Aggregate extension method, you can apply each successive element to the aggregate of all previous elements. Here, we provide some simple examples of Aggregate.

Examples

There are two example calls to the Aggregate method here. The first call uses a Func that specifies that the accumulation should be added to the next element. This simply results in the sum of all the elements in the array. The second call is more interesting: it multiplies the accumulation with the next element. All the numbers are multiplied together in order.

 

Program that calls Aggregate method [C#]

using System;
using System.Linq;

class Program
{
static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
int result = array.Aggregate((a, b) => b + a);
// 1 + 2 = 3
// 3 + 3 = 6
// 6 + 4 = 10
// 10 + 5 = 15

Console.WriteLine(result);

result = array.Aggregate((a, b) => b * a);
// 1 * 2 = 2
// 2 * 3 = 6
// 6 * 4 = 24
// 24 * 5 = 120

Console.WriteLine(result);
}
}

Output

15
120

Thursday, April 28, 2011

Paneer butter masala pizza !

Paneer butter masala pizza ! Yes, I know your mouth is started watering by name itself.  Smile

So here is the story begins. One of the best pizza i ever tested in Can-Am Pizza restuarant's Paneer butter masala pizza at Belleve,WA. Earlier We usually visit couple of times. We are really very big fan of Can-Am’s pizza(Actually we have tried only one item i.e. Paneer butter masala pizza Winking smile ). I usually make regular pizza with pizza souce and all other toppings. but I want to make some indian version pizza so I had search on youtube,but didn’t find anything good.

So I thought to make experiment with my own version. And it really comes out awesome. So here I am sharing recipe with you.

 

Pizza, Homemade by master chef Khushi

At the end you get this result ! Paneer butter masala pizza !

Ingredients :-

1) For pizza dough

All purpose flour – 2 cups

Salt – 1 teaspoon /to taste

Sugar – 1 tablespoon

Active dry yeast – 1 teaspoon

Olive oil – 2 tablespoon

Lukewarm water – 3/4 cup

2) For pizza souce (Paneer butter masala curry)

Cubed paneer – 1 cup

Diced Capsicum – 1/2 cup

Diced Onion – 1/2 cup

Butter – 4 tablespoon (2 tablespoon at the beginning and remaining at the end)

Tomato puree – 2 cup

Garlic paste – 1 teaspoon

Paneer tikka masala powder/punjabi Gram masala – 2 tablespoon

Paprika – 1/2 teaspoon (For red color)

Coriander powder – 1 teaspoon

Italian Seasoning – 1 teaspoon

Chopper cilantro – 1 teaspoon

Cream – 2 tablespoon

Cheese –1/2 cup or more (up to you)

Method :-

For dough :-

  1. In a small bowl, dissolve yeast in warm water(make sure that water should not hot. you should check with your finger when you put into water it should not hurt. In hot water yeast will die.) with sugar. And rest it for 10 mins. If you see forming bubbles in yeast mix then consider it is ready.
  2. Take all purpose flour, add salt,olive oil, yeast mix and make a soft dough.
  3. For better result,take some all purpose flour in hands and on counter top (it helps to prevent sticking your hands) and knead dough for 5 min. applying pushing and forward.
  4. Transfer the dough into bowl and apply some olive oil on top . Cover the dough with kitchen cloth and place in warm place(it would be great if temperature between 70-75 F)
  5. Set bowl aside for approx. 2 hours depending on your active yeast.
  6. When dough get double in size then take out and once again knead dough for 5 min. and punch it down to eliminates air bubble . Once again set bowl aside for 30 min.

For Gravy (Pizza souce) :-

  1. Cut paneer into your desired shape.
  2. Heat a pan and add butter.
  3. Once hot add onion and garlic paster & saute for 2 min.
  4. Add capsicum and saute for another 1 min.
  5. Add tomato puree.
  6. Add all dry spices – Garam masala/tikka masala, coriander powder, peprika, Italian seasoning and salt.
  7. Mix well and let it cook for 2 min.
  8. Pour 1/2 cup water and cook for 5 min.
  9. Add cream and sugar and cook for 2 min.
  10. It should not watery consistency . It should thick like pizza souce.

Mix it together :-

  1. Once dough and gravy ready. I usually do take a large size round pan and grease with oil and put the dough in middle of the pan and stretch it with your fingers.(I usually avoid rolling with rolling pin). Grease oil in edges to get crispy.
  2. preheat oven to 425 degrees F. If you are baking the dough on a pizza stone(For perfect crust pizza, you should buy pizza stone, Its worth it. Even you can make perfect naan in pizza stone) ,you may place your pizza souce (gravy) and Cheese(lots of cheese ! Of course how can we forget Winking smile)  on the dough, and bake immediately. If you don’t have pizza stone then you can partly cook in oven and then place your gravy and cook.  Bake pizza until pizza crust are gloden brown.
  3. And Final step don’t forget to enjoy while having ymmmyyyyyyy pizza !  Smile.

Friday, January 14, 2011