Main Page

From MontCo MediaWiki

Revision as of 15:36, 16 September 2009 by Jdpond (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Welcome to the Montgomery County Collaboration Tools Site

This is a government site. If you have been granted access as a fellow developer and/or consultant, please remember everything you do is subject to the Freedom of Information Act and the various statutes relative to abuse and misuse of government resources. You are welcome here, but abuse is prosecuted.

No anonymous access is granted and no aliases are allowed. You will only be granted access if your email address is confirmed AND you have identified yourself.. If you do not wish to reveal your true identity, you have no business on a government site anyway. Please do not attempt to create a sock puppet or anonymous account. It will be deleted.

Contents

Why is a Collaborative Environment Important?

The simple answer is to provide better information, services, and products faster, more efficiently, with performance and reliability that exceeds consumer expectations. Another way to state this is give the technology consumers what they want, when they want it.

It is not hard for a non-IT professional (outsider) to look at the classic IT shop and figure out that amongst all the hype about governance, management, investment, technology and portfolio's, etc., often overlooked is the simple fact that we are here to produce consumable products faster, more efficiently, and with acceptable quality - NOT produce unconsumable byproducts such as plans, architectures, design specifications, and Power Point presentations.

Collaborative tools are all about that - producing the beef, not all the hype about how great the beef can be.

From the Agile Manifesto:

"Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. . . The best architectures, requirements, and designs emerge from self-organizing teams."

Extend this concept and you have a well known, truism - empowered and motivated people are happier and more productive.

A technological collaborative infrastructure that promotes and facilitates self-organization, empowerment, and efficiency and transparency in communication is not only an investment, it provides immediate return in productivity and results.

MontCo leverages Web 2.0 (Social Networking AND collaborative tools) both as a constituent information/service vehicle and for Information Technology development and implementation.

This site was established to facilitate and document the collaborative tools used by the County and partners.

How does the Collaborative Stack Align with Needs?

There are two primary needs the County uses the Collaborative Tool stack for:

  1. The ability to collaboratively develop the information, concepts and approaches necessary to meet needs and produce results
  2. Facilitating the actions necessary to achieve those results.

In both cases, collaborative environment ensures accurate, dynamic, and current communication.

By facilitating the communication process, a single, consistent channel for collecting, collating and communicating ideas and requirements, and supporting the dynamic and evolving needs assures that ideas are heard, individuals are empowered, and results obtained. Employing a consistent, dynamic, and real-time communication vehicle ensures that threats from misunderstandings, lost opportunities for improvement and enhancement, and to quality and schedules are discovered, communication bottlenecks are eliminated, and design, development and test time is saved.

What Do These Tools do?

The word "stack" is commonly used among techies, because in truth, the transition of information from design to implementation (and back again) is so fluid and immediate in today's world, that it requires a "stack" of tools - each serving different purposes (and sometimes individuals).

  • For discussion of ideas, concepts, and needs, and exploring/designing solutions that meet those needs:
    • Wiki - for the interactive development of articles, plans, status, white-papers, and dissemination of viewpoints and understandings
    • List Servers (Forums/Newsgroups) - to provide a subscription based service that disseminates information - engaging the stakeholders continually and ensuring their knowledge and participation
  • For performance monitoring, continual improvement, and consumer alignment:
    • Issues Management - for the identification, discussion, and tracking of problems, enhancements, and modifications - and building a foundation for evolution to new products and services based on reporting needs.
    • Wiki - for future product requirements, discussion groups, forums, education, . . .
  • For Development
    • Wiki-based project management focused on deliverables
    • Wiki-Development status, documents, concepts, discussions
    • Wiki-Operational Run Books, Policies and Procedures
    • Shared Source and Information Repositories - to store and track changes to resources in a way that promotes leveraging existing work, allowing for concurrent development of that work, protecting that work from accidental loss or overwriting, promoting and facilitating iterative development, and ensuring peer-level control and auditing to validate and improve the quality and reliability of the work.

List Serves are used throughout as communities are developed (and dissolved).

OK, I Want To Join, What Do I Need To Do?

Everyone who becomes part of the community is important - and the most important step is simply wanting to become part of a solution.

Most collaborative participation starts with learning. The "founders" of any community usually got together and figured out what they wanted to do, but the rest of us will need to get up to speed. Most participation follows a general path:

  1. Watch, listen, learn
  2. Formulate and present your ideas and suggestions
  3. Help implement your's and other's suggestions

The most important thing to remember is not to worry about making mistakes or appearing new or "dumb". All collaborative tools have a common feature - you can always rollback mistakes and correct inaccuries. Like real (versus virtual) communities, the most important and successful behavior is to support and grow the young. In the collaborative world, we call this "nuturing the NewB" (pronounced newbie, often spelled noob or other variations). Communities grow and change according to the needs of its members and the collective group, but helping the neophytes along is essential to a vital community and its ongoing success.

If you are new to the community, do not be afraid to make a mistake or ask for help - someday you will get a chance to return the favor by helping others. Everyone starts as a NewB so we've all been there!!

Read on to learn more about the steps to join and grow in a community, and the tools that will help you along the way.

Watch, listen, learn

Virtual communities thrive when they provide experience, knowledge, action, and future plans that are shared among its members. This takes many forms including:

  • Knowledge Bases
  • News/List Services
  • Issues Tracking and Management
  • Software Programs and Downloads
  • Documentation, Policies, Procedures, FAQs, and HowTo's
  • Source Code (for developers)
  • On-Line support and conversations (support chat rooms)

Every MontCo community starts with a project home page that will tell you how to access this information. This home page, like ALL other collaborative information is maintained by the Community (translated: YOU not THEM).

The community home page will tell you how to search for information among the various collections, and how to join the interactive notifcation systems that will tell you when things have been updated, changed, or enhanced.

For this phase, you can participate in the community by:

  • Creating an Account on the "wiki" that supports the community home site - this allows you to "watch" things and be notified when changes or updates are made
  • Sign up for the community News/List Server - participate in and follow the community using email where you will be notified as others post questions, ideas, and answers
  • Track Issues - Register yourself for the community issues tracking system (called bugzilla), where concrete proposals for actions and changes are tracked and acted on, as well as identifying any bugs or problems that occur and need to be fixed.

Formulate and present your ideas and suggestions

As soon as you are familiar enough with the community to know that you are not rehashing resolved issues or creating redundant (and possibly confusing information), you are ready to start contributing.

When you find a place that; a) Is an area that interests you and, b) Is an area that you can bring value to the community. Jump in. Don't be afraid to make mistakes, the community will help you and guide you. The best way to become a contributing member of the community is to just give it a shot. Your efforts will be appreciated and others will help and enhance your efforts (this is called peering). Just as the community will always assume your efforts are driven by positive motivations, when others try to make your work better, they are doing it with the best of intentions (see | assume good faith).

