Category: Microsoft

Scrum Master

Today i was pleased by getting my Scrum Master Certificate , I can’t wait to actually start using it in real life

I think it is a great way of managing and developing software, it just feels right

Here is the description and the rules to get certified here and here

Basically it is taking the course and then participating in an online exam and passes it

I wrote couple of Topics about thing I learned while talking the course

  1. Scrum Introduction
  2. Scrum Workflow
  3. Eleven Scrum Things
  4. Scrum Cycle

Have a look at them and feel free to ask any questions or help

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

Scrum Cycle

 

This Post is part of  Scrum Master Series

Sprint Zero:

Overview of the main backlog items (legacy bugs, Infrastructure Items, Analysis Work)

Dividing large Epics into small stories that allow prioritization by PO considering Return on Investment (ROI)

Product Backlog

Backlog Items should describe the what not the how they can take the form of User Stories

"As a <some Role> I want <Something> so that <Some Benefit>"

User Stories Should Meet the I.N.V.E.S.T Criteria

  • Independent
  • Negotiable
  • Valuable
  • Estimable
  • Small
  • Testable

On backlog: research Spikes, artifacts required by the organization

Not on backlog: tasks level work (code, design, etc.)

Team estimate tasks by relative team effort, planning poker approach can be used

Sprint Planning One

Includes Product Owner, Scrum Master & Team, PO identifies highest priority backlog items

Team estimates how many items it can complete next iteration, meeting takes 4 hours

Sprint Planning Two

Occurs immediately after sprint planning one when PO is gone, team decomposes backlog item into tasks

With effort estimates (4 – 16 hours each), team builds Sprint backlog from those tasks, meeting takes 4 hours

Sprint Backlog

The list of PBIs from the main Product Backlog that the teams commit that they will be able to deliver in the next sprint

Each PBI should be divided into subtasks and prioritized and time estimated

Each PBI should have well defined acceptance criteria description

Done shouldn’t be a big requirement story

PBI story card should contain

  • Title
  • Description "as a <> I want < …"
  • Size ( from the planning poker)
  • Priority ( Return on Investment ROI )
  • Done Description ( Acceptance Criteria )

PBI story card can be wiki or SharePoint item that the team can access easily

Daily Scrum

The daily team meeting where member describes there current / past work and problems facing them

The daily scrum happens in front of a task board and burn down chart

The daily scrum contains the following sections

  • Sprint Back log list (PBI story cards)
  • Tasks : the sub tasks of each PBI
  • WIP : work in progress by the team
  • Done : the task finished by team and meets the acceptance criteria

By the burn down chart the team should be able to say how much time is left to complete PBIs

Sprint Review

During Sprint review team present to the PO product increments, identify any missing features

Gain acceptance from Product owner and review Sprint Velocity

Sprint Velocity is the sum of PBI values(S, M, L …) completed during that sprint

Sprint velocity is not a measure for performance because it depends on the estimates

If one of the PBI needs refactoring it is considered done and added to sprint velocity

If velocity is not predictable after 3-4 sprints then we have a problem   �

First sprint should be confusing

Sprint Retrospective

Discussing + what went well and ∆ what should we change about the process

Use sticky notes for writing +and ∆, collect notes from team then group and prioritize them

To be ready for discussion, output should be things we can do to change impediments and

Organizations problems, ∆ notes should be the form of required change not the problems

This is more proactive.

In bad political companies it is better to let the team do it without MS, PO or mangers to feel more open

Backlog grooming

After each Sprint some new PBIs are introduced and some old PBI needs refactoring

Sometimes Product owner should spend time doing the following

  • Review Highest Priority stories
  • Re write weak stories
  • Split Epics
  • Refine Acceptance Criteria
  • Re Estimate Stories
  • Re Prioritize stories
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

Eleven Scrum things

This Post is part of  Scrum Master Series

People :

  1. Scrum Master
  2. Product Owner
  3. Scrum Master

Process :

  1. Sprint Planing
  2. Daily Scrum
  3. Sprint Review
  4. Sprint Prospective

Artifacts :

  1. Product Backlog
  2. Sprint Backlog
  3. Sprint Burndown
  4. Product Burndown

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

Scrum Workflow

