Despite software being pervasive in our modern society, the process of its development is a mystery to most. In general, this never becomes an issue. We sign into our Gmail account and it just works; we load Microsoft Word, type a document, click save and the document is magically stored.
There are times that we begin to care very much about the software that runs so much of our lives: The navigation system in our car just will not enter that address correctly, the weather app on your phone keeps taking you to the wrong screen, or your business wants a mobile commerce app, you need to improve and automate the workflow of your shipping department.
In those moments, the software development process becomes an urgent puzzle to solve. To help unravel the mystery and set guidelines for successful software development, we’ve developed 5 rights for our clients.
1. Clients have the right to usable software.
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.
2. Clients have the right to software, at regular intervals, throughout the implementation life cycle.
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.
3. Clients have the right to clear, non-technical communication about the software being developed and the development process.
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.
4. Clients have the right to the best solution available.
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.
5. Clients have the right to be regularly involved in the software development process.
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.
Our job is to make software that helps our clients be more successful. That is easy to say, difficult to accomplish. The Software Bill of Rights are the expectations we believe our customers should have during any software project. If you are involved in a software development project, make sure you have these rights. Software development, especially custom enterprise software, should be a two-way street of communication and involvement.
To stay in touch with software craftsmen with decades of experience, follow or like Phase 2 on our social media pages listed in the header of this blog.