Agile approach from Softura
Agile development is a software development approach that "cycles" through the development phases, from gathering requirements to delivering functionality into a working release.
For many people the appeal of agile methods is purely a reaction to the bureaucracy of the monumental methodologies that no longer adapt to today’s changing business environments. At Softura, we take a more practical approach to using Agile methods for our software development.
Our goal is to provide our clients with rapid results which creates increased ROI via reduced time to market.
The two primary benefits to our Agile approach are as follows:
- Agile methods are adaptive rather than predictive. Traditional methods tend to try to plan out a large part of the software process in great detail for a long span of time, this works well until things change. So their nature is to resist change. The agile method welcomes change. Our processes adapt and thrive on change which is the true nature of software development today.
- Agile methods are people-oriented rather than process-oriented. The goal of traditional methods is to define a process that will work well whoever happens to be using it. Agile methods assert that no process will ever make up for the skill of the development team, so the role of a process is to support the development team in their work.
Our adaptive style lends itself better to the construction of custom applications which is the cornerstone of Softura’s business and why we have helped so many businesses with solutions that could not be addressed by off-the-shelf solutions.
For example: the time involved in a good software Design is very difficult to predict and requires a combination of highly specialized resources from the client side and our staff. Once a good design is achieved construction becomes much easier to predict. During the course of design, we adapt to the needs of our client’s and do not put demands on creative thinking which could limit tangible benefits such as streamlined business processes. Once we have the design, we can plan the construction. Once we have the plan for the construction, we can then deal with construction in a much more predictable way leading to reduced construction costs, more rapid delivery with fewer rework items.
So our agile approach for software development looks like this: we want to be adaptive early in the design process so that a predictable construction model and schedule evolve which allows for scope clarity, delivery predictability and customer satisfaction.
Can Agile do fixed cost projects?
Softura’s adaptive process builds a different kind of relationship with our customers than the ones that are often developed by traditional staffing or outsourcing vendors. When you hire a separate firm to do software development, most customers would prefer a fixed-price contract. You tell the developers what you want, ask for bids, accept a bid, and then the onus is on the development organization to build the software.
A fixed price contract requires stable requirements and hence most companies automatically implement a predictive process which usually results in a combative or “us vs. them” relationship. Softura knows that unstable requirements imply that you cannot work with the usual notion of a fixed-price. Trying to fit a fixed price model to an unstable requirement ends up in a very painful explosion with the customer getting hurt every bit as much as the software development company. After all the customer wouldn't be wanting some software unless their business needed it. If they don't get it their business suffers. So even if they pay the development company nothing, they still lose. Indeed they lose more than they would pay for the software (why would they pay for the software if the business value of that software were less?)
So there's dangers for both sides in signing a fixed price contract in conditions where a design is not stable. This means that Softura simply works with our customers differently. It doesn't mean that we can’t fix a budget for software up-front. What it does mean is that we do not fix time, price and scope sequentially. Our agile approach is to fix time and price, and to allow the scope to vary in a controlled manner which allows for flexibility.
Our adaptive approach means that our customer has a much finer-grained control over the software development process. At every iteration or milestone our clients get to check progress and to alter the direction of the software development. This leads to much closer relationship with the software developers, a true business partnership. We understand that this level of engagement is not for every customer organization but it is essential to make an adaptive process work properly and to ensure customer satisfaction with each solution we deliver.
Can Agile do fixed cost projects?
Softura understands that software is intellectual property applied to meet a business need; therefore the more interactivity between people the better the intellect. Using a shared vision and small teams, our agile development approach strives to involve as many people from our client as possible in the early design stages in the quest to best solve the their business requirement.
Our agile approach yields a number of advantages for our customers. For a start they get a much more responsive software development method. For example: A usable, although minimal, system can go into production early on. The customer can then change its capabilities according to changes in the business, and also from learning from how the system is used in reality.
Every bit as important as this is greater visibility into the true state of the project. The problem with predictive processes is that project quality is measured by conformance to the “original” plan which has probably been changed consciously or unconsciously throughout the various phases of the project. This makes it difficult for people to know when reality and the original plan diverge. The common result is a big slip in the schedule late in the project, rework or stoppage of the project until both sides can agree on how to resolve a scope issue.
In a Softura agile project there is a constant reworking of the plan with every iteration. If bad news is lurking it tends to come earlier, when there is still time to do something about it. Indeed this risk control is a key advantage of iterative development. Softura’s agile methods take this further by keeping the iteration lengths small, but also by seeing these variations as opportunities to improve results.
All of this has an important bearing on what constitutes a successful project. A predictive project is often measured by how well it met its plan. A project that's on-time and on-cost is considered to be a success despite the functionality of the software delivered. We feel that this measurement does not apply to an agile environment. For Softura the true measure is the question of business value - did the customer get software truly improves their existing environment. A good predictive project will go according to plan and deliver software that works, a Softura agile project will build something different and better than the original plan foresaw.
What makes Agile work?
The working premise of our agile approach is simple:
- We insist on frequent releases. We strive to deliver small units of functionality that make good business sense. Frequent releases improve the relationship with our customer, and occur on a regular basis.
- We create a multi-release framework. Agile development stresses that there must be a master plan and a supporting architecture. Use releases to add more customer functionality, not constantly rework what was done in the past.
- We relentlessly manage scope. Meeting a release schedule will not happen unless you actively manage the resource triangle. The resource triangle below is the three-way combination of functionality, cost and schedule. Any change to one leg of the triangle (misunderstood requirement, less time or fewer people) requires a corresponding change to at least one other leg. Agile development teams triage daily, often with customer involvement, making daily decisions about scope items.
Putting Business First
Softura knows that development teams cannot be effective without the valuable input of our customers. They need guidance on the business needs close contact with business expertise which is another important aspect of our agile, adaptive process.
Agile teams thrive on continuous customer feedback. Furthermore this access is not something that is handled at a management level, it is something that is present for every developer. Since developers are capable professionals in their own discipline, they need to be able to work as equals with other professionals in other disciplines.
A large part of this, of course, is due to the nature of adaptive development. Since the whole premise of adaptive development is that things change quickly, you need constant contact to advise everybody of the changes.
There is nothing more frustrating to a developer than seeing their hard work go to waste. Softura ensures that there is good communication between the business we are supporting and the developer. This communication results in trust, more accurate results and a true sense of and extended team.
The End Result
In today's environment, the most common methodology is code and fix. Softura’s agile approach, while adaptive to the needs of our clients, applies discipline and reduces chaos. Our agile approach has the advantage of being flexible and more responsive in delivering rapid results than the heavyweight methods. Our agile approach is a simpler process and is easier to follow by both clients and developers alike.
Softura’s agile approach benefits companies who know they need a solution, but are not sure what they truly need. If you don't have stable requirements, then you aren't in the position to have a stable design and follow a planned process. Our approach reduces tremendously reduces the risks in these situation and provides business value, increased ROI and high customer satisfaction.
To learm more about how Softura's Agile Approach can help you,
call (248) 344-2100 or send an email to sales@softura.com