What Technical People Should Expect from a Non-Technical Conference

“Are any of these sessions going to have less… fluff?” was something that my younger, new coworker asked me somewhere halfway through the first day of a two-day conference focused on developing women leaders. Those may not have been the exact words she used, but that was 100% the intent behind what she asked. She is an application programmer, newer to the workforce than I am; this was her first non-technical conference, and she clearly expected something different of it than what we were experiencing. I can’t blame her; I felt the exact same way a few years ago when I first attended the Women and Leadership conference at Boise State University myself.

If you are someone who works in IT and are attending a general, non-technical professional conference for the first time, you may feel caught off-guard when you’re expecting to learn hard skills or technical skills, and instead you’re only presented with ways to improve soft skills or even more ambiguous topics.

Read on to learn what you can expect to experience when you attend a professional, but non-technical, conference for the first time, so hopefully you are not as caught off-guard as my coworker was this year.

If there are other things you think I could have added, please let me know in the comments! I always love to hear other people’s experiences.

What’s in this post

You will likely not learn hard, technical skills

I am going to get this out of the way immediately. If you are reading this blog, you are probably coming from a technical or IT background, which means you will likely be disappointed to learn that a general professional conference will not provide you with any hard skills you can directly apply to your daily work. That isn’t the purpose of these types of conferences; if it was, they probably wouldn’t even do a good job since the target audience has such a wide variety of professions that couldn’t all be covered.

I think this is the biggest shock to learn for people new to general professional conferences. It caught me off-guard the first time I went to one. I also saw it this year with a younger coworker attending this type of conference for the first time. These conferences aren’t like college, technical conferences, or online courses. They aren’t meant to teach people specific hard skills, because they would need to have too many different sessions for all the professions the attendees work in.

If you’re about to attend a conference like this for the first time and you work in IT or another technical profession, go in with an open mind, expecting to learn something completely unexpected, because I guarantee that you will. It won’t be what you might expect, but it will still be great.

You will learn something you weren’t expecting

Since the topics at a professional conference aren’t targeted at any specific profession, that means the topics chosen for sessions are going to be chosen to be suitable for a broad range of professionals. That can range from how to network, how to make a personal brand, all the way to things like how to meditate and do deep breathing to calm your nervous system during tough times at work. Each year that I’ve gone to a generalized conference, the topics have had such a wide variety. For example, one of the “skill builder” sessions offered at the Women and Leadership conference this year was about estate planning. I bet you wouldn’t have considered that topic to be relevant to you, but several of my coworkers went to that and said it was really insightful.

You will learn useful soft skills

Soft skills are the underrepresented benefit of a well-rounded employee that so many people, especially in technical realms like IT, overlook. While each worker should definitely have technical skills required to complete the job they were hired for, they will be much better to work with if they have soft skills as well.

What are soft skills? These are behaviors that you exhibit that shape how you communicate and work with others. They are often called “people skills”, but I think soft skills can also apply to things outside of direct interaction with others. Some examples of soft skills are: being able to gracefully handle conflict with coworkers; being able to read and write clearly to communicate ideas to others; being able to recognize and manage emotions in others; flexibility; time management; organization. The last few items are soft skills that can relate to other people at work, but are also just a part of how you decide to manage your own work.

One of the best things about general professional conferences is that there are usually several sessions available that focus on soft skills. These types of skills are necessary for all professionals, no matter their field, which is why they are frequent topics of presentations at this type of conference.

The soft skill that stuck with me most this year was changing my mindset to change my habits. One speaker pointed out that we try to change our behaviors without asking what thoughts and beliefs are driving them. I wanted to be less distracted at work, but after past failed attempts, I’d come to believe I was just a distractible person. She showed me how to tweak that thought into something that still feels authentic but points toward who I want to be: “I only get distracted when I’m tired.” Shifting that belief has actually helped improve my focus. I would never have learned this at a database conference, and I’m glad I got to apply it to both my work and personal life.

You will get to meet new people from your own company

If your company is anything like mine, they probably like to send more than one person to each conference. That means hanging out at the conference with the other people from your work who were sent there as well. This is a great opportunity to meet new people and make connections at work. There are so many reasons why it’s good to network with different people outside your normal sphere at work, and I’ve found that being together at a conference has proven to be an excellent way to chat with people I otherwise would never meet or talk to.

Why is it good to talk to other people from your own company?

  • Gives you insights into other things that are happening at your company that could impact your own work in the future
  • Make new work friends, which can improve your experience of work
  • It can open doors to new opportunities within the company outside your team; not just new jobs, but also new projects or presentations within your current role
  • They likely have some of the same frustrations and problems with their own job and the company as you do, so you can vent and get some of your frustrations out. It can be nice to know you’re at least not alone in whatever you’re going through.
  • Meeting new people can be fun. You never know what type of lives your coworkers live outside of work, and it’s fun to learn what hobbies or lives outside of work coworkers have.

You will get opportunities to meet people outside of your profession that you wouldn’t get otherwise

I’ve met and talked to some of the most interesting people at the non-technical conferences I’ve gone to. When you go to a technical conference, you can expect that the people attending likely perform roles similar to your own. At something like the Women and Leadership conference, however, you can’t expect anything like that. This year, I met and chatted with a woman who is a mechanical engineer, a woman who is a sales manager, and then a woman who is a project manager. In previous years, I chatted with a group of women who worked for the Bureau of Reclamation. I didn’t even really know what that entity was or did until I talked to them!

When I chatted with the mechanical engineer this year, we were able to relate to each other on how some of the sessions hadn’t given us the “meat” we were hoping for, which was interesting. She obviously had a more “technical” background, although not directly with technology/computers like me. I found similarities with someone that I normally wouldn’t run into in my job.

And when I talked with the Bureau of Reclamation women, I learned so many new things, like how there are three different government agencies managing just one reservoir in Boise. I had absolutely nothing in common with them career-wise, but still really enjoyed talking to them.

When you talk to people outside your own organization, you learn about careers and industries you might not even know about. Talking to new people broadens your own horizons, and these professional conferences with wide audiences are the perfect place to do that.

As an IT person myself, I know how nerve-wracking it can be to interact with others that I don’t already know, but I really encourage you to take a risk and talk to someone new at a conference. Each time I’ve branched out to talk to a new person, I have enjoyed the conversation and not regretted it at all.

You probably won’t love every session you attend

I always promise honesty in my posts, so I am sticking to that with this one: you probably won’t love or have a great takeaway from every single session you attend at a general professional conference. Every year I’ve gone to one, there has been at least one session that missed the mark for me. Whether it was because the session ended up being much different than I thought based on the title, or the presenter wasn’t great, or because I just wasn’t as interested in the topic as I thought I was going to be.

I will argue that almost every session can help you learn something, even if that something is that you don’t like when presenters do x or y. That something can be beneficial to learn, because then you can make sure not to include that behavior or method in your own presentations in the future.

