The goal of every genuinely valuable software development team is to do more than merely provide a utility; the desire is to join with the business to achieve business objectives—to function as a strategic partner in every endeavor of note. Since almost no business goal can be achieved without software in today’s world, a software development partner will necessarily be seen as either an evil to be endured or a force for the good of the company; an inhibitor of progress or a facilitator; and the relationship will be one that is merely tolerated or one where the software developers and business users are part of a successful and integrated business team.
Software Development Consultants as Partners
To be seen as a partner, however, software development consultants must be reliable, responsive, and collaborative. We must also provide products our customers desire when they desire them; an unfinished project is inventory and of no value to our customer. This doesn’t even address how many projects are simply cancelled, do not fully meet the user’s needs, or provide more functionality than the users need, wasting development resources.
What if we could, in the words of the Software Management Manifesto, offer customers the following rights?
- You have the right to an overall plan. The team should tell you what they could accomplish in the next year or two years, and tell you how much that would cost.
- You have the right to see progress. From the very beginnings of the project, the team should be producing functionality that you care about. The functionality should be in the form of a running system, proven to work by passing repeatable tests that you specify.
- You have the right to change your mind. As software development proceeds, you should be able to substitute new functionality for old. You should be able to change the relative priorities of the features of the system, dictating what should be done first and what should be done later.
- You have the right to be informed of schedule changes; since some things will turn out to be easier than expected and some things harder, the schedule is going to change. You have the right be informed of such changes as soon as the programmers know about them. You have the right to exercise your business judgment by choosing among options for reducing scope so as to restore the original date. You have the right to cancel further development at any time and be left with a useful, working system that reflects your investment up to that date.
In order to be able to make this kind of commitment to our customers—to become strategic, trusted partners—we decided that we cannot continue to do business like a typical software consulting house. We needed to develop a new approach to customer engagement at the strategic level while tactically we recognize the need to deeply involve customers in all aspects and phases of project development, to change our development practices to mitigate the known difficulties of software development, to maximize the use of scarce resources, and to provide customers with the earliest possible value from our efforts.
Pinnacle has begun the implementation of a new development strategy to meet these requirements. This is the first in a series that will define 1) why we are making changes at Pinnacle, 2) The changes we are making, 3) How those changes will benefit our customers in both the short and long terms. Our customers and their needs are the reason we exist and the driving force behind our efforts at continuous improvement; I invite you to join with me on the intellectual journey through this series, and to hopefully join with us on collaborative projects that further your business goals and will be both a pleasure to work on.