Adding multiple users at a time in Visual Studio Team Services

While I was preparing VSTS instances for a training I was giving I had to add a list of 20 users in a Team Services instance. At the time I couldn’t find a way to do that from the web interface so I looked at the web api. Gave me the same results. After questions asks to MVPs I know, no better idea than adding them one by one manually. So I started to add them one by one. Then after some times moaning against Microsoft I asked myself and if they thought of it and considered “;” separators when adding multiple users? I than tried and it worked ! It also worked when you want to add a list of users as Project Administrators or any security level you want.

Here is an example of adding 3 users in one click. Just separate them with a semicolon !

The Agile Triangle a change of paradigm in selling projects

For decades selling and contracting projects was quite clear for all parties. One side wanted to have what they asked for inside a specific budget while the other side tried to make sure they were reaching a certain amount of margin.

The project triangle between Scope, Time and Money was pretty clear and most of the negotiation was focused on Time and Money while the scope was non negotiable. You were receiving a RFP (Request For Proposal) and you were simply replying with Time & Money numbers. Sometimes only with one number : money.

With agile projects this triangle is getting horizontally flipped and now the scope is the center of attention. We still have Time and Money because you still need to manage a budget somewhere. But the good news in this new equation is that you can now introduce the concepts of quality and business value in the triangle. Quality by delivering what you can do with a certain level of quality in the time you have. Value by having to choose between features and thus deciding on what is really necessary for your business.

agiletriangle

So as you can see by simply changing our approach and point of view on this triangle we introduced a new paradigm. This is called Agility. No more, no less.

Now if we look at Scrum we see how we tick every checkbox of this triangle:

  • Time : an iteration of less than a month called a Sprint.
  • Money : a product owner who manages the budget by selecting and ordering what is necessary to build the product in the most efficient way with the help of a self organized dev team.
  • Scope : by gathering needs from users, stakeholders and taking feedback the product owner have all she needs to take decisions on what to put in the product backlog and how to order it.

Next time we’ll see how the product owner can steer the Product Backlog with specific engineering practices.

Connect Power BI to your on Premise TFS

03-11-16-3-13-48-PM Power BI is a powerful tool which allows you to easily build interactive data visualizations from almost any type of data you have. This Microsoft tool can be used as a desktop app, mobile app or directly online. It is free of use if you don’t have a lot of data and quite cheap if you need more. I am not a business intelligence developer and I don’t have a BI background at all still I found Power BI a great way to quickly build my dashboards.

As an agile developer and scrum master I wanted to capitalize on the data we have from TFS and make even more complete dashboard than the ones built in. I tried online with my msdn linked Team Services account and It was so mind blowing that I immediately wanted to use it at work. BUT – there is a but – Power BI does not have a TFS connector for on premises TFS servers. And it’s clearly not in the top of their backlog.

So here is the trick to connect Power BI to your on Premise TFS platform.

  1. Download and install Power BI Desktop
  2. Launch Power BI and in the first screen click on Get Data03-11-16-2-56-10-PM
  3. On the Get Data window choose Database then SQL Analysis Services Database. Then click on Connect.
    If you don’t have rights to query this DB ask for a read access.
    03-11-16-2-48-29-PM
  4. Now enter the Server instance name and click on OK.
    03-11-16-3-04-23-PM
  5. In the Navigator window you can now choose which dimension you want to work on.
    For building dashboards regarding teams I use the Work Item perspective.03-11-16-3-05-26-PM
  6. Now you’re all set to build nice data visualization reports.
    03-11-16-3-10-56-PM

Another post will follow on how quickly build some reports with Power BI.

Back from Microsoft Ignite 2016 in Atlanta

ignite

We had the chance going in Atlanta this September to attend THE Microsoft technology conference also known as : Ignite. More than thousands of technology sessions in a week, 2 big keynotes in a 20k seats arena, more than 24k it guys and girls gathered to talk about the future of IT and a huge party at the end, this was in numbers the Ignite 2016.