But if you are stuck in a session from hell that’s so far from interesting or useful to you that you just zone out or play on your phone, know that there are options and you aren’t stuck there. It is always okay to quietly leave the session and either find another that sounds more interesting or take a break. I personally think it’s more respectful to the presenter to fully remove yourself rather than be on your phone or computer, obviously not listening but still in the room. As long as you’re not making a racket while trying to leave or making it hard for others to stay tuned in, it’s not a big deal to head out.

You will be encouraged and empowered

Professional conferences, especially women-focused ones like the BSU Women and Leadership conference, are a great place to go to feel encouraged and empowered. There is something special about leaving your normal work behind for two or three days to dedicate your time to expanding your horizons, learning from new people, and thinking about new topics. Each time I’ve gone to a non-technical conference, I have heard from inspirational speakers who make me want to do more with my life. My current life is great, but it feels so freeing to know that I could change my career and life path at any time, should I choose to do so.

Each speaker brings an interesting perspective on handling challenges in life, and that’s what I love most about this type of conference. This year, I heard from a multinational inspirational speaker and charitable powerhouse of a woman who taught me about owning my privileges and using them for good. I listened to a woman who is normally a weight-loss coach, but she shared ideas about changing behaviors and habits that have stuck with me since her session. In previous years, I joined sessions that inspired me to do new things, like starting this blog.

There is something special about listening to people who bring positivity, joy, and encouragement to others. It allows you to gain a new perspective on your life. I always leave these conferences energized because of those new ideas and encouraging words.

Summary

General professional conferences can be very useful to people of all ages and professions if they are given a fair chance. If you are about to attend a general conference like this, go in with an open mind, expecting to learn something unexpected. Enjoy the experience while you can, and think of how you can apply what is taught in sessions, even if they don’t seem immediately applicable. If you’re in IT, the conference may feel like more “fluff” than you wanted, but I hope you are able to take away useful insights in the future by using my ideas above.

What to Bring to a Professional Conference

After graduating from college and starting an office job, you will likely find yourself invited by your company, or allowed by them to attend, professional conferences. These could be giant, multi-thousand-person technical conferences, or smaller local conferences focused on general personal and professional development. Each conference will require you to bring a slightly different set of items with you to be prepared. Today, I want to cover what you should bring to a general professional conference, one that is more like the second type I described above: focused on general professional development (like communication or courage) and personal development. This is going to be a very practicle, tangible list of things to bring, not a fluffy “you should bring a good atttitude!” type of post.

My inspiration for writing this is attending the Boise Andrus Center Women & Leadership conference at Boise State University for the third year in a row. For this type of conference, I pack far fewer things than I would for a highly technical conference like FabCon/SQLCon. But if you’re new to the professional world and about to attend this type of conference for the first time, how are you supposed to know what to bring? Should you show up with just your purse (or wallet/phone) and nothing else? Is it valuable to bring other things with you? Keep reading to find out.

What’s in this post

Notebook and Pen

This one should be fairly obvious, but at this year’s conference, I’ve seen quite a few people caught without writing implements when we were requested to write things down for a session activity. I know so many people have gone totally digital and like to take notes electronically, either on a phone or laptop, but you should stick to the classics for conferences, in my opinion.

If you’re trying to take notes on a device, it’s likely harder and less convenient to do for quick activities, and it also leaves you prone to distraction. One of my rules for conferences of any kind is that I will not bring my work laptop with me, because if I do, I will definitely be pulled back into work and ignore the conference since Teams and Outlook will always be pinging. Do yourself a favor, give yourself the distraction-free option of taking notes with paper and pen. Bring yourself a notebook and pen.

Phone and Charger

The one device I do bring with me to use during the conference is my phone (well, I bring two since I have separate work and personal phones). Having your phone with you will allow you to access any digital information provided by the conference, such as parking instructions, directions for where to go, what to bring, as well as giving you the ability to scan QR codes from presenters throughout the conference. In almost every session of every conference I’ve attended, the presenter has had a QR code in their presentation for feedback sites or free items from them. They may also provide resources to use for worksheets or tasks during the presentation. You don’t want to miss out on those opportunities if you think you might like to take them.

Of course, you can’t forget something to charge your phone in case you use it a lot, so bring a charger with you. For bigger conferences, I recommend bringing a power bank instead of relying on being able to find out outlet, since they can be a hot commodity. For smaller conferences like the Women & Leadership conference at BSU, you can bring your normal charger and expect to find an available outlet when needed.

Water Bottle

Many conferences are moving to be more environmentally friendly (yay!) so they do not provide to go cups or single-use water bottles for attendees, which makes bringing your own refillable water bottle a great idea. This holds especially true at the Women & Leadership Conference at BSU, because the Andrus Center that runs the conference focuses on environmental stewardship. That means that all drink-ware is glass and fairly small, so I’ve seen people having to walk back and forth to the main room constantly to get water and coffee that’s provided, and all are trying very hard not to spill from the small glasses while walking.

I totally support the move to not having disposable drinkware, but it does make me glad that I bring my own water bottle, so am not beholden to the water dispensers and small glasses in the main room.

On the note of coffee, the same thing applies as with water. You may want to bring your own travel mug for getting the free conference coffee if you don’t want to be stuck with a very small glass that’s not easily transportable to other areas.

Snacks and Gum

Conference days can be long and rigid, and they may not align with your natural cues for hunger or your regular meal times, so I recommend bringing a small snack (or several) with you to any conference so you know you won’t go hungry and get hangry if lunch or snacks aren’t served when you need them. I always bring a granola/nut bar of some kind with me, and then maybe some fruit leather or whatever else I have in my pantry.

I’m the type of person that needs to eat a little bit of food every couple hours, so I won’t (mentally) survive if I had to go the five hours between breakfast before the conference and lunch at the conference with nothing to hold me over. Plus, there’s never a guarantee that you will like what is served at the conference (they’re always so hit or miss with the food), so carrying your own backup snack is a good idea in that instance, too.

Some conferences serve treats or snacks in the afternoons, but not all do. Which is just another reason to prepare yourself, so you don’t spend the whole afternoon with your stomach growling.

A final note on this topic is that you may also want to consider bringing gum or mints for yourself, since you’re more likely to talk to others at a conference than in other places, because part of every conference is networking. And with all the free coffee served, and the snacks to hold you over between meals, you might want to have a method to freshen your breath before talking to a bunch of people.

Jacket/Cardigan

This one goes out to all the ladies, who, like me, are plagued by too-strong air conditioning everywhere we go. Conference centers are usually set up to keep the rooms cool with hundreds of bodies heating the place up, which means that the cool air is likely flowing strongly, even in the cooler months of the year. I personally have found that conferences are always too hot or too cold, so I bring a jacket or cardigan with me every day of a conference. It’s a little annoying to pack around sometimes, but when I get stuck in a room where the air conditioning is blowing directly on me for an hour or more, I appreciate being able to cover up and prevent (figurative) frostbite.

If you know you’re on the opposite end of the spectrum and are always running hot, this advice may not apply to you. But it never hurts to come prepared. If you run hot, this cute little phone-powered fan may be a good idea to bring instead. These were given out as goodies on the first day of the Women & Leadership conference at BSU this year, and I think it’s pretty nifty. It blows a lot stronger than I would have guessed, and some of my older coworkers told me it was great for dealing with hot flashes throughout the conference. I don’t know how quickly it would drain your battery, but it does seem a lot handier than bringing a separate battery powered fan.