This Post is part of  Scrum Master Series Scrum Workflow

  1. Product Vision
  2. Product Backlog
  3. Sprint Planning 1
  4. Selected Backlog
  5. Sprint Planning 2
  6. Sprint Backlog
  7. Sprint Retrospective
  8. Sprint Review
  9. Daily Scrum
  10. Back to Step (3)

What is "Flow" ?

Flow is the mental state of operation in which the person is fully immersed in what he or she is doing by a feeling of energized focus

Full involvement and success in the process of the activity

Flow occurs when:

  • The goals are clear
  • The challenge is possible
  • People are not disturbed
  • The work has a meaning
  • There is some way to see progress

Scrum Team

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

Scrum Introduction

This Post is part of  Scrum Master Series

Scrum is originally the American football meeting the team makes before the actual game

Scrum is a good agile way of developing and planning software programmers

It is basically have the idea of doing not discussing, if you are new to scrum meetings

You will get the impression that scrum wastes a lot of time talking and discussing things

But soon you will know that scrum is about the concept "If it doesn’t work find something else"

Scrum is more focused on the small Item "PBI" to device the big picture,

When working with scrum you have to believe in the idea of you make your small task right it will fit into the big picture right …

You don’t have to design the big picture first like waterfall design … Just focus on the small requirement and it will make the big picture after wards

Scrum is about inspecting things and adapting them, people using scrum should enjoy being

Fearlessness: have no fear of talking out loud about problems or task status

Openness: Open to talk about things and help each other reaching the target

Creative, Common Sense

Agile
is a set of principles for software development that emphasizes frequent delivery of product increments

Time boxes communication & collaboration, focusing in subtasks opposite to water fall which is more the big picture

However the product owner in scrum should make sure everybody knows the big picture

Scrum is a flavor of agile that emphasizes self-organization through

30 days iteration (sprint)

3 Roles (Product Owner, Scrum Master, Scrum Team)

3 Meetings (Sprint Planning, Daily Scrum, Sprint Review)

Presenting Scrum in a simple and small flow

Scrum is not for cowboys or developer heroes because they are not team players

And scrum depends deeply on "Swarming"

All team work together in same task so no one owns a task or specialized with one feature

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

SP 2010 : Client Object Model (CLR)

So i wanted to look into the new syntax by SharePoint 2010 to connect to a site and

Retrieve edit data

And i found that great topic that goes through the API step by step and explaining every

Things with code and examples really liked it

Using the SharePoint 2010 Managed Client Object Model

Table of Contents

Using the Managed Client Object Model

How It Works

Creating a Windows Console Managed Client Object Model Application

The Managed Client Object Model

Object Identity

Trimming Result Sets

Creating and Populating a List

Using CAML to Query a List

Filtering the Child Collection returned by LoadQuery using LINQ

Using the LoadQuery Method

Increasing Performance by Nesting Includes in LoadQuery

Filtering the Child Collection returned by LoadQuery using LINQ

Updating Client Objects

Deleting Client Objects

Discovering the Schema for Fields

Accessing Large Lists

Asynchronous Processing

Other Resources

Pasted from <http://blogs.msdn.com/ericwhite/archive/2009/11/20/using-the-sharepoint-2010-managed-client-object-model.aspx>

Other good topics by zimmergren

SP 2010: Getting started with the Client Object Model in SharePoint 2010

And

SP 2010: Programmatically work with External Lists (BCS) using the Client Object Model

But all those topics didn’t give a good explanation on how to Authenticate Users Using client object Model but i found out a good way to do it and will write about it in my next topic

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

MS Surface SDK With VS 2010

I have started lately a POC project in the health care filed with the Microsoft surface

And i was trying to integrate SharePoint 2010 with the surface

And i really wanted to use VS 2010 but the problem was that Surface SDK only worked with

Visual C# Expression and actually the C# Expression is one of the dependencies for the sdk

You can find the sdk here

So all i wanted was to get the Surface SDK Project and item templates inside VS 2010

After surfing the net for some time i found that guy talking about modifying the Msi config settings

And copying some files which really didn’t work with me

But you can give it a try any way surface developing in visual studio 2010

Another trial was to do the following

