Article :: Telling Stories and User Role Modeling

Agile software development is based on "telling stories." In this sample chapter, you'll learn about user roles, role modeling, user role maps, and personas. You'll also find out how taking these initial steps leads to better stories and better software.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
Article :: Agile Projects: Managing with a Light Touch

This chapter introduces Light Touch management, a project management system that emphasizes the ability to manage agile teams with a style that allows team autonomy and flexibility and a customer value focus without sacrificing control.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
Article :: Software Development: Iterative & Evolutionary

Iterative and evolutionary development is a foundation not only of modern software methods, but of methods used as far back as the 1960s. Agile methods are a subset of iterative and evolutionary methods. This chapter summarizes key practices of iterative and evolutionary software development.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
Writing Anonymous Methods with Lambda Expressions

I like using Lambda expressions for anonymous methods. I don’t really have a good reason for it, but I like it, so here’s the difference. Let’s say you have a class exposing the following delegate: public delegate bool CheckExpirationDelegate(); public CheckExpirationDelegate CheckExpiration; The normal anonymous delegate would look like this: di.CheckExpiration += delegate() { return true; }; But, [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Article :: Mental Retooling for Agile Project Management

By stealthily employing some Agile principles, Dave Christiansen took his project team from pointless to practical. Here's the tale.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
A Table Valued Function to Split Strings

– the function CREATE FUNCTION SplitString (       @TargetString NVARCHAR(MAX),       @Delimeter NVARCHAR(MAX) )   – the part repository RETURNS @Parts TABLE (       PartId INT IDENTITY(1, 1),       Part VARCHAR(MAX) ) AS BEGIN         – just some variables to keep track of things       DECLARE             @CurrentIndex INT,             @DelimeterIndex INT,             @PartLength INT;         – initialize the loop       SELECT             @CurrentIndex = 0,             @DelimeterIndex =CHARINDEX(@Delimeter, @TargetString, 0),             @PartLength = @DelimeterIndex - @CurrentIndex;         – [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Health Care, Elections, and Media — Oh My!

I was trying to learn more about the McCain health care plan today and I ran across this article.   Now, I’m not a professional writer like Paul Krugman by any stretch of the imagination, but I did stay in a Holiday Inn last night, and I have had several articles published in peer-reviewed professional and [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Recursively Searching for Classes of Specified Type from an Assembly or Type

Sometimes I find myself implementing a plugin architecture and I need to find a list of classes in an assembly that qualify as plugins for a given project.   I wrote the following class to help me do this: public static class TypeFinder {     public static List<Type> GetTypesFromAssembly(Assembly assembly, params Type[] assignableTypes)     {         List<Type> types = new List<Type>();           if (assembly != null)             foreach [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Article :: Software QA 101: The Basics of Testing

The testing phase of software development often gets short shrift by developers and IT managers. Yet testing is the only way to determine whether an application will function properly before it is deployed. In this article, Sue Hildreth offers an overview of the why and how of software testing.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
Providing both Authentication and Anonymity

I was reading a little tgdaily today and I found an article about a new iPhone app that may be showing up in the app store in the near future. The new application is called Trapster and it’s a “social-networking speed trap warning website.” I know what you’re asking. Well, I don’t actually know [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming
Article :: Agile Software Management Accounting for Systems

Throughput Accounting can be generally applied for the management, control, and reporting of any system. Throughput Accounting is appropriate for managing general systems because it focuses on Throughput, which is the desired adaptive behavior of the system.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
Article :: Keeping the Code Clean

Is your kitchen a wreck? Your code probably is, too. "Uncle Bob" Martin explains why it's a bad idea to leave last week's "code spaghetti" drying on the dishes for cleanup later.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
Article :: Agile Management for Software Engineering: Dealing with Uncertainty

There are five main constraints in software development management — people, time, functionality, budget, and resources — which all must be protected from uncertainty. Uncertainty manifests itself when the unplanned happens. David J. Anderson explains how a system can absorb uncertainty with the provision of buffers, and how and when these buffers should be used.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
Article :: Developing Secure Applications Through Aspect-Oriented Programming

This chapter provides helpful information on using aspect-oriented programming to develop security components for distributed applications. The effectiveness of AOP technology is demonstrated with two application-level security problems that illustrate the utility of this technology.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
Unpivot Table Sproc (3 lines)

CREATE PROCEDURE [TOPS].[UnpivotTable] ( @tableName AS VARCHAR(512), @whereClause AS VARCHAR(2000) = NULL, @commonColumns AS VARCHAR(2000) = NULL ) AS -- ========================================================== -- Author: Patrick Caldwell -- Create date: 2007/12/19 -- Description: this procedure unpivots data in a table -- [...]

Categories: Agile Programming | Computer Humor | Computers | CSharp | Dot Net | Emerald Software Group | Humor | Onboarding | Patrick Caldwells Blog | PHP | Programming | Project Management | Service Oriented Architecture | SOA | SQL Server | Technology | Web Development | Web Services | Windows Programming