Picture showing a smart phone with mini fan plugged into the charging port

Laptop

While I did say above that you should try not to use your laptop for notes since you may get distracted by normal work and miss the conference even though you’re at the conference, I think there are some reasons that bringing your laptop may be a good idea. Personally, I bring my own, non-work laptop with me to conferences in case I want to research anything in breaks or to be able to work on my blog or other personal projects. If you have a job that just won’t let you be “off” for a whole day, you might bring your work laptop with you to check in at lunch or during breaks.

I am currently writing this post on my laptop while waiting for the second day of my conference to start. Laptops aren’t bad by default, but can become an impediment to your learning and growth if you let it.

If you are going to bring your laptop, make sure it’s charged before you leave for the conference to reduce the chances of needing to charge throughout the day. But also remember to bring your charger to use when needed, just don’t expect to find an easy and convenient place to plug it in and be able to use it. Technical conferences are usually pretty good at putting power strips everywhere in session rooms since computers are expected in those conferences, but non-technical conferences are a lot less likely to give you good places to charge and work at the same time.

Earbuds/Headphones

This recommendation is for people who are easily overwhelmed by crowds and large events, or people who just want to be in their own bubble for a bit throughout the day. I always bring earbuds to conferences with me, in case I want to watch a video over lunch, or if I need a moment of solitude and relative quiet in a loud event. Plus, having the earbuds available and ready means I can quickly turn on a grounding meditation during a break if needed. I also use mine during breaks if I need to do a bit of work, since having my own quiet music on lets me concentrate better than if I was hearing all the people talking around me.

Emergency Toiletries

This recommendation is mostly directed at the ladies again, but truly can apply to anyone. I normally carry around a small pouch with my regularly needed toiletries, and going to a conference is no different. In my pouch, I have:

  • Ibuprofen, Tylenol, and Benedryl (headaches and allergy flare ups)
  • Floss (for post-lunch freshening)
  • Earplugs (mostly for when I am traveling, to make sure I can block out traffic noises in hotels, but also handy for other things that come up)
  • Nail file
  • Nail clippers (I really hate having hang nails and chipped nails)
  • Pocket mirror (good for checking face/teeth after eating)
  • Lip balm
  • Hand sanitizer
  • Glasses lens cleaning wipes

Customize the list to be whatever you would most likely need in a mini personal “emergency” situation (fashion issue, minor medical issue).

Summary

Preparing for a professional conference should be quick and easy, especially if you follow my list of items above. Don’t bring too many things, because then it becomes hard to move between sessions and to shake the hands of new people you meet. Try to fit everything into a single backpack or bag you can easily handle yourself, something you can tuck to the side or under your chair during a session.

If you would like to know what to expect and how to mentally prepare for a professional but non-technical conference, I will have a post coming out next week that covers that topic. I have a younger colleague who joined me for the Women & Leadership conference this week, and I don’t think she knew what to expect for how this conference would go, and I believe it impacted what she thinks of the conference. Attending a generalized, non-technical conference can feel a little weird for highly technical people like programmers and engineers, so next week’s post aims to level set expectations for these types of conferences so hopefully people aren’t surprised in a bad way.

Critical Checks for Oracle DB Tablespaces and Datafiles

When was the last time you checked on your Oracle database tablespaces and their datafiles, how those things are set up and organized? Are you sure that your tablespaces and datafiles are set up in a way that won’t cause an error the next time data is inserted into a table? If you are coming from a SQL Server background, you may not even know that you should be checking these things.

I wasn’t aware. Until our finance application, which is built on an Oracle database, had an error when trying to insert data due to a tablespace being out of space. When that happened, I did some quick online searching, found the first solution I trusted, and implemented that to increase the size of the datafile in question. And I’ve also dealt with some DB2 tablespace issues as well in the past, but I have never understood what’s going on and what the best way is to deal with current issues, and also prevent future issues. Until now.

In this post, I will walk you through the most important quick checks you can run on your Oracle database to ensure you’re not about to run into the brick wall of having a tablespace and its datafiles completely out of available space. If you are using a modern installation of an Oracle database, this may not even be an issue for you. But with my database, it was created as an on-prem database over 20 years ago, then moved to the cloud about 5 years ago with all the old baggage still intact. And that was handed to me about a year ago, so I’ve had to learn as I go, and I want to spare you that pain.

What’s in this post

What are tablespaces and datafiles?

These two database objects and logical entities are something you may be totally unfamiliar with if you’ve been working with Microsoft SQL Server in the modern age, because Microsoft obfuscates and removes any direct management of these entities. They exist on all RDBMSs in some manner or another, but you might not always need to know what they are or how to manage them.

So what are they?

Tablespaces are essentially a logical way to group the data for a set of tables. You can specify which tables (and their indexes) are stored on which tablespaces, so you can manage those tables together.

Datafiles are how the data of the tables is grouped to translate to physical storage on disks, and how the database tells the operating system to store its data.

If you get an error from an application along the lines of “unable to increase tablespace <tablespace> by 1 MB during insert or update on table...“, that would make you think that you need to add space to the tablespace, but you would be wrong. Since tablespaces are a logical data storage mechanism, you can’t add space to them directly. Instead, you need to add space to the datafiles related to that tablespace to resolve such an error.

The most important checks

I will go over all these more in detail in separate sections below, but I believe the items on this simplified list are the most important checks you should be running on your Oracle database to ensure you’re not about to hit storage errors.

  1. All datafiles (tablespaces) are set to autoextend
  2. Datafiles have room to grow
  3. Tablespace as a whole has enough room to grow
  4. No datafile is close to the absolute maximum

All datafiles (tablespaces) are set to autoextend

One of the easiest settings to check and enable on your tablespaces and datafiles is the “autoextend” setting, which, if enabled, will automatically increase the size capacity of datafiles for you when they are about to run out of space. Run the query below to see which of your datafiles are not set to autoextend.

SELECT *
FROM dba_data_files
WHERE AUTOEXTENSIBLE = 'NO';

Once you have that list of datafiles that are stuck at their specified size, you can then change them so that they will automatically grow, either up to a total maximum size you specify, or “unlimited”, which will stop growing at the physical maximum for a file based on some other values you specified when setting up the database. Those queries look like this:

ALTER DATABASE DATAFILE '+DATA/database_name/id_value/DATAFILE/tablespace.id.id' AUTOEXTEND ON MAXSIZE 1G;
ALTER DATABASE DATAFILE '+DATA/database_name/id_value/DATAFILE/tablespace.id.id' AUTOEXTEND ON MAXSIZE UNLIMITED;

Datafiles have room to grow

The next thing you’ll want to check, even if your datafiles are set to autoextend, is to make sure that there is still enough allocated space for your files to grow, that the file isn’t about to hit the autoextend limit that was set (if they were set to autoextend). To see what datafiles might be in trouble currently, you can run the query below, which will return any records where the value of the column “bytes” is equal to the value of “maxbytes”.