The Surface project templates can be copied from the Visual Studio 2008 installation to the VS2010, note that just copying them will still require the addition of the System.Xaml references mentioned above. At some point if time permits it will be worth modifying the templates to add System.Xaml.

Copy the C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Project Templates\CSharp\Surface directory to C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Surface.
Note however that this contains two zip files:- WpfSurfaceApplication.zip and XnaSurfaceApplication.zip. An additonal file XnaGs3SurfaceApplication.zip can be found in the directory C:\Program Files\Microsoft SDKs\Surface\v1.0\Project Templates, if this additonal template is required then copy this also.
Also the Item Templates for the Surface SDK are missing, copy these from C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Surface to C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Surface.
Note these files can also be found in C:\Program Files\Microsoft SDKs\Surface\v1.0\Item Templates.

Follow the instructions in the link below:
http://msdn.microsoft.com/en-us/library/y3kkate1(VS.100).aspx
Extract of required steps:
Close all instances of Visual Studio.
On the Start menu, click Run, type cmd, and click OK.
At the command prompt, locate the directory that contains devenv.exe (default C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE), and type devenv /setup.
Run Visual Studio.
Note that the Surface Controls are not present in the toolbox when creating a new WPF Surface Application. To add the Surface Controls to the Toolbox open VS2010, open and pin the Toolbox and right click and choose the Add Tab context menu option.

Next enter the text Surface Controls in the newly created tab.
Right clicking in the new tab to add items causes VS2010 to hang. So go to the Tools Menu and select Choose Toolbox Items…
In the Choose Toolbox Items dialog select the WPF Components and then select all of the Surface controls and press the OK button.

Note the icons for the controls do not appear and this is not the proper solution for the lack of Surface Controls in the Toolbox but is a workaround until the time is available to investigate further.

Pasted from <here>

And that also didn’t work except that it did work to add the surface controls to the Controls Box

And you wont believe what actually made it to work was so simple !!

I just copied the surface project templates and item templates from the path

C:\Program Files\Microsoft SDKs\Surface\v1.0\Project Template

C:\Program Files\Microsoft SDKs\Surface\v1.0\Item Templates

To the path

C:\Users\Awaddabd\Documents\Visual Studio 2010\Templates\ProjectTemplates\Visual C#\Surface

C:\Users\Awaddabd\Documents\Visual Studio 2010\Templates\ItemTemplates\Visual C#\Surface

And that was good enough to make every thing works fine in Visual Studio 2010….

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

Resources from Surface Training

I promised you a few items ready for download – these are the links:

  • Administrative guidance: here
  • Specific for remote management: here

  • SDK (if you don’t have it already): here
  • Dev environment setup: here

From this it is quite clear that we could do more complex content – this is noted and although I cannot promise anything on this particular subject, we will try to follow-up via online channels or possibly later sessions.

For those who simply cannot wait, I can highly recommend sessions on Channel 9 and/or attending the MIX conference in Las Vegas in March: www.visitmix.com where WPF, Surface, Silver light and general web design & development are the primary/only topics.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

What is New In C# 2.0 , 3.0 , 3.5, 4.0 ( road map)

What is New In C# 4.0

Dynamic lookup

dynamic d = 7;

d = “Abdel-Rahman”;

Named and optional parameters
public void M(int x, int y = 5, int z = 7);

M(1, 2, 3); // ordinary call of M 

M(1, 2); // omitting z – equivalent to 

M(1, 2, 7) 

M(1); // omitting both y and z – equivalent to M(1, 5, 7) 

 

M(1, z: 3); // passing z by name 

M(x: 1, z: 3); // passing both x and z by name 

M(z: 3, x: 1); // reversing the order of arguments

COM specific interop features

This means that you can easily access members directly off a returned object, or you can assign it to a strongly typed local variable without having to cast. To illustrate, you can now say

excel.Cells[1, 1].Value = "Hello"; 

 

// instead of 

 

((Excel.Range)excel.Cells[1, 1]).Value2 = "Hello"; 

 

Excel.Range range = excel.Cells[1, 1]; 

 

// instead of 

 

Excel.Range range = (Excel.Range)excel.Cells[1, 1];

Variance

// ToDo : 1.0 Add Example.

What is New In C# 3.0 , C# 3.5

