Personal Access Tokens (PATs) are not your friends

Background Programmatic connection to Azure DevOps cannot be done with your Active Directory credentials. This is because this involves a dialog being shown, and these days usually an MFA check too. Historically, the solution to this problem was to enable Alternate Credentials, which could be passed as username and password, without the dialog being shown. However, the use of these has been deprecated since 2020, and they have been completely removed since Jan 2024....

March 22, 2024 · 3 min · Richard Fennell

It is really time to get off Azure DevOps TFVC source control

A History Lesson Team Foundation Version Control (TFVC) has been around since 2005, since the first release of Team Foundation Server (TFS) in 2005. In 2013, over 10 years ago, Microsoft added Git support to TFS (later renamed as Azure DevOps), Git had already been around for 8 years at that point. 10 years is a long time in the software industry, I always think of ‘IT years’ like ‘dog years’ i....

March 21, 2024 · 4 min · Richard Fennell

Bit rot is killing my pipelines

In a modern hybrid cloud world we have to accept constant change as the norm. You can’t just build something and forget about it. You have to keep it up to date as newer tools/libraries appear. This is to at least address security issues, even if you don’t want to adopt the new features. So I am expecting a degree of maintenance work on my Azure DevOps pipelines. However, this is becoming more awkward as many of the tasks used by Azure Pipelines, even ones from Microsoft, are themselves not being maintained....

April 26, 2023 · 2 min · Richard Fennell

Book Review - Code: The Hidden Language of Computer Hardware and Software

Late last year at (DDDNorth](https://twitter.com/dddnorth) my session had the title ‘Why don’t people seem to be able to diagnose problems these days?’. Between anecdotes, a key theme was tha people too often don’t make sensible diagnostic steps. A problem caused, in my opinion, by the fact they have not been exposed to the fundamentals of how a computer works, due to the way computing is taught today, as opposed to how it was taught in my youth in the 80s...

January 11, 2023 · 1 min · Richard Fennell

You need a license to touch that (revised 18 years on)

“You need a license to touch that!”. The case for licensing of individuals within the software engineering profession. Background Back in 2004 I completed my BSc Degree in Computer Science at Bradford University; only 20 years after I started. My year in industry got out of hand! One module I did involved me writing a paper on a legal area concerning computing. I chose to discuss licensing of engineers. Whilst at the DDDNorth community conference last weekend (Dec 2022) I got chatting on aspects of staff development, problem solving and training with a fellow MVP Matteo Emili and I mentioned this paper I had written....

December 5, 2022 · 11 min · Richard Fennell

Ignite 2022 Azure DevOps & GitHub Announcements - GitHub Advanced Security comes to Azure DevOps

Today at Microsoft’s Ignite Conference there have been some very interesting announcements related to Azure DevOps and GitHub. In the recent past, I have seen confusion from our clients as to what is Microsoft’s recommended DevOps solution, given they have both Azure DevOps and GitHub. It is true that Microsoft have said, and continue to say, that GitHub is the ’north star’ the long term destination for all users. However, that does not help clients today....

October 12, 2022 · 2 min · Richard Fennell

Book Review "Accelerate DevOps with GitHub" by Michael Kaufmann

The contents of this book is not at all what I was expecting from the title ‘Accelerate DevOps with GitHub’. Usually books that aim to provide up to date walkthroughs for a specific current tools tend to not place them within the large tapestry of the ecosystem. This is not the case with this book from Michael Kaufmann. Each section is delivered in broadly three parts, which I found really effective...

September 4, 2022 · 2 min · Richard Fennell

The importance of blogging - or how to do your future self a favour

Yesterday, yet again, I was thankful for my past self taking time to blog about a technical solution I had found. I had an error when trying to digitally sign a package. On searching on the error code I came across my own blog post with the solution. This was, as usual, one I had no recollection of writing. I find this happens all the time. It is a little disturbing when you search for an issue and the only reference is to a post you made and have forgotten, so you are the defacto expert, nobody knows anymore on the subject, but better than having no solution....

January 14, 2022 · 1 min · Richard Fennell

My cancer story – thus far

This is a somewhat different post to my usual technical ones… In December 2017 I had major surgery. This was to remove an adrenal cortical carcinoma (ACC) that had grown on one of my adrenal glands and then up my inferior vena cava (IVC) into my heart. Early on I decided, though not hiding the fact I was ill, to not live every detail on social media. So, it is only now that I am back to a reasonable level of health and with some distance that I feel I can write about my experiences....

August 23, 2021 · 14 min · Richard Fennell

Where do I put my testing effort?

In the past I have blog on the subject of using advanced unit test mocking tools to ‘mock the unmockable’. It is an interesting question to revisit; how important today are units tests where this form of complex mocking is required? Of late I have certainly seen a bit of a move towards using more functional style tests; still using unit test frameworks, but relying on APIs as access points with real backend systems such as DBs and WebServices being deployed as test environments....

May 17, 2018 · 2 min · Richard Fennell