SELECT FILE_NAME
	,TABLESPACE_NAME
	,bytes
	,AUTOEXTENSIBLE
	,MAXBYTES
FROM dba_data_files
WHERE bytes = maxbytes;

The “bytes” column is the current amount of data storage used in the file, in bytes. The “maxbytes” column is the total maximum value the datafile can use (in bytes), which is the highest amount of storage the datafile can grow to if it is set to autoextend. If bytes = maxbytes, that means there is no storage left in the file, so no data will be able to be inserted into the file. And you’ll likely receive an error like this the next time someone tries to insert data into a table stored on that datafile:

unable to increase tablespace <tablespace> by 1 MB during insert or update on table...

In my environment, I had a total of 7 datafiles where bytes = maxbytes, which I needed to review to decide how to handle the situation.

Screenshot of the results of a query on an Oracle database to return datafiles where the used bytes value is the same as the maxbytes value. There are 7 redacted records shown, to demonstrate what the data looks like when a datafile can no longer extend itself.

You can either leave the files as they are, like in a case where the file has been extended to the maximum allowable size for the database, or you can choose to increase the maxbytes value so the file can continue to grow itself more as needed. If you are in the former situation where a datafile is at the maximum size for your database, see the “No datafile is close to the absolute maximum” section below to learn how to handle that situation.

To change the maxbytes value to increase the amount of storage the datafile can grow with, you can run a query like this:

ALTER DATABASE DATAFILE '+DATA/database_name/id_value/DATAFILE/tablespace.id.id' AUTOEXTEND ON MAXSIZE 1G;

This query is essentially the same as the one above, where you set the file to autoextend, but this time, you are ensuring you are setting the maxsize value to something significantly greater than the current value of maxsize and greater than the current value of bytes, which is the current amount of space used in the datafile.

Tablespace as a whole has enough room to grow

As I mentioned in the first section of this post above, a tablespace is a logical entity that is comprised of one or more datafiles, which are physical storage entities. Since a tablespace can have one or more datafiles, we also need to check to see if the tablespace itself has room to grow and insert new data into its tables. To get such information, we need to sum together the amount of space used for all datafiles within the tablespace, sum together the total amount of growable space in the datafiles, then calculate the percent free for all datafiles and thus the tablespace. The query below is what I have used to retrieve that data for my tablespaces.

SELECT fs.tablespace_name "Tablespace"
	,(df.totalspace - fs.freespace) "Used MB"
	,fs.freespace "Free MB"
	,df.totalspace "Total MB"
	,round(100 * (fs.freespace / df.totalspace)) "Pct. Free"
FROM (
	SELECT tablespace_name
		,round(sum(bytes) / 1048576) TotalSpace
	FROM dba_data_files
	GROUP BY tablespace_name
	) df
	,(
		SELECT tablespace_name
			,round(sum(bytes) / 1048576) FreeSpace
		FROM dba_free_space
		GROUP BY tablespace_name
		) fs
WHERE df.tablespace_name = fs.tablespace_name
ORDER BY "Pct. Free"
Screenshot of the results of a query on an Oracle database showing a list of 7 tablespaces, with most names redacted except SYSTEM and SYSAUX, demonstrating what the data looks like for tablespaces when they have very little free room for storage.

Anything that has 5 percent or less free in the tablespace should be looked at. Other tablespaces may also need reviewing if they have tables that fill up quickly. It all depends on your environment. In my case, I decided 5% or less free was worth fixing.

Resolving low availability in tablespaces

If you found, with the above query, that you had one or more tablespaces that were almost out of space, you will need to do something to remedy that situation. There are essentially two options for giving more space to your tablespace: 1) increase the maximum size of the datafiles within the tablespace so they have room to grow and make sure they’re set to autoextend, or 2) add one or more additional datafiles that can be used to store more data going forward.

Query to increase the size of the datafile:

ALTER DATABASE DATAFILE '+DATA/database_name/id_value/DATAFILE/tablespace.id.id' AUTOEXTEND ON RESIZE 1GB;

In this query, you are explicitly setting the new total size value of the datafile, which in this case, is now going to be 1 GB in size. Also, ensure you’ve set a high enough autoextend value by using the previous section above.

Query to add another datafile to a tablespace:

ALTER TABLESPACE tablespace ADD DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 5G;

In this query, we are creating a new datafile, without specifying a path, because we’re assuming that the database is set up to have files managed by Oracle. We’re setting the starting size of the file to be 1 GB and setting AUTOEXTEND on so the file can grow up to 5 GB as needed.

If you have space that you can extend your existing datafiles, I would proceed with option one. However, if the files are close to their absolute maximum size so they can’t be extended, you will be forced to go with option 2 and need to create those additional datafiles. How do you know whether or not you need to add more files? Read on to the next section to learn how to figure out if a file is close to the maximum allowable size.

No datafile is close to the absolute maximum

While executing the step above of trying to increase the data space inside your tablespace, you may run into the situation where the datafile(s) within the tablespace are at the maximum allowable limit according to your database settings, so you can’t further extend those files. To discover if you have any datafiles in that situation, run the query below, which will get you close to the standard maximum file size. In my case, I had one datafile in the SYSAUX tablespace that was completely full, so if I were going to extend that tablespace, I would 100% need to create additional datafiles.

SELECT FILE_NAME
	,TABLESPACE_NAME
	,BYTES
	,MAXBYTES
FROM dba_data_files
WHERE bytes > 34000000000
Screenshot showing a single record returned by a query on an Oracle database, showing what the data looks like when a datafile is at the maximum allowable size for a database, with the BYTES and MAXBYTES columns both being the same value of 34,359,721,984.

What is the maximum datafile size allowed?

The answer to this question depends on the settings of your database, specifically, the size of data block your database was created with. A data block is the smallest unit of data that can be stored in an Oracle database. By default, most Oracle databases are created with an 8 KB data block, but they can also be created with a 4 KB block by default, or a different value that you specify upon creation. To find the maximum size of datafiles within your database, we will need to run a query to find the data block size and then do some math.

First, run the query below to get the specified data block size for your database:

select *
from v$parameter
where name = 'db_block_size';

That will return the parameter that contains the size of data blocks for your database, like this:

Screenshot showing a single record returned from a query on an Oracle database showing what data is returned when you query the "v$parameter" view to get the default size of data blocks in your database. The screenshot shows a value of 8192 for the parameter db_block_size.

According to the Oracle documentation, the maximum number of database blocks for a datafile is “platform dependent; typically 2^22-1 blocks”. That means that the answer depends on the operating system your database is installed on (Windows, Linux, etc.), but is typically 4,194,303 blocks. If we assume you have a typical system with an 8 KB block size, that means the maximum number of bytes for a single datafile is 34,359,730,176 bytes, which is about 34 GB. I can’t guarantee that your datafile’s maximum size is that value, but it’s highly likely if you have that 8 KB block size.

