Modern practices for software development and support are centered around four tenants of wisdom:
- Agile – a methodology based on iterative development
- Continuous Integration – frequent code commits, automated builds
- DevOps – increased collaboration between development and operations
- ALM (Application Lifecycle Management) – the management (governance, development, and maintenance) of software applications
In my earlier article, I explored the evolution of software development practices and how these new approaches have helped reshape and improve the quality, accuracy, and timeliness of software development.
Microsoft has invested heavily in creating tooling to support these modern techniques of software application lifecycle management. The company has embraced and promoted the capabilities of their products to support these strategies, so let’s take a look at what they actually offer, minus the jargon and marketing hype.
Continue reading “Getting to Know Microsoft ALM”
The last twenty years has seen major changes in the technologies we use to build software, but most significantly, the way we build software has fundamentally evolved to improve the quality, accuracy, and speed of delivered software. This article takes a look at changing philosophies and strategies that has driven these improvements.
Continue reading “The Evolution of Software Development Practices”
The “Visual Studio” moniker has expanded over the years to a full-fledged family of products tailored to facilitating the implementation and support of high quality software. The versatility of Visual Studio makes it a good choice for software development whether your language or framework of choice is .NET, web client, or open source.
The website www.visualstudio.com is the hub for all things “Visual Studio”. There is a lot of good content on this site, as well as access to free and trial editions of products. The challenge that this site has is how to distill the Visual Studio offerings into a format that a technologist, manager, or purchaser can absorb to make decisions on which software best satisfies their needs. Since Visual Studio has grown into multiple products, and each of those products has an ever-expanding feature set, the straightforwardness of conveyed information is often eschewed in favor of highlighting new and improved features. Industry terms and branded feature names are also commonplace in describing Visual Studio capabilities, making it harder to comprehend the amount of relevancy and value to your own development team.
So, with this in mind, let’s take a simpler look at Visual Studio from the ground up from the perspective of a decision maker needing to assess what software is needed for a software development team to work effectively.
Continue reading “Which Visual Studio Do I Need?”
Microsoft’s cloud computing platform, Azure, is now five years old. I remember reviewing an early version of Azure in 2011, and my major takeaway was that the documentation describing Azure services and capabilities was incomprehensible, and the web-based user interface was difficult to use. Having had experience with Amazon Web Services, I thought Microsoft was going nowhere in their efforts to deliver a competitive alternative.
Continue reading “A Brief History of Microsoft Azure”
A few months ago I was an owner of an iPhone 6. Now I have a Windows Phone instead. Why did I switch? Is Windows Phone better or more useful to me than iOS? Well, no, not exactly…
Continue reading “Why I Switched From iPhone to a Windows Phone”
I have Hulu on Apple TV and Roku devices, and I really struggle to understand why each experience is so uniquely flawed. I think the developers are so focused on surfacing their content in immersive ways that they haven’t actually asked anyone that uses it in the real world for their experiences. So, here is my feedback (Hulu dev team, hope you are listening).
For those not familiar with Hulu concepts, the basics are this. Hulu’s special niche is their availability of current season TV shows from most major networks. Often, the number of episodes is limited to the most recent five or so. Hulu has a queue, which you can add to, to keep track of shows you want to watch. They also have a favorites feature that has the handy behavior of automatically adding new episodes of a show to your queue.
The queue management features sound good. But here are the issues…
Continue reading “Hulu Queue Management Design Problems”
In a future socialist utopia, a car buyer will be able to confidently walk into a dealership and pay the same price as everyone else buying the same type of vehicle. But, alas, in today’s free economy and capitalistic regime, we must each fend for ourselves at the dealership. And guess what, most folks are paying thousands more dollars than they need to for their new car. That’s because car dealerships are the enemy of the car buyer. Upfront price quotes are often meaningless. Competitive quotes are misleading. Advertised specials are not so special. They just want to get you to the dealership, because once you’re there the real magic begins!
Every step of the car buying process is fraught with danger. You will be misled. You may think you got a great deal while the salesperson is in the other room high-fiving and making “ka-ching” sounds to his colleagues. Some dealership staff come across as cocky, sleazy, arrogant, or just plain “car-salesman-ey”, while others are courteous, professional consultants ready to provide crucial support in your car buying endeavor. But make no mistake, no matter what the behavior and attitude is of the staff, they share one thing in common—they have many strategies to invoke during the car buying process with the singular goal of separating you from as much money as possible. Even the nicest salesperson follows a dealership protocol designed to maximize the salesperson’s cut and the dealer’s profit.
Continue reading “How To Buy a New Car”
I’ve hit quite a few issues while building a page that displays events in Sitefinity using just the out-of-box functionality. Along the way, I’ve logged a few support issues, but I decided to write it up from beginning to end to clear my mind and hopefully save others from getting stuck with similar problems.
Continue reading “Problems with Sitefinity Event Dates”
I recently had a problem with the following code not working as expected:
var services = context.Benefits
.Include(b => b.Services.Select(s => s.ServiceCategory))
.SelectMany(b => b.Services)
I’m using a Select within the Include to load the ServiceCategory object associated with each Service in the Services navigation property of the Benefit object. I’ve used Include a lot in the past and never had a problem until now.
As it turns out, Include does not work if you change the shape of the query after specifying the Include method. In my case, SelectMany caused the shape to change from Benefit to Service.
Fortunately, the solution is simple. Specify the Include after changing the shape as follows:
var services = context.Benefits
.SelectMany(b => b.Services)
.Include(x => x.ServiceCategory)
I found the solution, and an explanation for this behavior, in an MSDN blog post.
Today I received an email from Microsoft regarding an Annual Maintenance Notice for the Microsoft Certification Program. I haven’t logged into the MCP for a long time, so I thought I would take a look to see what nice improvements I might see. It was nice that the email included my MCID, so that saved me a minute looking it up. I was required to also provide an access code. Those are only good for 12 months, so I knew that the one I had previously used had expired. I followed the link to get a new access code. Here’s where things started to go wrong…
Continue reading “Not the Best Microsoft Experience”