Needless to say that it was an intense and immersive week following dozens of sessions on many different subjects. Subjects trending this year were Innovation and Openness to other platforms. Innovation at Microsoft is including lots of areas like Internet Of Things, Machine Learning, Augmented Reality, Cloud computing, Data Visualization… We had demos and sessions on those subjects and it is clear that Microsoft is investing a lot in transforming IT by automating and simplifying things for developers and ops. We now have frameworks, platforms available to start working on all of this today with Hololens, Cortana Intelligence, Microsoft IOT Vision,  Azure Machine Learning… Another trend which started with Satya Nadella taking commands is Microsoft openness to other platforms and this continues to be a refreshing subject. Visual Studio Code, ASP.NET Core 1.0, Docker were significantly covered all the week.

Obviously I wasn’t able to follow all sessions and the choice was difficult but here is the selection of my favourites sessions I attended :

1 – Review the Microsoft application platform for developers
Very fun session with Scott Hanselman.
https://myignite.microsoft.com/videos/34951

2 – Explore IOT Scenarios from the field and their reference architectures
One of the best session I attended in a week about real scenarios and real architectures used in IOT projects.
https://myignite.microsoft.com/videos/2668

3 – Dive into end-to-end Power BI Industry solutions with real world customer scenario
This session is in my top 3 because of the energy of the presenters, subject was also interesting and Power BI is really becoming a very powerful tool for data visualization.
https://myignite.microsoft.com/videos/2902

Bonus Track : Lead an autonomous DevOps team at Scale: a true story
You have probably already read articles on DevOps at Microsoft but this is always nice to hear from the guys who lived the transformation and explain how and why it happened.
https://myignite.microsoft.com/videos/2717

IMG_2769

Prepare for PSM I Scrum.org assessment

psmi_badgeBecoming a certified Professional Scrum Master is one of the first milestones in an agilist career. Of course
you can live without obtaining it but if you want to move to an agile career path this can help. Whether you are a developer, a functional analyst, a tester or anyone in a scrum team you can consider passing this certification. For developers there is another assessment called Professional Scrum Developer (PSD) but be careful if you are new to Scrum.org assessments. The PSD is a little bit more difficult and it demands PSM knowledge anyway. So I would advice you to pass PSM then the PSD.

First of all let’s see what it is about:

  • Fee: $150 per attempt
  • Passing score: 85%
  • Time limit: 60 minutes
  • Number of Questions: 80
  • Format: Multiple Choice, Multiple Answer and True/False
  • Difficulty: Intermediate
  • Language: English only
  • PSM Subject Areas < Must See !
  • Required course: None
  • Recommended courses: Professional Scrum Foundations or Professional Scrum Master
  • Practice Assessment: Scrum Open
  • Passwords have no expiration date, but are valid for one attempt only

From this short list you can appreciate the type of assessment it is. A lot of questions, not so much time and multiple choices so be prepared !

If you are already working in a Scrum Team I would advise you to do the following:

  • Read, read and read the Scrum Guide. You need to understand it deeply instead of basically memorizing it. You need to think like Ken when you answer questions !
  • Practice a lot with the Scrum Open Assessments. Don’t memorize answers from this assessment but try to understand the type of questions and the way they want you to think. If you have some doubts about answers go check the Scrum.org forums. Once you get 100% correct multiple times it should be fine.
  • Ideally follow a PSM course. It is two days with a Professional Scrum Trainer and even if you already have some experience with Scrum you will get invaluable knowledge from a specialist.
  • Check the list of books from this page. Some others can be found for free like this one.

Some recommandations when you pass the test:

  • Be careful when reading questions and answers. There are differences between “who should be present at the daily scrum” and “who must be present at the daily scrum”
  • If you have doubts regarding answers, proceed by elimination
  • There are no Sprint 0 !
  • A Sprint starts immediately after the conclusion of the previous sprint. And its timebox.
  • The PO drive the product vision, not the team ! And he is the only one to drive it !
  • In Scrum we develop products not by technical (horizontal) slices but vertically by features.
  • The daily scrum is a feedback loop.
  • The Scrum Master is here to facilitate, coach, teach and remove impediments.
  • The Definition of Done is the Dev Team check list to consider a PBI ready to be shipped.
  • In a multiple teams context (for one and only product) the Dev Teams share DoD so each team work is integrated into one common increment.
  • A sprint can only be cancelled by the PO and when the sprint goal is obsolete.
  • A Development team is cross functional, everybody is a Dev and the team must have the competencies to deliver what’s in their sprint backlog.

