Introducing UNA IDE, the world's only real-time collaborative development environment for software developers - designed to achieve excellence, through the power of collaboration.

Buy NowDemo

Multiple developers work as a team to design and write software, achieving what none of them could achieve individually.

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

“UNA [IDE] is a special platform... I usually hate group collab on code and design because the communication and miscommunication gets in the way. UNA is different because the collaboration is weirdly seamless and actually real-time - you all see the same things, you chat inline, code completion just works, everything is tracked, and never once does the group feature take precedence over just coding.”
— Russell Foltz-Smith, President Crossroads Access

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 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

“I think [real-time collaborative coding] has loads of real world uses even if you're in the same room as the other person. It eliminates those collaborative 'Can I drive?' moments that occur when you're both hunched over the same computer. If you're stuck on a particular bit of code, you can share it with your colleague at his/her workstation and if they spot the way to fix it, they can change right there. On the whole, much more organic and less stressful than being on the same computer. The possibilities for pair programming are wonderful. I want it now! :)”
— Dave Knapik
“I've prototyped enough of a collaborative environment to know that local editing is the key, introducing a potentially nasty merging problem if two people's edits clash. I believe UNA solves this well... I wonder if this is a Clayton Christenson-style disruptive innovation. The elements seem to be in place. The basis of competition is shifting from individual productivity to fine-grained, real-time collaboration.”
— Kent Beck, Father of Extreme Programming

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 !

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. 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 us for more information.