Software Development encompasses the techniques and methodologies employed to engineer high-quality software solutions that meet user needs and business objectives. It is a systematic approach that integrates various practices, including Agile, Lean, and DevOps, to enhance collaboration, efficiency, and adaptability within teams. This concept is crucial as it enables organisations to deliver value predictably and sustainably, fostering a culture of continuous improvement and responsiveness to change.
By focusing on iterative development, teams can quickly adapt to feedback and evolving requirements, ensuring that the software remains relevant and effective. The emphasis on automation, testing, and integration within Software Development practices reduces the risk of defects and accelerates delivery cycles, allowing for frequent releases that enhance customer satisfaction. Moreover, it promotes a holistic view of the software lifecycle, encouraging cross-functional collaboration and knowledge sharing among team members.
This long-term, systemic approach not only improves the quality of the software produced but also cultivates an environment where innovation thrives, enabling organisations to remain competitive in a rapidly changing market. The integration of evidence-based management principles further supports informed decision-making, ensuring that teams can navigate complexity and uncertainty effectively. By prioritising these practices, organisations can achieve a sustainable competitive advantage through enhanced software development capabilities that align with their strategic goals and customer expectations.
The strongest work on Software Development — ranked by substance, not recency. How this is ranked
Telling People What to Do Is Not Leadership. It’s a Failure of System Design
Explores why real leadership means designing systems that enable team autonomy, flow, and accountability, rather than relying on …
Stop Building Silos. Start Building Systems
Explains how fragmented automation and tool silos harm software delivery, and advocates for unified engineering systems and platform …
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?
Compares “flow of value” and “flow of work” in Kanban, explaining why only validated outcomes count as value and stressing the need for …
Is Agile Really Just a Mindset?
Explores Agile as a disciplined system of delivery, emphasizing engineering excellence, CI/CD, observability, and system design over mindset …
Why Topic Branches Drive High-Quality Delivery
Explains how short-lived topic branches in source control improve software quality, enable modularity, speed up integration, and support …
Why a Shared Definition of Done Is the Secret to Consistent, Predictable Quality in Agile Teams
Struggling with inconsistent delivery? Discover why a shared definition of done is key to predictable, high-quality results your teams, and …
Why Outsourcing DevOps Fails, and How Real Engineering Excellence Starts With Your Team
Avoid DevOps vendor lock-in, discover how true engineering excellence starts with partnership, not outsourcing. Ready to transform your …
The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery
Tracking estimation accuracy in software delivery leads to mistrust, fear, and distorted behaviours. Focus on customer value, flow, and …
Telling People What to Do Is Not Leadership. It’s a Failure of System Design
Explores why real leadership means designing systems that enable team autonomy, flow, and accountability, rather than relying on …
Stop Building Silos. Start Building Systems
Explains how fragmented automation and tool silos harm software delivery, and advocates for unified engineering systems and platform …
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery
Tracking estimation accuracy in software delivery leads to mistrust, fear, and distorted behaviours. Focus on customer value, flow, and …
Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?
Compares “flow of value” and “flow of work” in Kanban, explaining why only validated outcomes count as value and stressing the need for …
Estimating Better in an Overloaded System Is a Poor Man’s Strategy
High work in progress (WIP) causes delays and unpredictability; improving estimates won’t help. Limiting WIP and focusing on flow is key to …
Are We Still Pretending Coding Was the Bottleneck?
AI exposes that coding was never the main bottleneck in software delivery; real constraints are in system flow, team practices, and …
Should You Use One Project to Rule Them All in Azure DevOps?
Explores when to use a single Azure DevOps project versus multiple projects, detailing impacts on flow, visibility, governance, and team …
Is Agile Really Just a Mindset?
Explores Agile as a disciplined system of delivery, emphasizing engineering excellence, CI/CD, observability, and system design over mindset …
Why a Shared Definition of Done Is the Secret to Consistent, Predictable Quality in Agile Teams
Struggling with inconsistent delivery? Discover why a shared definition of done is key to predictable, high-quality results your teams, and …
Why Outsourcing DevOps Fails, and How Real Engineering Excellence Starts With Your Team
Avoid DevOps vendor lock-in, discover how true engineering excellence starts with partnership, not outsourcing. Ready to transform your …
How to Tackle Technical Debt Without Halting Progress: Smarter Ways to Keep Your Team Moving Forward
Struggling with technical debt? Discover practical ways to tackle legacy systems, boost team morale, and deliver value, without grinding to …
Why Big Bang Rewrites Fail: How Sustainable Change and Engineering Excellence Transform Legacy Systems
Ditch the Big Bang rewrite. Discover why sustainable, in-place change drives true engineering excellence and lasting transformation in your …
Why Azure DevOps Wins for Governance, Security, and Scale, Right Out of the Box
Unlock seamless governance, security, and scale with Azure DevOps, integrated tooling that lets you deliver value, not just manage …
Stop Guessing: How to Make Work Visible and Drive Real Improvement with Azure DevOps Flow Metrics
Stop guessing, start making data-driven decisions in Azure DevOps. Discover tools, tips, and insights to make your work visible and your …
Stop Testing Quality In: How Shifting Left Builds Better Software, Faster
Stop testing quality in, start building it in. Learn how shifting left, automation, and fast feedback loops drive engineering excellence in …
Still Deploying Manually? Why Automation Is the Bare Minimum for Modern Engineering (and Your Business Survival)
Still deploying manually? Discover why automation isn’t optional, protect your business, avoid disaster, and deliver value with modern …
From Legacy Pain to Modern DevOps: My Proven Roadmap for Real Engineering Transformation
Transform legacy engineering with a proven, step-by-step approach, learn how to automate, adapt, and build a resilient, modern DevOps …
Building a Resilient Token Server: Engineering for Flow, Fault Tolerance, and Speed
Explains how to engineer a robust, fault-tolerant token counting server using FastAPI and PowerShell, covering error handling, retries, …
Convert Legacy Projects and ASP.NET MVC Apps to SDK-Style with Confidence
Learn how to upgrade legacy .NET and ASP.NET MVC projects to SDK-style for easier builds, modern tooling, and future readiness, including …
Detecting Agile BS
The Evidence-Based Management Guide 2020: Improving Value Delivery under Conditions of Uncertainty
694 resources, newest first
When should I use Areas in TFS instead of Team Projects in Team Foundation Server 2010
Explains when to use Areas versus Team Projects in TFS 2010, comparing benefits, drawbacks, and best practices for managing multiple …
MVVM for Dummies
Explains the MVVM pattern in WPF and Silverlight, highlighting separation of concerns, code structure, and the roles of commanding, …
Finding the problem on a partially succeeded build on Team Foundation Build Services 2010
Learn how to diagnose and resolve partially succeeded builds in Team Foundation Build Services 2010 by tracing test failures, identifying …
Solution: Testing Web Services with MSTest on Team Foundation Build Services 2010
Explains how to configure MSTest for automated testing of web services on Team Foundation Build Services 2010, including handling dynamic …
Solution: Getting Silverlight to build on Team Foundation Build Services 2010
Step-by-step guide to resolving build failures when compiling Silverlight 3 projects with Team Foundation Build Services 2010, including …
Solution - SEO permanent redirects for old URL’s?
Explains how to set up SEO-friendly permanent redirects for old URLs to new ones in ASP.NET, covering best practices and code examples for …
Wpf Ninject Dojo: The Data Provider
Explains how to use a custom NinjectDataProvider in WPF to enable dependency injection for ViewModels, improving flexibility and design-time …
Updating the Command Line Parser
Explains how to enhance a .NET command line parser to support multiple and nested commands, custom switches, and delegate-based execution …
Wpf Drag & Drop behaviour
Explains how to implement flexible drag and drop in WPF using MVVM, with customisable drop behaviour and bindable options for ItemsControls, …
Creating a Data Access layer using Unity
Learn how to build a flexible data access layer in .NET using Unity for dependency injection, interface mapping, and factory patterns with …
Log Elmah errors in Team Foundation Server
Explains how to log Elmah error reports as work items in Team Foundation Server, including attaching error logs, using templates, and …
Unity and ASP.NET
Explains how to use Unity for dependency injection in ASP.NET, enabling runtime component swapping without redeploying, with practical code …
My.Unity.Resolve(Of Ninja)
Shows how to create a shared UnityContainer singleton in VB.NET using the “My” namespace, enabling dependency injection across WPF and …
Developer Day Scotland
Summary of sessions from a Glasgow developer event, covering refactoring, dynamic languages in .NET, MVVM for WPF, architecture, and ASP.NET …
Fail a build if tests fail
Explains how to configure TFS 2008 builds to automatically fail if any tests fail by setting TreatTestFailureAsBuildFailure to true in the …
Reformat your CSS on the fly
Learn how to use a .NET HTTP handler to dynamically adjust CSS file paths, ensuring images and resources load correctly across different web …
Does test-driven development speed up development?
Explores whether test-driven development (TDD) accelerates software delivery by reducing complexity, rework, and design flaws, and improving …
Retrieving an identity from Team Foundation Server using only the display name
Explains how to retrieve a user or group identity from Team Foundation Server using only a display name, including handling Active Directory …
Advice on using XamRibbon with Composite WPF
Provides guidance and code examples for integrating Infragistics XamRibbon with Composite WPF, including custom region adapters for dynamic …
Branch madness!
Describes a complex source control issue in TFS involving branch mismanagement, its impact on merging, and step-by-step actions taken to …
Sync extension for Lists/Collections or whatever
Explains how to synchronise two .NET collections by applying differences, with thread safety using locks, ensuring target lists match source …
Creating a WPF Work Item Control
Learn how to build a custom WPF work item control for Visual Studio Team System, enabling WPF UI integration in work item forms using a …
Calling an object method in a data trigger
Explains how to call an object method in a WPF DataTrigger, the limitations with extension methods, and common errors when binding methods …
IHandlerFactory
Explains how to use a custom IHttpHandler and handler factory in ASP.NET to redirect old URLs to a new site, preserving links and SEO with …
TFS Event Handler in .NET 3.5 Part 2 - Handling Team Foundation Server Events
Guide to implementing a resilient Team Foundation Server event handler in .NET 3.5 using WCF, including service contracts, endpoints, …
TFS Event Handler in .NET 3.5 Part 1 - The Architecture
Explains designing a resilient, scalable TFS event handler in .NET 3.5, focusing on system architecture using Visual Studio diagrams for …
Creating a custom proxy class
Learn how to build a custom proxy class in .NET 3.0 for duplex communication, enabling maintainable code and easy updates when service …
The future of software development
Explores how software factories, web services, and specialised development teams can speed up software delivery, improve adaptability, and …
Creating a managed service factory
Explains how to build a managed service factory to access and manage local or remote services across multiple servers, supporting flexible …