If you run the above query to get datafiles with byte values > 34000000000, those files are likely close to your maximum limit, so you should create additional datafiles in those same tablespaces if no others exist already. Otherwise, you are very close to a “cannot insert data” disaster.

Summary

In the Oracle database world, all logical and physical storage tasks are not automatically maintained for you the way they are in the Microsoft SQL Server realm. I would consider Oracle databases a little more old-fashioned in that sense, since now I must regularly remember to do these types of checks on our databases to ensure we never get the dreaded “can’t increase tablespace” error. I would recommend that if you have an Oracle database, and you’re not already doing these types of checks, that you go through your database and run all the queries and checks I listed above to ensure your storage layer has a minimum viable level of support. You don’t want to be caught unaware and uneducated on the topic like I was a few months ago.

Recovery Options for Azure Key Vaults

I recently had a post about how to manage deleted Azure Key Vaults: how to find them after they’ve been deleted, how to recover them if you didn’t really want them to be deleted, and how to purge them if you want them to be permanently removed. In today’s post, I am going to cover more of the finer details of the recovery options you can set on a key vault when creating it, which will dictate the options you have available for recovering them in the case they get deleted. My organization has defaults that enabled me to recover a deleted key vault, but you may not get that option unless you specify that yourself, so I will tell you how!

What’s in this post

Recovery Options for Existing Key Vaults

As of the end of 2025, when I went into an existing key vault that I’ve already created, and I reviewed the “Properties” of it under the “Settings” tab in navigation, I could see the following settings:

  • Soft delete policy
  • Days to retain deleted vaults
  • Purge Protection policy

In the portal, that looks like this:

Screenshot of the Properties page of a Key Vault in the Azure Portal showing the retention settings available: soft delete, days to retain deleted vaults, purge protection.

For the example key vault shown, Soft Delete was enabled when it was created, which means that when a key vault is deleted, it will no longer show in your main list of KVs, so it appears deleted. Even though it looks deleted, you can still see the vault for the specified retention period if you go into a separate section of the console, which I covered in my previous post.

For this KV, we set the number of days to retain vaults after they’re deleted to 90 days, which is generally the default value supplied during setup. The final option you can choose is to either enable or disable Purge Protection, which is a feature that dictates whether or not you can permanently delete a KV before the end of the retention period. In our case, Purge Protection was set to disabled because this wasn’t an important key vault, and we don’t believe we would be negatively affected by an internal bad actor if they decided to delete and then permanently delete this vault.

One thing to note about the settings of this already created KV is that most of the recovery options cannot be changed after it’s created.

Recovery Options When Creating a Key Vault

For the most part, when you create a new key vault, you have total control over the recovery options for that vault. However, starting at the beginning of 2026, Microsoft changed the settings to force Soft-delete to be enabled for all key vaults. At the time I took these screenshots, which was at the end of 2025, I was still able to create a key vault through the Azure CLI, PowerShell, or REST API with soft-delete disabled, which is noted with the “i” icon next to the title during setup, but that has likely already been removed at the time of posting this:

Screenshot of an information icon on the Soft Delete setting for a new key vault, which says, "The ability to turn off soft delete via the Azure portal has been deprecated. You can create a new key vault with soft delete off for a limited time using CLI / PowerShell / REST API. The ability to create a key vault with soft delete disabled will be fully deprecated by the end of the year."

Besides the soft-delete setting, though, you have total control over the two remaining settings, which are the days to retain deleted vaults and then whether or not Purge Protection is enabled.

Screenshot of the recovery options settings available when creating a new key vault in the azure portal

By default, the value for “Days to retain deleted vaults” is 90, but you could set that to any value you would like. Also, by default, the Purge Protection option is set to “Disable”, but you can also change that if you would like to prevent people from permanently deleting key vaults after they’ve been soft-deleted.

Depending on our use case, my organization will decide to either enable or disable Purge Protection. If the vault is for something that is business critical, it will get the Purge Protection. But if the vault is only something that we use for our own testing or development, we likely won’t enable it. There is no additional cost either way, so choose the option that suits your security and retention requirements best.

Summary

When creating a new Azure Key Vault, there are very few retention settings you have control over. If you’re looking to change an existing key vault, there are even fewer things you can change for retention. That means you need to ensure you choose the correct settings for you and your organization at key vault creation time, since you will only be able to toggle the Purge Protection option after the vault has been created.

If you’re looking for more information on managing deleted key vaults, hop over here to see my post on that. Interested in learning how to create key vaults with a Bicep template so you don’t have to do it manually? I have a post about that as well!

Limitations of Azure Synapse Analytics SQL Pools

In the past couple of months, I have run into some annoying limitations and unsupported features with T-SQL in our Azure Synapse Dedicated SQL Pools, which is where my team puts our data warehouses for reporting needs across our business. These unsupported features were a bit surprising to me, which is why I’ve decided to share them in this post. This is certainly not going to be an all-inclusive list of things you can’t do in Dedicated SQL Pools that you can in a normal SQL database, but I will keep it updated as I run into more barriers in the future.

What’s in this post

No Primary Keys

When you understand that the Dedicated SQL Pools (DSP) are meant to be used as Online Analytics Processing (OLAP) data warehouses for analytics and reporting purposes, it makes more sense that primary keys are not allowed on tables since that would affect performance. I did not initially put that concept together until I was trying to create a new table on the DSP and got the following error:

Screenshot showing a T-SQL command to create a Primary Key on a table in SQL Server Management Studio and the corresponding error since the command is not supported on this type of database

The full error message is:

Enforced unique constraints are not supported. To create an unenforced unique constraint you must include the NOT ENFORCED syntax as part of your statement.

Unfortunately, there is no workaround for this limitation. You must accept that you will not be able to enforce uniqueness on your tables in the DSP, unless you want to have “uniqueness” in name only and not have it actually enforced.

No Foreign Keys

In the same vein as above, foreign keys are also not allowed in a Dedicated SQL Pool (DSP), since that would also hinder the performance of OLAP queries if they existed. When trying to create a foreign key on a table in a DSP, you get the following error:

Screenshot showing a T-SQL command to create a Foreign Key on a table in SQL Server Management Studio and the corresponding error since the command is not supported on this type of database

The full error text is:

Parse error at line: 3, column: 1: Incorrect syntax near 'FOREIGN'.

This error is different from the error received when trying to create a primary key, because this query simply returns a parsing error; the query processor doesn’t even understand the concept of trying to apply a foreign key constraint to the tables in this database, since it’s a DSP.

There is no workaround for this limitation beyond accepting that you will not be able to maintain relationships between tables in your database for this type of server.

No Default Constraint using a Function

This is the constraint I am most sad about not being able to apply to tables in a Dedicated SQL Pool (DSP), since I think it would be really useful for certain situations. But again, needing to apply a default value function for every row inserted into a DSP table would slow down the processing speed, which is bad for OLAP queries.

When you try to add a default constraint using a function or expression to a table in a DSP, you will get the following error:

Screenshot showing a T-SQL command to create a Default Constraint on a column in SQL Server Management Studio and the corresponding error since the command is not supported on this type of database

The full error message for that is:

An expression cannot be used with a default constraint. Specify only constants for a default constraint.

