Introduction
UNA is a real-time collaborative development environment that enables multiple developers to work on the same piece of code — simultaneously and in real-time. Interacting through a chat interface, a virtual whiteboard, VoIP, or collaborative notes, multiple developers work as a team to design and write software, achieving what none of them could achieve individually.
Why Collaborate
Benefits
- Quality Code - Collaboration results in smaller, better-designed, code - and as a result, it is easier to understand and to change, reducing the costs of development and maintenance.
- Fewer Defects - Catch your colleagues mistakes as they are made, when they are cheapest to fix — long before the code reaches QA or customers.
- Knowledge Transfer - By working together developers learn skills, languages, and elements of good design from each other, as they watch each other code in real-time.
- Improved Productivity and Focus - When working together, team members are less likely to be distracted by email or the internet
- Builds Teams - by working and speaking together more regularly, team members feel more like a team, and learn to trust one another - even from distributed environments
- Peer Pressure - Developers make the right choices more often, refusing to let their team members down
Try it and see for yourself.
Demos/Tutorials
This is the UNA IDE Learning Centre. We're just getting started, so feel free to request a video demo or tutorial of anything you'd like to see in action!
UNA IDE — Team Version
Get Started, setup and collaboration with 3 people, in Java - A screencast showing how to install, setup, and configure UNA Collaborative Edition for a 3-user project. Includes demonstration of several features of UNA and Tool configuration for a simple Java project.
Collaborative Extreme TDD, 3 person team, Java - Test-driven development as you've never seen it before. Three developers get together and collaborate across 15,000 miles to test-drive the development of a simple stack implementation, using UNA.
UNA IDE — Solo Version
Get Started in PHP in 5 minutes - shows how to setup the free IDE, UNA Solo, for PHP in 5 minutes
Get Started in FAN in 5 minutes - shows how to setup the free IDE, UNA Solo, for Fan projects
Get Started in D in 5 minutes - shows how to setup UNA Solo, the free editor for D projects
Features
Real-time, seamless collaborative editing is the soul of UNA. But the features don't stop there. Browse the list below to see what else UNA has to offer.
Collaboration Toolkit
- Persistent collaborative notes aid collaborative brainstorming
- Design and analyze with collaborative whiteboard
- Instant Chat
- Review chat history and whiteboard history
Team Support
- Add global search queries accessible to the whole team — for example, one team member can add regular expression searches and other team members can use them
- Add global tools accessible to the whole team — if one team member sets up team tools, the whole team has access to the tool, without each member needing to set it up individually
- Define permissions and roles for team members
- Easily manage team members
- Track team statistics and classify team output. For example, see if a team has been coding, refactoring, studying the code base, or commenting over any specified time period
Productivity
- Powerful Code Completion saves typing
- Powerful tool interface allows compiling, testing, debugging from inside UNA
- Powerful, comprehensive editing features, such as block editing, indent/unindent, comment/uncomment, and so on.
- Access language-specific features, such as parameter hinting and go-to-declaration
- Create source snippets for commonly used constructs
- Full support for version control - Subversion, CVS, Perforce - makes it easy to switch between collaborating with colleagues, and coding solo in another tool
- Project tree displays all files in project
- Show hierarchy of files
- Structure view shows the structure of files
Search and Navigation
- Instant searches across thousands of files — find what you want instantly
- One search and replace interface allows searching active file, open files, whole project, with normal searching, power search, or regular expressions
- Save search queries for later
- Share local search queries and tools between users
- Quickly locate items in any list
- Quickly locate symbols, files, declarations of symbols
- Quickly navigate documents with incremental search
- Quickly navigate UNA without using a mouse
- Tabbed interface for fast navigation
Use Cases
| UNA Continuum | Developers from around the world work together in overlapping 8 hour shifts to develop applications continuously from start until completion |
| UNA Extreme | Every UNA team includes at least two senior developers, who work together on the same challenges, to assure highest-quality in every aspect of development |
| UNA Offshore | A local hire partners with one or more offshore developers to retain benefits of both local and offshore development |
| UNA Purity | All code is designed, written, and maintained by teams of two or more developers |
| UNA Support | Developers use UNA for interface design, mission-critical code and debugging, but spend the rest of their time working with their standard development tools |
| UNA Training | New hires are partnered with middle- and upper-level developers to assure quality of code does not suffer |
| UNA Trinity | Developers work together in teams of three: the Driver takes the lead role, the Navigator the supporting role, and the Tester simultaneously writes tests that drive the code that the other two are writing |
| UNA Trust | Offshore development houses provide UNA accounts to their employers, so their employers can check development progress at any time |
Testimonials
FAQ
This is a list of the most frequently asked questions. If you are curious about something that isn't on this list, or if you'd like clarification, just send us a quick email!
General
What is UNA?
UNA is a development environment for software developers that enables multiple developers to work on the same files — simultaneously and in real-time. This environment enforces peer review, collaborative design, and modular, component-based development. For more information, see the UNA Overview.
What is the difference between UNA and a version control system?
In a version control system, developers work on copies of a document. They can work on these copies at the same time, but they are working on different documents. Later, the version control system tries to merge the different copies into one document, and runs into errors if the developers have made changes to the same lines of code.
In UNA, developers edit the same document in real-time. So while UNA encourages multiple developers to work on the same piece of code simultaneously, a version control system strongly discourages it. Therefore, version control systems provide none of the advantages of UNA (even though they are important for other reasons).
Is UNA a replacement for version control systems?
No. Although UNA enables developers to edit the same document at the same time, UNA is not a replacement for version control systems. UNA is designed to function in combination with a version control system. A version control system is necessary to isolate development code from production code, to provide powerful reversion features, to enable developers to put feature development on hold while they fix critical defects in the software, and to enable large-scale (but non-real-time) collaboration.
Is UNA compatible with agile software development?
Yes. UNA is the tool of choice for agile software development and evolutionary design. UNA takes Pair Programming to a whole new level, by enabling pairs of developers to work jointly on the same piece of code, and by extending the concept to more than two programmers.
Is UNA designed for distance pair programming?
UNA is an excellent choice for distance and co-located pair programming, making the practice more natural in a number of ways. It can be used by people separated by a desk, office, building, country, or continent. Some differences include:
- Pair programming is bandwidth-limited by the navigator, but with UNA, all developers are free to work simultaneously on the same piece of code. VoIP helps teams keep coordinated, chat is fine too.
- Many developers who are uncomfortable with pair programming work well with UNA, because they don't have to leave their familiar working spaces or comfort zones.
- UNA equalizes the balance of power, preventing the driver from monopolizing development, and preventing the navigator from becoming bored.
- Customization of project member roles allows enforcement of quality practices. For example, new developers can be prevented from making changes to the code unless they are supervised by others.
- Chat and whiteboard history are preserved for later review, so key discussions are never forgotten.
- UNA automatically tracks key statistics, such as percentage of time spent collaborating, which are difficult to obtain from traditional pair programming. This lets managers directly measure the effect of collaboration on code quality.
- UNA enables more than just two programmers to work together.
For variations of pair programming and other use cases, see Use Cases
How do I know my developers will work well in a team?
Most developers find that after an initial introductory period, they actually prefer working with other developers, because it is more mentally stimulating than working alone. However, since UNA seamlessly interfaces with version control systems, it is possible for "lone wolves" to work without impacting those working in a team using UNA.
Won't assigning several developers to one task be slower than assigning them to different tasks?
Published research done by Dr. Laurie Williams at North Carolina State University shows that when two developers work together on a single task, they get it done in half the time (i.e. no more man-hours), with half the defects. Experience shows an even greater benefit with UNA, since all developers can simultaneously contribute to the development process.
How many developers can collaborate at the same time?
Although UNA imposes no hard limitation, we recommend two to five developers collaborating on the same task. There is no limit to the number of UNA projects, and therefore, no limit to the size of an application that can be developed with UNA, if developers are properly broken down into small teams.
Technical
What are the system requirements for UNA?
UNA requires a networked computer running Windows, Linux, Mac OS X (10.4 or later), or Solaris, with at least 1 GB of disk space and 1 GB of system RAM. UNA Server requires 2 GB of RAM and 2 GB of disk space.
Can UNA compile and debug programs?
Though UNA does not have a built-in compiler or debugger, you can execute command-line tools and view the results of those tools from within UNA. You can even add common tools to the menu - to make compiling as easy as clicking a menu option or invoking a keyboard shortcut. Check out our demo and you can see this in action.
For those times when collaboration is not essential, UNA's native support for version control systems means that switching between UNA and your existing workflow tools is as easy as checking code in and out.
What languages does UNA support?
UNA has built-in syntax highlighting for all common computer languages, including C, C++, C#, Java, Ruby, Visual Basic, Delphi, PHP, Perl, HTML, Python, Haskell, and many others. You can easily add syntax highlighting profiles for other languages using XML syntax definition files.
What version control systems does UNA support?
UNA natively supports CVS, Subversion, and Perforce. Contact us if you would like to request support for another VCS.
Can I use UNA Hosted if I am behind a Firewall?
Proxies are supported by UNA Hosted. To use UNA Hosted with a Firewall, you must either disable your Firewall or configure it to allow two-way communication between UNA and UNA Server.
Buy
UNA IDE is licensed at $100 per user, which includes support and free minor upgrades. Please contact us for more information.




