Our Discovery process is designed with one goal in mind, to define a clear understanding of the actual problems and opportunities, and the distinct, measurable success that will come from solving those issues with technology.
Turning information into knowledge is the heart of every piece of software. The Discovery process helps us understand the root issues, then we go about the fine art of designing information in such a way as to meet those needs and solve those problems. Information is power, and the better the information architecture, the more powerful the software.
Great, usable software requires the right software architecture, coupled with a clear understanding of the human needs, and great information design. Our software architects can craft the right solution from a combination of existing technology, the best available technology platforms, and newly built technology.
This is what we love to do, solve well defined human needs with great software. From solving specific hard problems and developing base frameworks, to building technology proof of concepts or prototypes, to building complete solutions; this is our passion.
We believe that software is developed for the purpose of empowering humans to be better. We always start by understanding the human needs and problems and then develop software to help meet those needs and solve those problems. This philosophy affects all areas of software development from security and performance, to graphic design and user experience.
Our commitment to quality control can be summed up by the word Craftsmanship. We love what we do. We're passionate about our clients and delivering them great software. At Phase 2, everyone who touches our client's software is committed to mastering the craft of building software tools which makes real people better, smarter, and faster. That means everyone knows the human needs and everyone works diligently to make great tools to address them.
Devices are everywhere. Gathering data about our health, understanding our location, sensing ambient temperature, detecting road conditions, or determining if there's a fire in the room. Smart devices, connected to smart software, talking to cloud backends, and making the internet of Things everywhere we go. We can help connect those Things to smarter software, helping your organization thrive with data driven decisions.
Modern mobile technology has changed the way our civilization uses technology. The combination of wireless internet nearly everywhere with easy to use and powerful mobile devices has change the meaning of personal computing. We've spent years leveraging that power to drive better business for our clients.
More devices everyday are picking up data from Things. A thermostat, a smoke detector, an alarm system, the number of steps someone walks a day; data everywhere. At Phase 2 we love taking that data and turning it into easy to access knowledge through great software tools.
Our job is to make software that helps our clients be more successful. Easy to say, difficult to accomplish. The following Software Bill of Rights are the expectations we believe our customers should have during any software project.
Designing something that is easy for a human to use is difficult. As a general rule, a device or piece of software that’s easy to use is the result of the design team having remarkable clarity in their understanding of their audience and of putting in a tremendous amount of hours. We believe our clients have the right to usable software despite the difficulty of achieving it.
Software development is a risky process. The majority of IT projects fail, and much of the software that is delivered isn't great. For us, it's not an option to fail to deliver great products. To help reduce risk and drive better products, we regularly deliver working software in order to get user interaction and create a consistent feedback loop.
One of our cultural rules is that; it's not enough to communicate to be understood, we must communicate well enough to not be misunderstood. That means we can't talk tech jargon just so we sound smart, or use engineering terms that don't make sense to people outside of the software industry. At Phase 2 we fine tune our processes and our communications to make sure our clients love working with us.
From choosing the right tool for the job to striking the balance between under and over engineering, we believe in delivering the best solution for our client's needs. Sometimes this means recommending we avoid writing a single line of code because paper works just fine. Other times it means avoiding the easy approach and instead choosing complex engineering in order to set the stage for a more robust and successful product.
Software should never be built in a vacuum. It's always a bad idea to avoid user contact with an end product. Phase 2 has the responsibility to involve our client's week to week in the progress of the project. This right also implies the responsibility from our clients to be involved and engaged in the project as that is a critical part of the overall project success.
We believe that a developer's technology stack does not define them as a person. Developers solve difficult human problems by creating great software solutions. The tools we pick for each project are chosen because they are the right tool for the job.
That said, here’s a short list of technology stacks we’re using to solve problems today:
Ruby
Backbone
CouchDB
Haskell
Linux
Vue.JS
Angular.JS
C#
C
CSS
Java
Javascript
Coffeescript
HTML
Docker
Kotlin
.Net
Viusal Studio
Objective-C
Postgres
Powershell
Puppet
Python
React.js
Redis
Bash Shell
SQL Server
Swift
Typescript
Vagrant