In block codes (channel coding), in practice how is the message length ($k$) fixed?
There are a few rules of thumb:


For a fixed code rate $r = \frac{k}{n}$, the amount of gain you observe from applying coding typically increases as you increase the block size $n$. Accordingly, the complexity of decoding the larger blocks is often larger.
If you decrease the number of information symbols in the block $k$ and keep $n$ fixed, the code rate decreases. This will result in higher coding gain, but lower information throughput for a given channel symbol rate.
If you increase the number of information symbols in the block $k$ and keep $n$ fixed, the code rate increases. This will result in lower coding gain, but higher information throughput for a given channel symbol rate.