This is an introduction to the Developing Custom VersionOne Apps 101
series. This series demonstrates an experimental, work/in/progress approach
to build extensions and customizations to VersionOne that only you and your team can dream up!But, this series is just one iteration, presented to you, our ultimate product owners, for your review and retrospection.
As mentioned above, this is an experimental, work/in/progress, community/driven approach
. As such, you should not view this series as an "officially supported way of doing things". Instead, see it as the beginning of a new approach that is community/focused. The JSON data format you'll see used in the series comes from a small client/side shim v1json.js file
that you can use or adapt to your own needs. Once we iterate enough on this, we'll bake the JSON format support into the product back/end, and the shim will not be needed.
Why we're writing this: to start developing with you, not at you
As we roll out our new development blog, we're also rolling out some new ways of working with you, our end users. We want to engage in more collaboration, face to face, and virtually, with you and be more responsive to your wants and needs for our products and APIs.
We want you, developers/testers/designers/administrators/operators in organizations all around the world who use the VersionOne software, to be excited
about using and programming against our APIs and platform.
We realize it makes your job harder if you have to learn proprietary frameworks and APIs developed in an ivory tower
and handed down to you by "architects who don't code"
(who've never read the FMGTABAA)
// or even worse, by executects, marketects or salesitects.
Because of this, we encourage you to be involved and vocal about your wants and needs for a powerful API and platform
. If it looks like we are falling down on this, then remind us that:
You want to experience Enjoyment, Understanding, and Achievement
You should feel great when using our APIs to customize VersionOne to your needs! Some things we'd love for you to feel are:
We want you to visibly
enjoy using the API. Yes, we want you to enjoy
it. Not just tolerate it, or roll your eyes and grit your teeth because your boss thinks you need to use the API to intergrate with some old school monolithic one/size/fits/all tracking/reporting/source control "suite".
Repeat: we want you to enjoy writing code that consumes VersionOne APIs.
Hey, what about that visibly
part? Well, we plan to do some hackathons
, so we hope to see you there!
You should feel like you're deepening the app development skills you already have
, or that you are picking up new ones that will also apply elsewhere
, not just with the VersionOne APIs.
If at any time, you feel like we're producing APIs and tools that are borrowing vendor lock/in moves from the late 1990s, then yell at us, for our own good. This is not the late 1990s
. We all work in a web that is increasingly linked, with services and sites sharing data in a "Linked Data"
You have your own products
to create. VersionOne cannot get in your way. It must make your lives easier
We know the web and all the devices connected to it keep changing and improving. We know you and your organizations want to move beyond the static web, beyond the dynamic web, and into the "real/time web"
It would be arrogant beyond belief for us to think that you don't have choices or that other companies aren't empowering you as we speak to do just that.
We prefer that you choose willingly
to use VersionOne because of the enjoyment you feel about using it and our APIs, the knowledge and skills you gain while developing with those APIs, and because, taken together, the whole package lets you and your organization build your own products more quickly and easily.
You can also remind us about this:You probably recognize that from http://agilemanifesto.org/.
It's likely that those words are what inspired you or your company to take the plunge
and delve into agile in the first place. And, if it does not feel that way to you sometimes, maybe you can remind the company you work for of this phrase:
Words mean things
VersionOne co/founder and CEO, Robert Holler, sent this brief video
out to our company last month to remind us all of that very idea.
The words of the Agile Manifesto have always meant something special
to VersionOne // one of the earliest companies to pursue the philosophy and practices of agile wholeheartedly. These words continue to resonate with us today, even in a time when "agile" has become a platitudinous marketing buzzword that you should be
skeptical of whenever you hear it, including from us!
What you will learn
By reading this series and performing the code exercises, you'll get your hands dirty with lots of web technologies. You can dig in at any level of your current understanding.
Throughout the series, you'll get incrementally more exposure to using these technologies with the VersionOne REST APIs, but what you learn will be valuable in your own web apps or with other APIs you use.
- HTTP (Hypertext Transfer Protocol) // Learn why the web was created by Tim Berners/Lee in 1989 (he was frustrated!), and how your browser uses a simple protocol to "get you what you want and post what ya got".
- REST (REpresentational State Transfer) // Understand what it is and how it builds upon HTTP to power the web, and learn why Roy Fielding coined the phrase in the first place (he was angry!)
- REST/based APIs (Application Programming Interfaces) // Learn why they exist and how lots of them, including VersionOne's, take advantage of REST principles to make your job easier.
- Google Chrome Developer Tools // Explore some great tools within Google for opening up the hood of your favorite web apps and even tinkering with them!
- HTML Forms // Create simple HTML forms and populate them with JSON data from web APIs.
- Backbone.js // Need some structure for your web app? Learn how Backbone simplifies using REST APIs in your web apps with Models, Collections, Routers, Views, and more
- Underscore.js // Companion to Backbone, learn how to reduce the amount of code you write for looping, object creation, filtering, and other functional programming concepts.
- Backbone Forms // Tired of writing HTML forms by hand already? Use this open source library for Backbone to create pretty and self/validating forms automatically!
- VersionOne Meta REST API // Play with the "data behind the data" in VersionOne, and add even more dynamic power to your Backbone Forms.
- VersionOne Localization REST API // Need multilingual user interfaces? Start using the Localization API to do just that
- jQueryMobile // We know you're going mobile. We are too. Get your hands dirty with this powerful library that powers the VersionOne Feature Requestor Sample App.
Enjoyment, Achievement, Understanding...these words mean things. What do they mean to you?
Keep that in mind, and head over to the Developing Custom VersionOne Apps 101 Series Guide
to get started.