If you’ve never worked in a Scrum Team, find one, work as a member of the team few sprints and then come back here ! If you are a Product Owner think about the PSPO first.

Scrum On !

Release Burnup Chart in TFS 2015

With TFS 2015 you can create and add charts to your team dashboard quite easily. In a previous post I was explaining how to create a simple task burndown chart. So in order to have various indicators displayed on your dashboard we will now see how to create the associated query and add the chart

  1. Go to to your TFS Team Project with your favorite browser
  2. Click on the Work tab, then select the Queries sub tab.
  3. On the left of the Shared Queries click on the mouse over arrow and select New Query.
  4. Create and save the query as shown below :

  5. Just 3 lines with:
    • Area Path : Select the area path of the team you want to monitor
    • Work Item Type : Product Backlog Item as they hold the effort
    • State : New, Committed and Done. You can replace New by Approved if you use it to effectively tag the PBIs approved by the PO to be in the backlog.
  6. Go back to your TFS Team Project home page (top left). And click on the green plus icon at the bottow right of the screen. (mouse over the blue pencil to see it).
    tfsaddwidget.png
    Go to to your TFS Team Project with your favorite browser
  7. Click on the Work tab, then select the Queries sub tab.
  8. On the left of the Shared Queries click on the mouse over arrow and select New Query.
  9. Create and save the query as shown below :

  10. Just 3 lines with:
    • Area Path : Select the area path of the team you want to monitor
    • Work Item Type : Product Backlog Item as they hold the effort
    • State : New, Committed and Done. You can replace New by Approved if you use it to effectively tag the PBIs approved by the PO to be in the backlog.
  11. Go back to your TFS Team Project home page (top left). And click on the green plus icon at the bottow right of the screen. (mouse over the blue pencil to see it).
    tfsaddwidget.png
  1. Select the Chart for Work Items widget and click on Add.
    tfstaskburndown2
  2. Fill the configuration with the following
    releaseburnupstep1

    Select the previously created query and the Stacked area chart type.
  3. Scroll and fill the remaining as below then click on Save
    releaseburnupstep2

    Stack by : State
    Values : Sum of Effort
    Range : Last 12 weeks
    Sort by Descending Value

Congratulations you now have a release burnup on your dashboard.

tfsreleaseburnup

From this basic query you can also create those charts :
Work By Team > Segregate by Area Path
Cumulative Flow > Count Product Backlog Items instead of have a Sum of Effort.

tfs2015charts.PNG

Can a team survive without a Product Owner ? Or with a ghost PO.

As you probably know it already the Product Owner is an essential link for a Scrum Team to deliver high value product increments to the business. This is no secret that a good PO can drastically improve the amount of return on investment of a project. And this is probably one of the most important aspect of the job. This role is clearly a full time job and requires a lot of various skills but sometimes companies and people are not ready for that. Even in the Scrum guide the first line of the Product Owner definition is opening the door by saying :

The Product Owner is responsible for maximizing the value of the product and the work of the Development Team. How this is done may vary widely across organizations, Scrum Teams, and individuals.

We won’t talk here about the skills required for the job or even try to be exhaustive about what the job is about as this is probably another very long post. Instead I will expand about this particular sentence in the scrum guide definition. Doing so I will tell you about how some of the teams and companies I worked for dealt with those various situations.

We have a PO but he does not give/have enough time for the role

This is what I call a Ghost PO. Usually this scenario happens because somewhere people decided to drop someone from the business in a PO role. That can be a very good idea but a decision like that must be supported with specific dispositions. First this person must be clearly train to be a PO. This can be done internally with coaches or externally in a 2 days training at least. Then the PO must have the time to spend with the team, working on the backlog, be available, talk to stakeholders, gather information from as many people as possible, etc. All of that to effectively give a chance to the project to be a success.

