This is a tutorial for creating a custom content type and view, which will allow users(or a specific role) to post an announcement. A view will be created to display a list of recent announcement on the homepage. This tutorial was written for Drupal 7.
Things you will need: Drupal installations, Views Module
Navigate to Structure-->Content Types and select 'Add content type'.
Name the content type "Announcements" and click 'Save content type'.
(Note: You may also want to add additional fields to the content type such as an image field, but in this tutorial we will be keeping it simple with a title and body.)
Navigate to Structure-->Views and select 'Add new view'.
Name the view "Recent Announcements".
Select Show 'Content' of type 'Announcements' sorted by 'Newest first'. (This is directly below the Name)
Un-check the 'Create a page' check box.
Check the 'Create a block' check box.
Title the block "Recent Announcements".
Leave the other options as the default.
Click 'Save and Exit'.
Navigate to Structure-->Blocks.
Scroll down to the 'Disabled' blocks.
Drag the block "View: Recent Announcements to the desired section of the page. (likely a sidebar)
Click 'Save Blocks' at the bottom of the page.
Scroll down to the section you place the block on, and click 'Configure' on the block.
At the Bottom of the configuration page, select the 'Only on the listed pages' radio button.
In the text area, add your homepage path or "".
Click 'Save block'.
Navigate to People, and select the Permissions tab.
Adjust the permissions for the 'Announcement' content type as desired.
Now you're done, the selected roles can create announcements to be linked to the homepage!