Statistical Method for Estimating Software Projects

As the Vice President for Research and Development at Emerald Software Group, a large part of my job comprises managing software projects from conception to completion. As a programmer in a management position, I’ve discovered a few things. First, I am very good at estimating how many human hours of programming time it [...]

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
Article :: Agile MDA

Agile MDA combines two seemingly contradictory ideas: Agility and Modeling. As we shall see, these notions do not, in fact, conflict--so long as models can be executed.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
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
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
HR-XML Integration in Human Resources Software

Most of the programming and architecture work I do is in the human resources space. I write software for paperless onboarding and acculturation, personell change management, background checks and verification services, new employee requisitioning, and the like. As you can imagine, I spend a great deal of time and effort integrating with human [...]

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 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
Article :: Perils and Pitfalls of Agile Adoption

Agile development sounds great; what could go wrong? Matt Heusser examines some of the myths, mysteries, and classic mistakes in Agile development, including some things to consider before jumping into Agile with both feet.

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
Article :: Avoiding Java Exception Abuse

There are always exceptions to the rule, right? In Java, those exceptions allow a clean break from normal program flow in the event of an exceptional situation. They're not used for program flow interruption, but for program flow branching, which can sometimes lead to difficult-to-maintain code. Marcus Zarra walks you through several best practices for using exceptions in Java.

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 :: The Agile Revolution

Jim Highsmith introduces the concept of "Agile Product Management," a style of product development that concentrates on adaptive and exploratory, rather than anticipatory and prescriptive management.

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 :: 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 :: Exploratory Testing on Agile Teams

Jonathan Kohl relates an intriguing experience with a slippery bug that convinced his team of the value of exploratory testing: simultaneous test design, execution, and learning.

Categories: Agile Programming | Computers | InformIT | InformIT Agile Programming | Programming | Project Management | Technology
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 :: 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 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