However, you are still allowed to add default constraints that have a constant value, like this:

ALTER TABLE dbo.CUSTOM_FORECAST_Raw
ADD CONSTRAINT DF_MyDefault
DEFAULT '1900-01-01 00:00:00' for UploadDatetime;
Screenshot showing a T-SQL command to create a default constraint with a constant value on a column in SQL Server Management Studio and the corresponding error since the command is not supported on this type of database

My most common use of a function in a default constraint for a column is to set an update datetime for the row, and that is precisely what I was trying to accomplish when I found this limitation. There is no direct workaround for this limitation. What I did to subvert it was to add the UpdateDatetime value to the column further upstream in the ETL process. Hopefully, that type of workaround will be doable for you as well.

No Multi-Line Inserts

This limitation is one I truly don’t understand, and I was really confused about it when I first ran into it during development. In a normal SQL Server database, you can insert multiple rows into a table at once using the syntax INSERT INTO dbo.MyTable VALUES (value1, value2...), (value3, value4...);. Running that command would insert two different rows into the table at the same time. That syntax is not allowed in Dedicated SQL Pools (DSP).

If you were to run the same command on a DSP, you would get this error:

Screenshot showing a T-SQL command to add multiple rows of data at once in SQL Server Management Studio and the corresponding error since this command format is not supported on this type of database

The exact error message for that scenario is:

Parse error at line: 2, column: 19: Incorrect syntax near ','.

This is another scenario where the query processor doesn’t even know how to approach this code, even though it would work just fine if I instead ran it on a normal SQL Server database.

The workaround for this limitation is to create an INSERT statement for every row of data you want to insert into your table, or use a pipeline in the Synapse workspace to load data instead.

INSERT INTO dbo.MyTable VALUES ('AR',5103);
INSERT INTO dbo.MyTable VALUES ('CA',6111);

I only needed to load a few test rows into a table on my DSP for testing purposes, so the multiple INSERT statements worked in a pinch. I would not want to do that if I were adding more than a few rows to the table.

Cannot use sp_rename

For this scenario, I’m not entirely sure what the reasoning is behind removing the ability to run this particular procedure (and likely others like it), but I have learned that in a Dedicated SQL Pool (DSP), you are not able to rename objects in the database using the system stored procedure sp_rename. Instead, you now either need to just not rename your object, drop it and recreate it, or use a new command called rename object, which has a different syntax.

When you try to run the sp_rename procedure on your DSP, you will get an error like this:

Screenshot showing T-SQL commands to rename tables using the sp_rename procedure in SQL Server Management Studio and the corresponding error since the command is not supported on this type of database

The full error message is:

"An insufficient number of arguments were supplied for the procedure or function sp_rename"

This is an odd message, because it leads you to believe you’ve typed something wrong instead of the fact that this procedure is not valid on this type of database. I’m not sure why the procedure is even installed on the database, given that it doesn’t work as it does on other databases.

When I first got that message, I wasted time going to the documentation and verifying that I did have the correct parameters for the procedure. The following message is displayed at the top of the documentation page, but that isn’t specific to any given T-SQL command that may not work, like the one being documented on the current page. Plus, the notice only warns for serverless SQL Pools and not dedicated SQL Pools, like what I am working with.

Screenshot of a note in a Microsoft document about the sp_rename procedure, saying that some T-SQL commands are not supported for Azure Synapse Analytics serverless SQL pools

Mostly, when it comes to this system procedure not working, I am annoyed that, from the documentation of the procedure, it seems like it should work in this scenario. That includes the existence of the green checkmark next to “Azure Synapse Analytics” at the top of the page!

Screenshot of the top of the Microsoft document for the sp_rename procedure showing the supported list of database types the page applies to, which includes Azure Synapse Analytics

How to Rename Tables on a Dedicated SQL Pool

If the main system stored procedure for renaming objects doesn’t work for DSPs, how then are we supposed to rename objects as needed? Or are we out of luck and have to drop and recreate the table, or leave its name alone? At first glance, it does seem like we may be out of luck, because even the “Rename” option in the right-click menu on a table is grayed out and won’t let us change it from there:

Screenshot of the right-click menu of a table in the Object Explorer of SQL Server Management Studio showing that the Rename option is disabled and grayed out.

There is a way to rename, it’s just a little harder to find! With this type of database, there is a new command rename object that will let you rename a table. The syntax for that looks like:

rename object MySchema.MyTable to NewTableName;

That command worked successfully for me in my scenario of renaming a table that I wanted to mark for future deletion, as shown by this screenshot:

Screenshot showing a T-SQL statement to rename a table using the "rename object" command in SQL Server Management Studio with no error messages since it is supported for this type of database

With further reading of the sp_rename procedure documentation, if you scroll all the way to the bottom part with Examples, there is another note that the sp_rename feature is currently only in “preview” for Azure Synapse Analytics and is therefore only available for objects in the dbo schema. And honestly, that’s a little silly to me. It’s also silly that you wouldn’t find out that information unless you looked for examples; the information was not up in the main section of the documentation, so it isn’t as easy to find.

Screenshot of the Microsoft document for the sp_rename procedure saying that the procedure is still in preview for Azure Synapse Analytics so is only supported for the dbo schema and no custom schemas

If you would like to read further on the new syntax for renaming tables in Dedicated SQL Pools, you can review the document for the rename object command.

Summary

SQL Pools in Azure Synapse Analytics give you a lot of great performance and features that are specifically tuned for use in Data Warehouse situations, but those performance improvements do come with a cost–not being able to do things exactly as you are used to with standard SQL Server databases. I’ve struggled quite a bit with database development on this style of database, since it seems like every time I want to do something on the database, I hit a temporary wall of differences that I didn’t expect. I have obviously found an explanation for or a workaround to most of these problems, as evidenced by the information above, but it’s not a welcome interruption to my workflow. I hope that you will hit fewer walls in your own database development now that you’ve read through this post.

Related Posts

How to Enable Akismet Anti-Spam on WordPress

This is going to be a super quick post, inspired by my late-night searching while trying to finally enable the anti-spam feature from Akismet (Jetpack) on this website. Every time I went through the Jetpack settings page and tried to enable the Personal version of the tool, I would click the “Learn More” button to try to enable it, but would then find myself on a plain page that simply said, “Sorry, you are not allowed to access this page.” When searching for how to resolve that through a normal search engine, I never found anything specific enough to help me. But I finally figured it out with the assistance of an AI chat, and I am so excited about finally fixing this issue that I needed to share it with everyone else.

What’s in this post

How to Enable Akismet Anti-Spam from Jetpack

I don’t know why this didn’t click for me earlier, but Akismet Anti-Spam is a plugin for WordPress, so to be able to enable the feature through the Jetpack main page, you first need the plugin installed on your website.

Once you install the plugin on your site, it is then easy to get it running by going through the entire process as prompted by Jetpack.

Install Plugin from Plugins Page

In your WordPress admin dashboard, click “Plugins > Add Plugins” from the menu on the left side.

