It’s something we all should do but it seems to rarely happen. What is it? While I’m not endorsing this site, MindTools does have a pretty good description. Wikipedia also has a page on it (see Active Listening). I did like the warning at the top of the page in Wikipedia that talks about weasel words. Perhaps that falls in like with double speak. Whatever the definition the point is, that active listening is rarely practiced.
Ok, so now you know a little bit about active listening, heck maybe you already practice it in principal. When I’m talking with someone, I go into the conversation expecting that they will not be an active listener. Since I can’t make someone listen, I need to adjust my message so that the important parts come across. This is especially challenging when the message is not going to be accepted easily by the listener. For example, when giving constructive criticism to an employee, I expect them to be practicing Active Thinking. Funny right? The act of hearing only a few words of your topic then immediately form a rebuttal. It’s during the rebuttal phase that practicing Active Listening becomes a challenge. It’s during this process that I put things in black and white. I know they are not going to listen fully. So backing it up in writing reduces the chance of ambiguity. Is this fool proof? No, but I’ve found that it is significantly more successful than just “saying it”.
Ok, perfection is a fictional concept that can never be obtained. So why am I even bringing it up? Key to my practice of Active Listening is to accept that I don’t have all the answers. Also, my point of view is a matter of my perception. I accept that the person already has a different perception and by listening to their contribution to the conversation helps me form a better idea of where they are coming from. This is a process that will never be perfect. My goal with every conversation is to gain a little more insight into their perception. This helps improve future messages to achieve a higher chance of getting through.
Sound bites just a political thing?
Or maybe just the news? Sound bites are used because they are effective. Short simple statements with intentional pauses have been shown to increase comprehension. I’ve used this technique when dealing with particularly difficult people. Me? I’m difficult? To some people I’m sure I am. My goal is to get my message across at the office. It’s not a social hour. When in a social situation, I‘m not worried about clear and complete understanding. As long as a good time was had by all, I call that a winner. By the way, I found that using sound bites for humor can be pretty fun too.
So while this short blog may not be overwhelmingly educational. I enjoyed writing it and sharing some of my thoughts on Active Listening. Writing this is my way to help me to remember to use Active Listening especially during stressful situations.
It has been a while since I’ve blogged. Mainly that is due to having a significant role change. In the past year I’ve gone from a cog in the machinery to being the big cog. Dream job? In many ways yes. But the old adage of being careful what you wish for is always something to keep in mind. It might just happen and then you are on a heck of a rollercoaster ride. Now, that’s all I’m going to delve into that piece of history. The main idea behind this blog is about managing multiple projects, people and processes in a diverse and changing system. What is this, you ask? It’s like looking at technology from a distance and up close at the same time. Having a team of diverse and talented individuals who may or may not be in the right role. Keeping stake holders happy and projects on track. A typical day you say. Well if you’ve been there and done that, I would concur.
The future is out there. How you see it and perceive it can play tricks on your plans. Plan? Really, you mean you have to have a plan? How can you plan when you have conflicting projects? One plan is to not have a plan. Yes, I said it. No plan whatsoever. You just react to stuff as it comes up.
How, you might ask, is not having a plan having a plan? Plans are choices and by not choosing to pre-plan your projects you’ve made a choice. So if plans are choices and one was made…voila! A plan. Typically, this type of plan results in chaos. Now that may be fine for advanced mathematics but not really for a business. Not only that you leave yourself open to be blindsided, missed opportunities and generally letting things go to waste. Like not cleaning out the refrigerator, ever. Some of those mystery items in the fridge are truly scary. In business, scary things should be avoided. At least in my opinion.
The clock is ticking. Time is of the essence. Ugh! When does it stop? With luck, never. Perhaps never is too long but you get the meaning.
Now you might be wondering why I’m talking about no plan? Yes? Well, that is the environment I inherited. So, how do you turn it around from an unplanned reactive environment to one where plans are established and executed?
One thing I’ve seen in other environments is the tendency for the change agent to come in with the Great Plan and the attitude of “we’re going to set sail on a new direction, TODAY!”
Having an established plan is wonderful and you do need to have that vision. But it’s a “Vision” not a “Plan”. Why? All the existing employees are used to the old way. People don’t like big changes. Someone coming in with the Big Plan is going to meet a lot of resistance and eventually, the old habits win out. You also end up with grumpy staff!
Eventually you end up looking like…
with all your plans a mess and no traction.
So how does that change?
It depends a lot on your leadership, and the leadership of others. So, keep your vision but you’ve got to do some homework first.
Does that mean you can’t start out right away? Absolutely not.
The first task is to start getting rid of blockers. Perhaps a blocker is an individual. Maybe it’s a process.
Am I saying to “Fire ‘em All”?
No, but you may have to do that unpleasant task more than once. Again, homework!
Staffing changes is an option but before you even go down that route, you have to make sure you’ve identified and acquired the all tribal knowledge that is available.
You may find yourself in a situation where most of the tribal knowledge has already walked out the door. I know this situation first hand. You could have staff on hand that are making the motions but really have no idea how the whole system should even work. If that’s the case, after you’ve ascertained that “Elvis” has indeed left the building then it is time to fire that shot across the bow to let the team know you mean business.
Letting someone go is never easy and should never be done lightly. Homework and documentation. Let me say that again. Homework and documentation.
You have key decisions to make about the role that person occupies. Are you eliminating the role and reducing head count? Are you replacing the person and not the role? A couple of key questions (there are more…) but also you have to make sure that HR is involved with the process and it is done in a legal and professional manner. No kidding! Remember, HR always.
Ok, so maybe it’s a process you’ve got to fire. Huh? Trust me, some of your employees look at their processes as another individual. I mean, it’s like… “We can’t stop doing that! The company will fail if we stop doing that! “That” is the way its always been done. We can’t survive if we don’t do it!” You get it. Homework, again. If you run into this, and you will, you have to have a clear idea of what process or purpose the task fills. Things like repetitive functions that can be reduced to a single or automated step are my favorite.
Reports that go no where. Yes, these animals exist far more than you’d ever realize. I was at a company once where there were dozens of reports generated and sent to a file directory that nobody had read access to. Outside of IT, nobody knew the reports even existed. The staff who generated the reports spent two days every month creating these critical company reports. Critical? Yes, that’s what the department understood. Who knows, maybe it was a former executive who wanted them. Some of the reports were useful and they were kept. The irony was that the ones that took the longest had no current business use. Two days turned into fifteen minutes. Imagine that!
Now it’s time to build all the disparate parts into a functioning whole. The plan? I did start out this mess by talking about a plan… You have to make small turns of each gear that drives the company. Looking where you can remove a cog or, preferably, make the cog smaller so it turns faster. When you take a piece out in the middle of the line, make sure that the other process can move in to fill that gap. This is critical. If you don’t, you simply silo the processes and the dysfunction continues.
The hardest part in all this is having the patience to wait out the small changes. The importance of patience becomes more pronounced when your vision begins to take focus.
Making small changes to address the future vision is an Agile way of looking at business. See, the concept doesn’t just apply to programming. It’s all a series of processes that have to work together to make a whole system.
You can’t be afraid of making the difficult choices, sometimes they are all you have. Typically, if it is difficult the impact is much greater. More when it’s a person choice than a process. Keep in mind though that a process choice may directly affect a person in an unforeseen manner. Isn’t that just a kicker? You get rid of a process making some employees life easier and they quit because you took their process away. Hogwash you say? Unfortunately, I’ve seen it first hand.
Set the vision – you need to know where you are going
Make a general plan – to many details ensure the plan will break. The more detailed, the sooner it breaks!
Increment the change – small changes are easier for the whole to digest. Break up big changes into small parts.
Wait the change – you have to give the change you made time to be adapted to. To many small changes too fast can even be worse than a big change.
Revisit the plan and adjust – Once change has started, new things will come to light that were either not known (a real surprise), the change introduced a new situation (surprising but not a shocker) or you’ve some more time to do some more homework and can better tune the plan (I like this one).
Well, not exactly…
you see, I had a problem…
Ok already, yes it was a self created problem.
not really something I could do anything about. Here is the problem scenario.
You have a windows 8 computer
No password, no password recovery disk
You are hosed…or rather I was. The computer? Brand new hi-power dell running windows 8. Ok, I did all the old school tricks to try to get to the command prompt. I wanted to run:
But every time I tried to get past the logon screen, I was stymied. Finally I booted into the bios. Why? Because it was set to boot from the Hard Drive first. Why was this important? Because I had a brand new Windows 8 install disk that would allow me to get to the command window without the challenge. Being in install mode and all.
So after going into the bios and moving ol’ dvd rom to the top, I was able to boot off the install dvd.
Got to the “install windows” screen. In the lower left corner in really small writing is a repair windows link. Click on it and a few new options show up. You can “Refresh” among other things. But I went to Advanced. Clicked on the Command Prompt option. Once there it was a pretty simple couple of steps to :
a) re-enable the local admin account
b) reset the local admin password
Log back in as admin and finish fixing the system.
Seems like it would have been easy from the beginning. To bad I fussed around with old school options before I figured this one out.
Hope this saved you some time…
I had an opportunity to create a virtual tour video for my parents Real Estate Company. All of the tools used were from Microsoft. So here’s the quick 101 on creating, uploading and posting a Virtual Tour video using SkyDrive.
The part is creating the Video. I know a lot of you have your super Macs and high fidelity stuff but if you don’t and need to do something like this… Well here goes…
Start with Windows Live Photo Gallery. Why? Editing the photos prior to putting them into the video…
So you’ve got a photo you want to use but, it’s crooked, or needs to be cropped…
Kind of looks like the ceiling is slanted…
A little corrective action, and the photo looks a lot better. Once all the photos are “touched up”. It’s time to build the movie. Enter windows movie maker…
Simply import your photos…
and you start to build your video…
add your title…
Possibly some effects…
Now that you got the basics… you end up with your video…
Ok, so you got your video and it’s ready to push up to SkyDrive…
So by simply using the SkyDrive Icon…
Choose the resolution…
Log in to Live…
Choose an existing folder or create a new one and click publish
You can watch online, etc…
Open up Microsoft SkyDrive…
There’s your video, all ready to go. Now you need to share it on a web page…
By clicking on Sharing, you are presented with options of how you can share the video…
The default is for email but in this case I need to imbed it on a web page. Clicking on “Get a Link” presents a couple of choices…
View Only was the option I chose. By doing this, it creates an embeddable link that I can use on a web page.
You can use the initial link
or create a shortened link…
And that’s it. Place this link on a web page or Facebook… and you’re done.
You can see the finished video here on it’s listing web page.
I’ve also used SkyDrive to embed the Mansions Photo here….
New Code, New Job or New Opportunity…
Over my career, I have had to adapt to and adopt new technologies and technologies, while I was conversant in them, were deployed in very unique ways. Technological change is inevitable and if you want to remain viable, you have to roll with the punches. Time can morph the FINEST architected system to the point of instability. These are my thoughts on spinning up at a new opportunity or being presented with a new system and reaching a knowledgeable state within 90 days (120 if there are outstanding “other” tasks to be done).
Reverse engineering a system can take one of two paths depending on the availability of information.
Why start right off with reverse engineering? Few of us have the opportunity to work in a Greenfield environment.
You can go down the path that the documentation is “golden” and the foundation is sound and focus all your energy on the methods, properties and attributes of all the classes. I know this sounds like OOP but a sound understanding of objects and the states they occupy is critical. The second way is to talk to stake holders, use the application and get to know the operational intent of the application. With that approach, the documentation becomes a reference but not a guide.
Note, not all "documentation" has an informational value.
If you have access to the code, that enhances the power of the "documentation".
So, the first set of skills needed is to be able to develop a plan to reverse engineer the code. How does one come on board and "spin up" to be a master? This is a second set of skills and helps to master the code base. This being said, the last skillset needed is a "QA" mindset.
Code to test, test to code. According to Yoda:”Write Code? Test, you will…”
Reverse engineering code:
Access to the source code! More than once, I’ve gone into a project and have access to the source code and think I have it made. Ten minutes later I’m looking for the bus that just hit me. Why? Having access to the source code is great but that doesn’t necessarily mean you’ll understand the code in any time in the near future (six mos.) but it is useful. Beyond the obvious (this is the code you have to maintain) it gives insight to the hands that have touched the code. While in this process, it’s also a good time to think about refactoring. Windows of opportunity are quickly closed by the pressing needs of business. While that window will open up again and again, it is open widest at the start. For example, the code is well structured and for the most part, maintainable. You run across a section that is hanging off another module. At first, it looks like a valid piece of code reuse but after delving in a bit more, you find that it’s not related to its location. You may learn that it was put there because that’s where the “screen” appears in the application. Now the code is being maintained in two places. Complexity has crept in along with an increase in the potential for breakage.
In addition to the source, hopefully the code was documented in-line while being developed. Now tools can help. They still can even if the code is not internally documented. Grab a documentor that can parse through the source code (like the .Net documentor on CodePlex or Resharper). Hers a pretty good list of available documentation tools. Depending on the previous developer, you can inspect the compiled code to see what methods, properties and attributes are exposed by the classes. From there, it’s time to move on to the next step and become a master.
Mastering the code base:
This is where the diplomat comes in and works with the stakeholders to determine two areas. First, what works well and does not need enhancement. The second is everything else. What? Just two? Really, there can be only one. Once a line or two is written, all bets are off and modifications will follow. That’s a good thing right? What does diplomacy have to do with this? I’m SUPER DEV/DATA GUY/ETC. <<announcer voice>> and nothings stands in my way <<queue reverb, a little echo and fade off>> Wicked skills right? Guess what, you were hired for those so you don’t need to go down that road. What you have to do is…
I know this architect who really has a handle on code. Granted, maintainability lacked because the code was complex but over all it was a complete application.
The stakeholders never were consulted and the solution eventually died on the vine.
In another situation, I wrote an application for a set of users. It was simple and straight forward from the use point. Almost an “easy button”. I spent a lot of time on the data parsing dll. The applications sole purpose was to read a text file, allow the user to “map” the data to field designations and then generate a load file.
After I left the company, a decision was made to “upgrade” the vb 6 application to .Net. What should have been an easy refactor was complicated by the decisions to completely re-engineer the tool and give it a whole bunch of new features. Well, the application was built and the team asked to use it. Herein lies the problem. The new application did do what the original one did and it did a whole bunch of other things. However, nobody talked to the stakeholders and while it was installed on their systems, they never used it. A few years later, I was talking with a friend who still works there and my old VB6 application is back doing it’s job. I’m sure it’s retired by now.
The moral here:
Just because you can add a whole lot more, doesn’t mean you should. If you do, make sure the stakeholders are on board.
Back to spinning up. Now armed with documentation from talking to the stakeholders and working through the application it’s to get a handle on the current state. Determine the backlog of fixes, enhancements and new features. Once you’ve got your initial list, it’s time to go back to the stakeholders and get a clear understanding of priorities. You go into this knowing full well that there will be conflicting priorities and this is where being a diplomat plays a critical role. How does this enable you to become a master of the environment and code base? This gives you a blueprint to follow to start building/getting knowledge of the resources required and the burn rate needed to clear the backlog. This all plays into the next and last part of the initial push to get on board and get up to speed.
QA the product and code:
You have to run through the application to build test cases and determine expected results. Applications exist in their own space. What may have seemed logical to one makes no sense to another. So, how do you get a handle on the code? Work with the backlog. Simple yes? You just put on your agile hat and go for it.
Well, if you can do that, my hats off to you. Me, I have to take a much more gradual approach. I could call the approach I take the “Onion” but at times, it feels more like a great Red Wood
Getting a handle on how the code actually works versus how you expect it to work is critical. This also starts to build your library of test cases you will need to make changes. Without know how a piece of code runs, you will not know if your change has had unintended consequences.
While there are details and additional steps to take, this is the viewpoint from 60,000 feet. This process gets constantly refined depending on the need at the time and how much critical focus is needed.
- Your GPS can’t make up it’s mind what course to take
- Your cellphone keeps showing “Connection Lost”
- Your companies network is located on the east coast and a big old storm takes it out
- It’s not Monday but it sure feels like one
- The Halloween decorations are still in the garage and Halloween is a day away
Note: all the headings are from the book. I’m including the chapter names for reference.
Chapter 4 – Basic Report Design
This chapter starts off pretty frank about Wizards. In my opinion, wizards are a great tool when you need to prototype out something quickly and your are not going to use it in a long term way. Maybe I’m jaded from my experience with SharePoint where the wizards actually put you behind the eight ball later. That being said, it’s nice to see that this book starts off with a “minimal” wizard approach and skips going over the primary wizard to create a report.
Your mileage may vary but I think it’s the right approach.
This chapter starts out with a proposition to show you some basic skills around report design. Barely into it all be fore you get the Warning Will Robinson…Danger. Well not exactly but it does point out the fact that if you are running against SharePoint the process varies. Namely, you use SharePoint for creating a new point instead of the Report Manager page.
Since these two approaches quickly flow into a single approach, it may have been nice to have put one of the two approaches in the appendix or devoted four pages to this where the first page starts out with “if SharePoint is not installed, skip steps 1A and 2A and go to Step 3 otherwise if SharePoint is not installed, skip 1A and 2A and go to 1B”. Having the branches as A and B in the same block of text seems confusing to me. Just saying…
Track on the steps, pretty straight forward once you’re past the To SharePoint Not To SharePoint Section.
You go from this…
The Ribbon… What you say? With most of UIs for Office and other products, the designers at Microsoft, did a refactor job on the menu. Yup, they introduced change. Queue the grumbling! Chapter 4 takes on a quick 101 trip down the Ribbon highway. Does this really apply to report design? You betcha! Knowing where things are is half the battle.
There are a lot of useful tips in the book but you might need to read closely to catch them. For example;
One of the things I’ve learned about document management in Windows is that when I open a
document intending to save a copy, it’s a good idea to save the copy right away. This way, I don’t
make changes and then accidently save them on top of the original document. Let’s take care of that
task right now to avoid an “Oh, crud” moment later:
This should have been a “TIP” in my opinion. The information is good but it is easy to miss.
The chapter goes on to give you a high level report design experience with clear steps. This makes is easy to follow to build a report. One of the interesting challenges between the versions of SSRS, is that each time, something pretty major has changed in how you address a report. A shout out is given to the prior methods but it does not dwell on those “gone” and hopefully “forgotten” features.
Chapter 5 – Report Layout and Formatting
It’s interesting, the longer my career goes, the more technology seems to blur but people and stereo types seem to hold. Like the author mentions early in chapter 5.
KNOW YOUR AUDIENCE.
Ok, the author didn’t yell but I did. Why? I also experienced the situation where you create this professional looking report for a bunch of Engineers and have it shot down in FLAMES for being not what they asked for. Yup, simple Excel style reports were preferred. My experience was with Crystal Reports then Access Reports back in the bygone days before SSRS. Yes, this happened more than once. Go figure.
At least that situation is far better than being on the other side where the client wants more data on a page than can be reasonably placed.
Ok, my mp3 player just went from an interesting Herb Alpert song to Scott Joplin’s “The Entertainer”.
Enough of a segue and on to the material at hand. Since Chapter 4 ended with Matrix Reports, Chapter 5 logically moves right into more details. Namely a List is a Table is a Matrix. Say what? It’s three three three reports in one you say? Ok, things like properties come into play etc. It just outlines the streamlining that SSRS has gone under where once there were three and now there is one.
After discussing the various types of report objects, the author presents a nice “page” that shows the various how the objects can be used to create an informative Dash Board.
In sorting group values, the author brings up a tip that might be more noticeable if it was set apart. When the natural key does not lend it self to sorting, a sort key needs to be present to facilitate appropriate presentation of the data. In this case, a Month sort is used as the example. The month names don’t sort with their numeric equivalents.
There are a variety of data values in a warehouse where sorting is a challenge. The report developer doesn’t always have the luxury of influence over how the data comes in. Hopefully the ETL team has taken this into consideration and added the additional information for the Report Dev… Sorry, got on the box. Back to the review…
The rest of the chapter goes on to cover the rest of the report objects included in Reporting Services. It provides a pretty decent overview of what’s available and some general scenarios when those objects can be utilized in a report. Next, it’s designing data access.
Chapter 6 Designing Data Access
What do you talk about when it comes to data access? In fact what do you think about? Well, that’s what chapter 6 is about…
You get the basic drill: A report uses a dataset that maps to a database through a defined Data Source connection. You also get a quick bit about where you’re going to design (define?) the report and the pros and cons of the various products. At this stage is a pretty high level treatment.
Moving on into the chapter, the author presents a good overview of taking the long view in describing what the report designer should consider. I would add to it that when working on reports, it’s a good idea to have some basic understanding of the business.
We then do a walk down the types of data and different approaches. You’ll need to get familiar with some terms here if you are not already. An experienced data professional will probably glance through this chapter and only pick up snippets of interest. A beginner can use this chapter as a resource to find out about the different types of SQL, data sources and other bits. It’s quite a rich chapter and includes additional step by’s to build up working reports to boot.
There is quite a bit in this chapter about filtering a query and where that filter is applied. This is an area where I have found that a lot of performance improvements can be realized. It’s nice to see this topic well covered. I’ve worked with a lot of Devs who like to put everything into the application side and don’t leverage the data server.
Hmmm…. Data…. Server…. Do ya think it might be good at chewing on data… Just saying…
One of the biggest advantages a “dynamic” report has going for it is the use of parameters and the chapter does a decent job addressing this. If all you produce is a static report, the users or clients of the reports will think your report is very nice but for REAL data, they’ll go back to their Excel files. Hey, designing a report with sufficient set of parameters to meet the need may not satisfy the analyst but it will make the chief person happy and since they sign the checks… Ok, just read the chapter…
The chapter ends with a look at some of the possible data sources you might be working against. It then logically flows into a discussion about Federating Data Sources. You might wan tot look at The Federated Data Warehouse Or see the Information service patterns, Part 1: Data federation pattern for some additional light reading.
Chapter 7 Advanced Report Design
Ok, queue the drum roll. I think…
Hmmm… Making headers and footers a topic under advanced. Well, ok I guess. To me this should be a basic construct in every report. Ya ya ya, I know, page numbers right? That’s your major driver for a footer? Well, what about the date? Certainly a Header or Footer item. The flag that it’s CONFIDENTIAL? Basic reporting stuff in my book but there is a lot more than just the basics in this chapter so it also belongs here. If you need more of a 101 on basic report design…
The lack of non-product based material on general report design principals is why books like these should take a little time at some point to discuss the overall reasons why some pieces are in a report.
Anyway a nice change is being able to put fields in the header and footer sections. The next section covers aggregates. This is a section that a lot of technical folks struggle with. Why? Decision makers tend to be strong sensors. This means that they don’t care so much about the granularity of the data as they care about the information needed to make a decision or two. Aggregates provide that data. Information Specialists tend to be more on the Thinker side where it’s all about the grain and they just don’t trust somebodies else’s roll up.
So, the net from all this? This section is a good one and it shows reports formatted such that the decision maker can use it. If you are a “Thinker” type and feel like skipping this section, you might want to pay closer attention. That is unless the report you’re making is for you and you alone.
The next section or two takes you into some of the finer elements of report design. Not all reports can be in Courier and be printed out on a dot-matrix fan folded feed printer. It’s all the web now. At least this section gives you a handy dandy HTML Formatting Reference.
Following formatting, it’s logical to discuss Master and Detail reporting. Glad to see that’s what was next. To some degree this was addressed from the data side in Chapter 6. The treatment here is how to set up that relationship in the report. Yes the example is from Adventure Works. Folks seem to get hung up on that simple thing. Ignore the fact that the samples provided demonstrate typical business scenarios, the argument is usually…
“We don’t sell no stinking bikes…”
Ok, so forget the company. Point the report at your own data and have at. The principals here still apply.
Throughout the following sections there are a lot of step through sections and examples that will improve the over all data output.
Chapter 8 Chart Reports
Down the wild woolly path to charts and graphs…
Beware, this is fraught with peril… from a meaningful report design perspective. Hey, you put it in a graph it must be right…right?
Pay particular attention to the man behind the curtain… no, but do pay attention to Chart Type Summary (Table 8-1). Especially the BEST USE column. This chapter is decidedly shorter than the others. Well worth a careful read to pick up some chart use skills.
Section II Wrap
Ok, it’s a wrap on Report Design. This section is a good one to refer back to when working on report requirements and basic design. It is a heavier section from the reading side of things but has plenty of step by step walkthroughs to get you to the end. It is full of tips and a couple of keen don’t or restrictions about reporting services that should be considered.