Every project has requirements, but if they aren't written well from the very beginning then it's highly unlikely that they will be met. Following these four guidelines will help the requirement writer get a good start on writing effective requirements that will filter through the entire project lifecycle.
The New Scope for Application Delivery
I guess it’s obvious to say that application development and delivery has changed dramatically in recent years. The acceptance of agile as a mainstream project execution approach has had the most profound impact on application development for very good reason--it is ideally suited to developing products and features. At the same time, the move away from physical media delivery to downloads has allowed one-person startups and multinationals to compete on a level playing field--no more do you need access to a huge retail network and the overheads of packaging and production to get your product to market.
Those are all areas that have been very well documented, but in the midst of all that there is another change happening…and that’s what I want to look at here.
The shift in control
Historically, the control over how applications would be developed and delivered rested firmly with the vendor. They would likely consult with key customers to understand what they were looking for in future upgrades, would make sure that they were in touch with industry trends and would generally try to make sure that products aligned with market and customer needs in terms of functionality. But when it came to other elements, the vendor was squarely in control:
- Packaging of features and components--there might have been a number of different levels, but the vendor would decide how the product would be sold.
- Infrastructure needs--again there might have been a SQL version and an Oracle version, but the vendor would tell the customer how the application would need to be installed and configured, and what the hardware needs were.
- Release schedule--the vendor would have a relatively slow major release schedule, one or two functional releases per year with maintenance/bug fix releases in between.
- Professional services--complex applications would require extended deployment periods with complex process integration and training.
In the last few years, this control has shifted almost completely to the customer. Partly this is as a result of the changes identified in the first paragraph--technology has helped to break the domination of industry giants and smaller organizations have had to differentiate themselves on flexibility and ease of use--a one -erson software shop can’t rely on complex professional services needs because they can’t fulfill those services. Additionally, agile has given the customer a much stronger voice in feature development, and it’s a tradeoff that has worked for both sides.
Regardless of how it has happened, it’s a trend that is going to continue. As soon as one vendor offers the flexibility to upgrade and patch on demand, all of their competitors will be expected to do the same--and if they don’t, they will rapidly find themselves at a competitive disadvantage.
The impact of the change
So what does all of this mean for application development and delivery, and especially for project management? Well, it changes the fundamental structure of the applications that we develop:
- Flexible features that can be packaged in a number of different ways
- User-friendly and intuitive interfaces
- Modular development that can be released as standalone elements
- Platform independent (or at least multi-platform) deployment models
This is a fundamental shift and needs us to stop thinking of a single application, but rather as a number of different modules that work together to deliver the full product experience. Projects are likely to shift from a relatively low number of high-effort year product development initiatives to a higher number of shorter, lower-effort projects that deliver upgrades to one or more modules and can be delivered independent of other elements of the product.
The development of vastly more sophisticated web browsers has made it easier to envisage powerful and intuitive user interfaces, but to take advantage of them we need to ensure that the interface design is a fundamental part of each new feature development project--a shift from the historic approach where the product team would frequently decide how the product would look. Of course the design and other product elements should be developed in collaboration with our customer base to ensure that we are delivering something that our customer base wants to purchase--ease of use also means that it is easier to switch to a competitor if we misjudge the market.
This isn’t an article full of project management tips, but PMs have a key role to play in modern product development. If you are working with a product manager who isn’t embracing a modular, customer-focused, flexible approach to developing and deploying their product, then you may find yourself managing a project for a product that the market views as obsolete.
The era of cloud computing is incredibly changing the technology offerings . This is really good to offer product releases /patches downloadable taking full benefit of the browser sophistications.Time to market is one of the key competitive edge this sort of arrangement has made it possible. Very well written article sir =)