Screenshot from the WordPress admin console showing that you should select the subitem "Add Plugin" under menu item "Plugins"

On that page, enter “Akismet” in the search box at the top right of the screen, then click “Install Now” on the “Akismet Anti-Spam: Spam Protection” plugin:

Screenshot of the WordPress admin console page where you can install the Akismet plugin by searching for it using the search box on the top right of the screen

You will then be directed through the purchasing process for the plugin, which applies even if you are doing the free personal version of the plugin. You will be asked to set an annual price for yourself (I chose $0 since I’m not currently making money on this site), then finish the “checkout process” using your Jetpack or WordPress account information.

After finishing the checkout process, I was provided with a screen and an API key for the plugin and received an email for setting up the plugin from Jetpack. I copied the API key to a safe location from the checkout screen, then went to my email and clicked the link for setting up the plugin. That took me to a screen in my WordPress admin console where I could choose to manually enter the API key, which I did.

At that point, the plugin was installed, set up, and already protecting me from spam!

Summary

I wish the explanation of how to handle the Akismet anti-spam plugin was a little more straightforward. The “Products” page of the Jetpack section on the admin portal makes it seem like you can get the feature directly from that section of the website, and people (like me) may get confused when they end up at an error screen instead of being prompted to install the plugin.

To enable the Akismet anti-spam feature on your WordPress site, first install it from the “Plugins” page of the admin portal, then work through the process as prompted by the setup process with Jetpack.

Related Posts

Managing Deleted Key Vaults

Having delete protection on shared cloud resources is usually a very nice and beneficial feature to enable, since it protects you and your organization from the disaster of someone accidentally deleting a resource they didn’t intend to by keeping the resource available in the background for restore after deletion. My team has the feature enabled on our storage accounts and some other resources which I knew about, but I did not know that our key vaults also had the same feature enabled. Until I was trying to create a new key vault with the same name as a key vault I had already deleted and was getting an error saying a key vault with that name already existed.

In this post I will show how to find and manage delete key vaults and how to permanently delete them if you want to. You could use this process to find a key vault to recover it if it was accidentally deleted, or you can use it to do what I did and get rid of it permanently so you can recreate it.

What’s in this post

Finding Deleted Key Vaults

When running a Bicep template, which was creating a new version of a key vault I had deleted moments before, I got an error that the key vault couldn’t be created because one with the same name already existed. Confused, since I knew I had already deleted the resource, I went back out to the Azure portal and searched for the key vault the template error indicated, which was called “biceptest”. As you can see in the screenshot below, searching for that name returned no results.

Screenshot of the Azure Portal page for Key Vault resources showing that one named "biceptest" does not appear when searched for, since it has been deleted.

As I mentioned above, key vaults can be set to not permanently delete immediately, and instead stay alive in the background for a set amount of time so they can be restored if needed. To find any deleted key vaults that are still available for restore, you can click on the “Manage deleted vaults” on the top menu of the key vault list.

Screenshot of the Azure Portal page for Key Vault resources showing where to locate the "Manage deleted vaults" button

When you click that, a new pane will pop up that will let you filter and view deleted key vaults by Subscription. Choose your subscription from the dropdown menu, and you will then be given a list of deleted key vaults that are still available for restore.

Screenshot of the Azure Portal page for Key Vault resources showing the "Managed deleted vaults" pane which lists recently deleted vaults that have not yet been permanently purged

Notice in the above screenshot that the deleted vaults list shows the date it was deleted and then the date it is set to be permanently removed from Azure. In my case, I had 90 days to recover a deleted vault.

Recover a Deleted Key Vault

To recover a deleted key vault, you need to check the box next to it in the pane showing a list of deleted vaults for a subscription, then click the “Recover” button at the bottom of the screen:

Screenshot of the Azure Portal page for Key Vault resources showing the "Managed deleted vaults" pane where you can click the "Recover" button to undelete the resource.

Permanently Delete a Deleted Key Vault

If you would like to permanently get rid of a deleted key vault, perhaps to create a new vault with the same name without getting an error, you will need to click the “Purge” button at the bottom of the screen after checking the box next to the vault you want to permanently delete.

Screenshot of the Azure Portal page for Key Vault resources showing the "Managed deleted vaults" pane where you can click the "Purge" button to permanently delete the resource

Note: If the key vault has been setup with “purge protection enabled”, you will not be able to purge/permanently delete the vault. In that case, the vault will only be permanently deleted once the preset number of days has been reached.

Summary

Choosing to delete a key vault through the Azure portal does not guarantee that the vault has been completely deleted from your system. If the vault was setup to have delete protection enabled, you may be able to recover the deleted vault for a set amount of time after it was deleted. If you want to permanently delete a vault that had delete protection enabled, you will need to go into “Manage Deleted Vaults”, choose the vault you want to completely remove, then click the option to “Purge”. Once you have done that, the key vault will be 100% gone and you will be able to create a new one with the same name if you choose to do so.

Related Posts

Return the True URL for a Document in SharePoint Online Indexer for Azure Search

I am going to keep today’s post short and sweet, covering a quick change I needed to make to my SharePoint Online Indexer (still in preview but we’re using it for our custom chat bots) to make the index of a SharePoint library return the true URL of the source document so that we can feed that back to users so they can validate the chat bot answers.

It took me longer than I would like to admit to figure out how to do this, even though the metadata item is listed in the one and only Microsoft document for this tool, because I was wanting to return the URL and the documentation only mentioned URI and didn’t explain what they meant by that and gave no examples of it being used.

This index is specifically used for custom chat bots created through Azure AI Foundry, and not for those created with other AI or cognitive services within Azure. I saw a lot of documentation and forum posts about those versions of indexers, but didn’t see anything covering this topic specifically which is why I wanted to write this post.

What’s in this post

Adding SharePoint document URL to index results

For creating my Azure Search data sources, indexes, and indexers, I have used Postman to run the API calls needed to hit the SharePoint Online (SPO) indexer service, since that is the only way to create this type of indexer (can’t use the Azure portal wizard).

It is very simple to return the document URL in your index, you only need to add this line to your index, and then rename it/map it in the indexer definition if you want. I didn’t not want to rename it, so I only changed the index definition.

{ "name": "metadata_spo_item_weburi", "type": "Edm.String", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },

Once you add that to your index definition, make sure to send the API request through again, then reset and run the indexer related to the index. At that point, you should be able to query your index through the console and see that URL included in the results of the index.

Screenshot of an Azure AI Search Index resource test query demonstrating what the full URL of a SharePoint document looks like in the index

Summary

If you are using the SharePoint Online Indexer for Azure AI Search (with Azure AI Foundry) and you would like to return the full URL of a source document for a chat bot response, you can do so by adding the “metadata_spo_item_weburi” metadata field to your index definition.

Related Posts

Cybersecurity News Sources I am Following

You need to regularly be reviewing news sources for announcements about cybersecurity threats, vulnerabilities, and exploits if you are working anywhere in the IT field. There have never been more threats to our digital footprints than there are right now, and attackers are getting more ingenious with their attacks every day.

