a possible solution
we first create a table node that we number
Then, it sends a change of coordinate system by a rotation of 45 ° to easily trace the grid. All intersections of the grid are named,
then just draw the connections in the right places

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning,calc}
\definecolor{myblue}{rgb}{0.407,0.792,0.949}
\begin{document}
\begin{tikzpicture}
\def\hh{1.2em}
\foreach \nn [count=\ni] in {Vice President,Director,
deputy director,environmental planning, center for development,
office of research \& development,
resource center,
public information,
community relations,
administrative services,
office of new programs,
personnel,
public
}{
\node[text width=22em,draw=myblue,,minimum height=\hh,inner sep=0](n\ni) at (0,{-\ni*\hh}){\, \textsc{\nn}};
}
\begin{scope}[rotate=45]
\foreach \ii in {1,2,...,13}{
\draw[myblue] (n1.north east)|-(n\ii.south east);
\draw[myblue] (n\ii.north east)|-(n13.south east);
\foreach \jj in{\ii,...,13}{
\path (n\jj.east) -| node[circle](n\ii-\jj){} (n\ii.east);
}
}
\draw[fill=black] (n1-2) circle (0.2em);
\draw[fill=black] (n2-8) circle (0.2em);
\draw[fill=black] (n3-8) circle (0.2em);
\draw[fill=black] (n6-10) circle (0.2em);
\draw[fill=black] (n7-12) circle (0.2em);
\draw[fill=black] (n7-13) circle (0.2em);
\draw[fill=white] (n2-3) circle (0.2em);
\draw[fill=white] (n2-9) circle (0.2em);
\draw[fill=white] (n3-4) circle (0.2em);
\draw[fill=white] (n3-5) circle (0.2em);
\draw[fill=white] (n3-6) circle (0.2em);
\draw[fill=white] (n3-7) circle (0.2em);
\draw[fill=white] (n5-6) circle (0.2em);
\draw[fill=white] (n5-11) circle (0.2em);
\end{scope}
\end{tikzpicture}
\end{document}