However in my opinion taking someone out of a business role can also be a problem for the company. We are supposed to create value and we are removing someone from a place where he or she is already creating value. That’s why we should really consider the PO role as a new job fulfilled by people with the knowledge and the skills that won’t jeopardize the actual company’s business.

Another scenario is when the PO has the time but is not giving time. That can be fix by the team itself in many ways. Use retrospective to talk to him and let him understand he is an important part of the team. The Scrum Master must talk to him and coach him to really act as a PO. If he is not in the same office space, make him move next to you. Do everything you can to make him feel he is not external to the team and his opinion matter.

How the team can react in those circumstances

Somewhere in the company managers gave a budget for your project to exists. So even if you don’t have the PO you deserve there is a chance to get support to get out of that situation. Your Scrum Master has to take his pilgrim stick and find support for the team.

Work on team’s external communication. Invite as many people as you can in the sprint reviews, draw interest around your project. Keep in mind you need to find people to give you feedback on what you are doing. With more feedback it will be easier to steer the product in the right direction and this is what matter the most after all. Of course this won’t be a peaceful journey and you will have to triage feedback in some ways. But if you want your project to be a success and be happy with what you are doing every day you have to move out your comfort zone. If not you will just have worked for another project that won’t go live.

From what I have seen in situations like that some teams are prepared for this scenario by having a lot of knowledge and skills shared in the team. We are all Developers but some of us have very strong knowledge in the domain we are working on. The sum of the team’s expertise shouldn’t be underestimated and should always be developed as much as possible.

To resume I would say there is no magic and having experienced professionals in the team will help a lot. So Scrum On !

A Simple Task Burndown with TFS 2015

I work with and for a Scrum team that is only estimating effort associated to their Product Backlog Items (PBIs). This team is still quite young so I orientated them to break down the work into tasks so they can share a common view of what to do for each PBI. They were fine estimating an effort for their PBIs but not for the tasks as they didn’t want to talk about hours. After few sprints and after some time their velocity looks quite stable but the last week of each sprint was usually a mess. The only bad indicator during their sprints was they weren’t able to see when they were going to land the sprint and get the work done. Their impossibility to see the rate at which they were accomplishing the work was really missing and the only way to see that was to look at the task board and visually estimate their progress depending on the number of task on each of the three columns (To Do / In Progress / Done).

The team was using TFS 2015 and as you may know the task burndown is only working with tasks estimated in hours. Not a solution here. So here are few steps to create your own task burndown with TFS 2015.

  1. Go to to your TFS Team Project with your favorite browser
  2. Click on the Work tab, then select the Queries sub tab.
  3. On the left of the Shared Queries click on the mouse over arrow and select New Query.
    tfstaskburndow01
  4. Create and save the query as shown below
    tfstaskburndown1
  5. Now put your mouse over the created Shared query on the left and click on the arrow then select Add to Team Favorites.
    tfstaskburndow0
  6. Go back to your TFS Team Project home page. And click on the green plus icon at the bottow right of the screen. (mouse over the blue pencil to see it).
  7. Select the Chart for Work Items widget and click on Add.
    tfstaskburndown2
  8. Fill the configuration with the following
    tfstaskburndown3
  9. If you have existing work items you should be able to select the color of your choosing for each work item state (To Do / Done / In Progress …)
    tfstaskburndownseries

This is an example of the task burndown. As you can see the iteration started on the 19th of may and they created tasks progressively. Then we can see an increase in the In Progress and Done state day after day. The flat line is due to the week end.

tfstaskburndownresult

Please note that doing a task burndown like this will work a lot better if the tasks have all approximately the same size. If not this can result in the team having a false positive key performance indicator. For example, a team having done 80% of the tasks few days before the end of the sprint but the 20% remaining tasks avec representing 80% of the work ! So be careful when using this, the team must be aware and well informed about the risks.

Hello world!

Finally! After a very long time thinking of it, I did it and here you are.

I’m currently working as an Agile Coach and I want to share my 2 cents with you. Lucky you.

Still, I won’t restrict myself to agility and as a passionate .Net Developer I will also talk about “Craftsmanship”. You can call it craftsmanship, clean coding, pragmatic development, etc. It’s in my very humble opinion all about professionalism, openness and passion.

Now, let’s blog!