I used to not care about following this type of news, but then the recent SharePoint legacy server exploit hit close to home for my team. We weren’t negatively impacted, but we could have been. Thankfully, other people at my company were already keeping on top of those things so we were able to act immediately to secure our server as soon as the vulnerability was announced.

My team is also diving heavily into the AI space, which has been riddled with vulnerabilities and hacks this year, which I’m also now able to keep on top of by following a few websites.

To make it easier to see recent news at a glance, I decided to make myself an RSS feed (is that outdated?) to follow a handful of the top cybersecurity news sites so that I could quickly get an overview of what’s being discussed.

Sites I am following

In my RSS feed for cybersecurity news, I am following these websites:

  • Dark Reading
  • The Hacker News
  • SecurityWeek
  • Ars Technica Security

The first two on the list, Dark Reading and The Hacker News, are the ones I end up clicking through to the most, but all have good feeds that you can follow easily. I personally am using feedly.com as my RSS reader tool, but you can follow the sites however you choose. Just make sure you read regularly since new threats are coming out all the time.

Related Posts

You should Make Your Writing Easier to Understand

As technical professionals, those of us in the IT field tend to lean towards writing with technical language when we are communicating with others, whether that is with other members of our own teams or with business users or customers. While we may find our technical writing easy to understand, that may not be the case for others that we are working with.

Recently I was writing an email to a business customer in another part of my company who we made a custom chat bot for, trying to explain to her how the bot was able to give great answers even if the information it was providing was not explicitly written within the documentation we had given the bot for the Retrieval-Augmented Generation (RAG) model. Writing that email turned into a 20 minute learning experience of how I could simplify my explanation to a level that a normal business user would understand. I’m not sure why this idea popped into my head today, but I remembered that there are online services that will check the reading level of your writing, so I put my email draft into one of those and was surprised by the outcome and knew I needed to rewrite the email to be easier to understand for non-technical people.

What’s in this post

Average U.S. Adult Reading Level

Based on different studies and models, it is estimated that the average reading level for an adult in the United States is around the 7th-8th grade level[1]. There are other estimates that say that 54% of adults in the U.S. have a 6th grade reading level or below[2], which is a startling statistic.

I bring those statistics into this post because they point out why we as technical professionals may need to change our writing behaviors, especially when communicating with non-technical business users or customers. We need to make sure others understand what we are trying to say. If we are writing at a college level but the average person can only comprehend up to a 7th or 8th grade level, there are going to be misunderstandings.

Check Reading Level Online

In the email I was writing about how our chat bot worked, when I realized that it was overly complicated from a business user’s perspective, I started researching concrete changes I could make to how I wrote the message to make it more understandable to a normal, non-technical person. I love being in the weeds of the technicalities, but I know most of our business customers don’t; they only want to know how to use the tool to help themselves.

The best resources I found were the “Hemingway Editor Readability Checker” and then an older PDF document from Montclair State University which walks through getting analysis of writing in Microsoft Word. Jump to the section below to learn more about the Microsoft Word method.

The “Hemingway Editor” is a simple website where you can paste in your text you’d like to check, or provide a full text document, and it will do a quick analysis and highlight sentences that are hard to read, very hard to read, or not hard to read at all. It also gives a numeric “Grade” value indicating at what grade someone would be able to read the text.

When I pasted in my original email draft, it rated it at Grade 14, and marked all sentences in the text as either hard to read or really hard to read.

Screenshot of the Hemingway App readability checker showing a block of text marked with red and yellow highlights for very hard and hard-to-read sentences. The right panel displays a readability grade of 14 and notes that most of the six sentences are difficult to read

That review confirmed that I needed to rewrite the email to be less technical and easier to understand for average people. The website recommends aiming for Grade 9, which is what I tried to do. After a lot of editing, I got the score down to 10, which was as close as I could get to 9 without completely changing what I was trying to communicate.

Screenshot of the Hemingway App readability checker showing a block of text highlighted mostly in yellow, indicating hard-to-read sentences. The right panel reports a readability grade of 10 and notes that 5 of 6 sentences are hard to read, with none marked as very hard.

Check Reading Level with Microsoft Word

If you don’t want to use the online editor to check your writing level, there is also the option to do that through Microsoft Word. Before you can check the reading level, you first must enable an option to do that.

In Word, go to File > “Options”, then “Proofing”. Under that page, check the box for “Show readability statistics”. Click OK to save the change.

Screenshot of Microsoft Word "options" window on the "Proofing" page, demonstrating how to turn on the readability statistics function through a checkbox option.

Once you have enabled the feature, you can then go to the “Review” tab and click the button for “Spelling and Grammar”.

Screenshot of the "Review" ribbon tab at the top of the Microsoft Word screen highlighting the location of the feature "Spelling and Grammar".

When you click that, you will first get a panel that will point out any grammar issues that the program has found. If you don’t care about that, you can click the “X” at the top left of the window (next to “1 remaining”) to close those suggestions.

Screenshot of the first page of the "Spelling and Grammar" editor panel in Microsoft Word

After closing the grammar window, you will then get scores for your writing and recommendations for fixing the writing. There is also an option to check the similarity of the text to what can be found online, which might be useful for teachers and professors that are reviewing the writing of others and who may be concerned about plagiarism.

Screenshot of the "Spelling and Grammar" editor in Microsoft Word, showing the Editor Score of 89% for the document and other corrections, refinements, and features available for checking the document.

If you keep scrolling almost to the bottom of that recommendations panel, you can click on the “Document stats” button under the “Insights” heading, which will bring up a separate window with the reading level information and other details about your writing.

Screenshot showing the bottom of the "Spelling and Grammar" editor screen in Microsoft Word, where you can find the button called "Document Stats" to get insights into your document

While there are other statistics about my writing that could be helpful in other scenarios, what I am most interested for this example is the “Flesh-Kincaid Grade Level”. In this case, Microsoft Word recognizes the same reading level as what the online checker has for my simplified email. Which is cool.

Screenshot of the "Readability Statistics" window in Microsoft Word, which shows the word counts, averages, and readability scores of the document. The reading level of my sample email is 10.0 in this window.

Reading Level for this Post

I got curious while writing this post, wondering what its reading level would be. The answer? 12.2 according to Microsoft Word and 13 according to the online Hemingway Editor.

Screenshot of the "Readability Statistics" window in Microsoft Word, which shows the word counts, averages, and readability scores of the document. The reading level of my blog post is 12.2 in this window.

Screenshot of the Hemingway Editor Readability Checker showing a scoare of Grade 13 for my blog post draft, with 13 of 34 sentences having been marked as very hard to read, and 10 of 34 being marked as hard to read.

I thought it would be higher, so I’m glad to see that it hopefully isn’t unreadable for your average IT professional.

Summary

Technical people are often bad communicators, especially when it comes to interacting with non-technical people. I can’t say that we’re all terrible at it, but many technical degrees require technical communication classes for a reason. I am as guilty of too-elaborate writing as others are. But I am now going to intentionally work on better summarizing myself when emailing and talking with my business users. I would never want to make someone feel dumb because I was talking at too high a level.

Sources

Related Posts