Survey: State of Software Development

Survey TakerI don’t normally promote surveys, even those pushed by PMI. But Tamas Torok and the folks at Coding Sans are collecting data for the 2018 update to their State of Software Development report. Last year’s report was probably the most interesting of the 40 or so I read in 2017, in that it included both utilization and aspirational data on technologies and methods and practices for recruiting and retention. However, it was hampered by the fact that their responses were heavily weighted toward Europe. I suspect that if they can get more responses from the Americas, India, and Oz / NZ, the results will be even more accurate and actionable.

So even if you don’t manage software development projects, please pass this link along to one of your colleagues who manages development teams. The list of questions is comprehensive but it shouldn’t take more than 7 minutes to complete, assuming you don’t ruminate over “What have you done about it?” I believe they will close the survey around March 9. When they publish the report, I’ll include it in the weekly round-up.

New PM Articles for the Week of June 5 – 11

New project management articles published on the web during the week of June 5 – 11. And this week’s video: Doug H. shows how to create a RACI chart in Excel, add validation and an error message, make each value display in a selected color, and improve the presentation with simple formatting. If you’ve struggled with Excel in these areas, this is an excellent demo. Just 11 minutes, safe for work.

Must read (or Hear)!

  • Lynda Bourne explains how to differentiate between normal, complex, and megaprojects and how to apply Traditional, Agile, Complex, and megaproject management methods.
  • James Clear explains why entropy drives complexity (as well as Murphy’s Law).
  • Matt Spence interviews Senator Kamala Harris, former Attorney General of the world’s sixth largest economy (California), on absorbing new technology into public policy. Just 27 minutes, safe for work.

Established Methods

  • Richard Bayney tutors us on creating a prioritized project portfolio, optimized using Efficient Frontier analysis.
  • Harry Hall analyzes the risk management processes for what they contribute to the bottom line: getting results.
  • Ryan Ogilvie recommends that you have a dialog with your customer about service to discover what they really want.
  • Alex Puscasu details best some best practices for outsourcing project work.
  • Elise Stevens interviews John Wyzalek on the fine points of engaging external stakeholders. Just over 20 minutes, safe for work.

Agile Methods

  • Stefan Wolpers curates his weekly list of all things Agile, from Ron Jeffries on Dark Scrum and Corporate Agile, to an Agile historical timeline, to 12 principles for better experiments.
  • Johanna Rothman continues her series on “Scaling” Agile with part 4 and part 4a.
  • Dave Prior and Derek Huether discuss design on the Scrum team and Scrum Masters filling multiple roles. Just over 20 minutes, safe for work.
  • The Clever PM defends “ScrumBut” as a reasonable model if it works better for the organization than rigorously following the Scrum Guide.
  • Leigh Espy notes three easy Agile practices that you can adopt today (after due diligence, of course).
  • Garren Heye notes that resisting chaos is not about being inflexible or resisting change. Agility is not formlessness.
  • Mike Griffiths insists that retrospectives produce “lessons to be learned.”
  • Claire Karjalainen recaps a panel discussion on scaling design in the enterprise, including design leaders from SAP, GE Digital, Walmart, IBM, and HP Enterprise.

Applied Leadership

  • Art Petty tells us to beware of the leader who demands loyalty.
  • Suzanne Lucas tells of a junior analyst who followed the instructions for setting up her development workstation and deleted the production database. And got fired?
  • Seth Godin: “We always have a choice, but often, it’s a good idea to act as if we don’t.”

Technology, Techniques, and Human Behavior

  • Paramita Ghosh explains the best practices for extracting business value from machine learning.
  • Adam Shostack applies threat modeling techniques to a dockless bike sharing system available in China which is suffering from cheating customers.
  • Rob England advocates killing the Change Advisory Board. Or at least removing permission for every strap-hanger to object without taking responsibility for improvement.

Working and the Workplace

  • Conner Forrest highlights findings from a new report that indicates “fear of losing my job to artificial intelligence” is the number 1 cause of stress at work for Gen X and Millennials.
  • Daniel Lobo rails against the social pressure to be “Available” on instant messaging, which he refers to as “green dot syndrome.”
  • Richard Moy shows us how to kick-start a productive day without doing real any work—just clean your desk. It positively influences your mental energy level.


Excel Functions You Probably Aren’t Using