The first place to look for a way to contribute is to find something you'd like to see (or know) is missing or incomplete - then fix it.

Generally, your first contributions will be by:

  • Updating or adding project concepts, articles, procedures, and concepts using the wiki capabilities of the project site
  • Posting questions or ideas through the list services/news group, many of which will be formally collated and added as an edited article in the project site
  • Submitting an issue, problem, or updated status through the issues management system (bugzilla)

Help implement yours and others suggestions

Just because you're not a geek, doesn't mean you can't learn to contribute and help change the software and operating environment. Many of us got into the tech world by starting out as do-it-yourselfers. However, this is a big step, but like any other, there will be those who will help you along the way.

The most important concept in collaborative development is DONT DO IT ALL BY YOURSELF. The best results are achieved when others review your work for quality, security, efficiency, and maintainability. The fastest path to being "reverted" is to commit something without consulting others - whether it is perfect or not.

That is not to say do not be bold and aggressive, it is just reminding us that there are many in the sandbox and we must be careful to avoid inadvertantly overlapping or hurting others' work.

To "commit" changes to the software or infrastructure, you are going to have to learn how to use Version Control. It is through version control that we can create specific releases while organizing those releases into deliverable units - and tie the enhancements and fixes back to the isses and bugs that are being maintained and tracked by the community (bugzilla).

You will also use the on-line chat feature extensively to solicit the support and review of others as you are actually doing the development.

This step involves:

  • Understanding and documenting your proposed development/changes through the Issues Tracking System (Bugzilla)
  • Getting "commit" access from the development team by requesting a certificate (all MontCo commit access requires certificate identification)
  • Gain a basic understanding of version control and building of releases
  • Create your own (or collaborative) development/test environment on which to make your changes
  • Commit your changes to the appropriate feature/branch
  • Document your changes/enhancements in the release notes, operational guides/run books, and other documentation updates

What tools does MontCo Use?

There is an ever-growing resource guide here, but the core set is:

  • MediaWiki (Wikis)
  • Bugzilla (Issues Management)
  • MailMan (List/News Server)
  • SVN (Source Version Control)
  • Ubuntu (OS) (Infrastructure support)
  • MontCoSkin Reference Guide (Used in creating applications that have the "look and feel" of Montgomery County interfaces)

For developers using open source stacks to provide applications to the County, we have created a Skin that allows for the rapid implementation of WAMP/LAMP/WIMP applications using the common look and feel of the MontCo web site:

All projects and implementations at the County mandate the use of collaborative development. See details here.

Some Communities at MontCo

There are MANY Collaborative communties in the County and each one services a particular community. If you are looking for a specific community, the generic URL is:

http://wiki.montcopa.org/[wikiname]

Some of the more prominent communties are:


MontCo Collaborative Infrastructure

If you are seeking access to the Montgomery County Network (versus just this wiki), you should go here.


MontCo MediaWiki Installation

This site is meant to be a template site for replication to other communities. It is kept updated with the latest templates/patches/extensions used and contains additional information on how to set up and maintain MontCo Collaborative Communities.

Consult the User's Guide for information on using the wiki software.

Personal tools