Enterprise is still figuring out agile app development


Agile Development

Photo by Dean Meyers

Software is essential to Enterprise and they are still figuring out agile app development. How so?

Until now they were either obtaining turnkey solutions or subscribed to software as a service (SAAS) solutions. Turnkey solutions require upfront licensing fees, installation, configuration, certified IT staff to maintain them. They also tend to get feature bloated overtime, because vendors have to justify selling upgrades and more support packages.

SAAS solutions can be subscribed to by employees and teams who wish to use higher quality software and bypass the control of the IT department over them. They can just put the cost on their company credit card and not even have to get a purchase order for it. Mobile devices played a significant role in consumerization of IT and pushed that even further.

However neither of those solutions can cater to the unique enterprise needs. That’s where custom software comes in.

Tailoring To Enterprise Needs

Custom software is developed either in-house by a product development team or it is outsourced to a product development company that executes the entire project by going through design, development, deployment, collecting feedback, and repeating the development cycles. Custom software may cost more than turnkey and SAAS solutions. It also requires a commitment from the buyer to realize the work involved in developing high quality software in consecutive development cycles and the ongoing cost associated with them.

Custom mobile apps are becoming more commonplace and essential in enterprise. Most of these apps are mobile-cloud architecture technologies allowing people in the organization to lookup, read, and write information in the company’s knowledge repository and network. In order for these apps to reach an ideal state of quality in usability and stability, they ought to go through several release cycles through year.

Iteration is the key

Photo by Improve It

There is no such a thing as high quality apps build in one shot. In this approach every new release is followed by monitoring end-users and gathering their feedback to improve the product. In every new release existing bugs are fixed, performance is optimized, and features are added or removed. This ongoing process of editing and refining is essential for making a product that everybody wants to use. If done right, the product becomes the user’s best friend. This is the very essence of agile development.

Enterprise is uncomfortable with iterative development

A lot of good projects and initiations get shelved at the idea stage, because enterprise companies are still feeling uncomfortable with the agile and iterative development model. Some even continue using conventional methods to run their day-to-day business operations using pen, paper. They push Word, Excel, and Powerpoint to their limits for accomplishing tasks that they were not meant to. The workforce is waiting and hoping that some magical turnkey or SAAS software is going to show up and save the day, because their company is not used to the idea of maintaining a custom software’s codebase, ongoing development cycles, and the cost associated with them.

It is Intelligent Design vs. Evolution all over again

Lean and Agile methodologies have been the cornerstone of building great products in smaller companies and startups, but many enterprise companies are still following the traditional waterfall model which means every project scope is designed to death by business and system analysts, before it is even considered for execution. Even once they are done with their process, the end results is useless for the agile software development teams. System analysts provided 50-100 page technical design specifications.

An agile team requires only 3-5 page document containing basic diagrams and the most essential general guidelines for the software project they are about to work on. The details are figured out through the upcoming development cycles by gaining user feedback and making decisions based on the existing state of the codebase. It is the argument of Intelligent Design vs. Evolution all over again.

Agile development may effectively render system analysis useless in many projects and that’s bad news for many system analysts who work in large organizations. The seemingly uncertain nature of code evolution in agile development goes against their deterministic and structured nature.

It’s about changing the mindset

Enterprise companies are pyramid hierarchies trying to live in a networked world. What’s interesting is that they have all the required resources to adopt agile product development in consecutive release cycles. It is really the matter of change their mindset and of course the organization’s hierarchies, but that type of change may not happen anytime soon.

That is why projects get outsourced to agile app development firms. It is a window for projects to leave the cathedral gates and take a fresh breath of air in the bazaar where innovation is fluid in a flat network of smaller teams.