I started using spreadsheets back in 1985, in the days of Lotus 123. At the time, I was developing reliability prediction models used in design tradeoff decisions for systems being developed for the US Army Corps of Engineers (that little reverse osmosis water purification do-dad under the counter at Starbucks is pretty straightforward technology, but when scaled to produce tens of thousands of gallons per day, using surface water and generator power, things can get complicated). I moved to Excel a few years later when I adopted Windows 3.1 but after more than three decades, I still manage to find new ways to capture and manipulate data. Let me share a few Excel functions that you probably aren’t using.

Calculating the Number of Working Days

It’s easy to calculate the difference in days, weeks, months, or years between two dates, but I often need to calculate working days.

NetWorkDays(Start_Date, End_Date,[Optional_Holidays])

This function calculates the difference between the two dates but ignores Saturdays, Sundays, and whatever holidays you pass it in a list. You can pass this example list either directly as B2:B9 or by defining a name for that range (highlight the range, right click, Define Name) and passing the name. We’ll use this list as an example:



Martin Luther King’s Birthday (US)


President’s Day (US)


Memorial Day (US)


Independence Day (US)


Labor Day (US and Canada)


Thanksgiving Day (US)


Day after Thanksgiving (US)


Christmas Day


Let’s say I want to include the number of working days until some event in a status report. The effective date of the status report is in a named cell (done the same way you named the range of holidays) and so is the event date. Like so:


This will return the integer number of working days, which you can then use directly or in another calculation.  I typically include the holidays for the project in a separate tab. But let’s say you crashed the schedule and decided you needed the team to work a few weekends, especially at go live. So create a list of Working Weekend Days, name the range, and add it to the calculation.

Working Weekend Days


Conversion Sunday


Cutover Saturday


Cutover Sunday


Now we can incorporate those weekend working days into the formula:


In this example, the CountIf function picks up the two days in the list greater than the status date of January 9, which is then added to the 108 days from the NetWorkDays function result:

Status Date


Go Live


Working days to Go Live


The Working days remaining equals the number of weekdays between the two dates, minus the three holidays that fall in the range, plus the two weekend dates greater than the status date. Note that if your weekend days are something other than Saturday and Sunday, the NetWorkDays.Intl function allows you to specify alternatives.

Summarizing Data in a Table

While we’re talking about status reports: it helps to summarize the information in your risk register, even at a high level. Take a look at this sample, which includes the results of a qualitative risk analysis.

Risk ID

Risk description

Last likely date of occuring



Calculated risk


This risk






That risk






The other






One more






And another


Very low



The Calculated risk field is based on a formula:


Note that two lookup tables were defined to associate numeric values with the Probability and Impact scores; the risk is calculated as the square root of the product of the two numeric values. So let’s say you want to tally up the number of risks with High or Medium scores that are still likely to occur. On the status report, it looks like this:

High Risks


Medium Risks


We can use the CountIfs function to tally the risks for each criterion. For High risks, e.g. those with a Calculated risk value of 3.0 or more, and a Last likely date after the status date:

=COUNTIFS(Calculated_risk, ">="&3, Last_Date,">"&Status_Date)

For the Medium count, we’ll use a range of values:

=COUNTIFS(Calculated_risk, ">="&2, Calculated_risk, 
"<"&3, Last_Date,">"&Status_Date)

Getting a Completion Date

Sometimes I need to pencil out a very high-level timeline to determine if a goal is even achievable by some date. So I’ll create a list of tasks, each with a proposed duration, and start date. The assumption is that each task begins the day after the predecessor completes. I can then use the WorkDay function:

WorkDay(Start_Date, Duration,[Optional_Holidays])

This returns the serial number of the date Duration days after Start_Date. I can convert it for display using the Text function, like so:


I can also convert the date to the day of the week, again using the Text function:


This lets me specify a State Date for the first task and durations for each task in the list, with the subsequent start dates and completion date calculated automatically.


Start Date

















Complete on



Of course, the danger in this approach is that by tweaking the start date or individual durations, you can convince yourself that something is achievable simply by giving yourself less time to do it. So, don’t do that.

The ability to create reusable spreadsheets that use Excel functions to provide actionable information from raw data is still one of those skills that will pay big dividends over the course of a career in project management. All you really need is a little imagination and an understanding of what the data actually represents.