you can see my old post about C# 3.0 here , but i think i ll write about it here in more details.

Automatic  Properties
public int MyProperty { get; set; }

Implicitly Typed Local Variables
var n = 5;

var s = “LINQ rules”;

var b = new[] { 1, 1.5, 2, 2.5 };

var c = new[] { "hello", null, "world" };

Anonymous Types

var anonType = new {X = 1, Y = 2};

var NewTempClass = new {FirstName = "name" , Age = 32 };

string x = NewTempClass.FirstName;

Object Initializes
Contact contact = new Contact { LastName = “Magennis”, Age = 9 };

Collection Initializers
List<int> digits = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

List<Contact> contacts = new List<Contact>

{ new Contact {LastName = “Doherty”, DOB =55},new Contact {LastName = “Wilcox”, DOB = 66} };

Extension Methods

They made a new generic methods so you can extend the functionality of any class you want

public static int NewExtensionMethod(this string s) {return Int32.Parse(s); }

Partial Methods
Query Expressions
var result = from item in List.items Where item.Title = ”Abdel”

select item;

Lambda Expressions
IEnuerable <Person> results = People.Where( P => P.LastName ="Abdel");

double Averageage = People.Average(P => P.Age);

Expression Trees

 

What is New In C# 2.0

Generics
class BaseNode { }

class BaseNodeGeneric<T> { }

class NodeConcrete<T> : BaseNode { }

class NodeClosed<T> : BaseNodeGeneric<int> { }

class NodeOpen<T> : BaseNodeGeneric<T> { }

class BaseNodeMultiple<T, U> { }

class Node4<T> : BaseNodeMultiple<T, int> { }

class Node5<T, U> : BaseNodeMultiple<T, U> { }

class SuperKeyType<K, V, U>  where U : System.IComparable<U>  where V : new() { }

static void Swap<T>(ref T lhs, ref T rhs)

class SampleClass<T> 

{ 

 void Swap(ref T lhs, 

ref T rhs) { } 

}

Iterators
  • An iterator is a section of code that returns an ordered sequence of values of the same type.

  • An iterator can be used as the body of a method, an operator, or a get accessor.

  • The iterator code uses the yield return statement to return each element in turn. yield break ends the iteration. For more information, see yield.

  • Multiple iterators can be implemented on a class. Each iterator must have a unique name just like any class member, and can be invoked by client code in a foreach statement as follows: foreach(int x in SampleClass.Iterator2){}

  • The return type of an iterator must be IEnumerable, IEnumerator, IEnumerable<T>, or IEnumerator<T>.

The yield keyword is used to specify the value, or values, returned. When the yield return statement is reached, the current location is stored. Execution is restarted from this location the next time the iterator is called.

Iterators are especially useful with collection classes, providing an easy way to iterate non-trivial data structures such as binary trees.

Partial Classes
Nullable Types

example int? x = null; int y = x ?? -1;

Use the System.Nullable.GetValueOrDefault

The syntax T?

Anonymous Methods

Del d = delegate(int k) { /* … */ };

Static Classes
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

Over View of MS office Communications

Functions

  • Instant Messaging
  • on-Premise web conferencing
  • Audio/Video conferencing
  • Telephony

Architecture

Editions

  • Standard Edition ( small/ medium )organizations

All scenarios / Functionalities located on the server

  • Enterprise Edition( medium / Big) organizations
    • Consolidated configuration

All functions/Scenarios located on front end servers

  • Expanded configuration

Each Function is configured on a standalone server

Servers

  1. Front End Servers( All functions)
  2. Perimeter servers
  3. Application servers
  4. Active Directory servers.

( telephony and conferencing servers have to be stand alone servers)

 

Telephony

Basic Telephony Components

PSTN is a network of public circuit-switched telephones across the world

ISDN PRI is a voice and data service that provides high-volume access to PSTN

A PBX

A telephony gateway

 

Functionality Of Telephony Solution

  1. Basic call control
  2. Advanced call control
  3. Inbound call options
  4. Call forwarding
  5. Voice mail
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
 

 

View Abdel-Rahman Awad's profile on LinkedIn

Archives

 

Rss Feed Tweeter button Facebook button Linkedin button Delicious button Digg button