Agile project management has strong foundations in open source software development and mobile application development for iOS & Android. In the course of the last decade, Agile project management techniques have grown in popularity.
Agile methodologies first arose in the Web 2.0 era to speed up innovation in software development and get to market at lower costs, allowing startups and SMEs to better compete with enterprise corporations. In today’s Cloud era, Agile has become an industry standard and companies integrate it with DevOps techniques.
Businesses of any size can use Agile techniques to implement their unique goals and requirements with cost-efficiency and innovation. To leverage Agile project management methodologies successfully, businesses must lay the proper foundations. In order to lay these foundations, it is important to understand the history and evolution of Agile project management.
A Brief History of How Agile Project Management Evolved
How Agile Evolved: The DotCom Era
“The traditional Project Management (waterfall) approach is linear where all the phases of a process occur in sequence. Its concept depends on predictable tools and predictable experience. Each and every project follows the same life cycle which includes the stages such as feasibility, plan, design, build, test, production, (&) support…. The entire project is planned upfront without any scope for changing requirements. This approach assumes that time and cost are variables and requirements are fixed.” — KnowledgeHut
In the DotCom era (1995 to 2000), professional software development was dominated by the desktop application model. Companies produced a boxed product that could be sold and installed on hardware, either on home computers, business servers, or in a data center. The operating system is one example of classic software development, i.e. Microsoft Windows or Apple Macintosh.
Productivity applications like Word, Excel, Photoshop, Quark, or Illustrator are other examples of classic boxed software products. Video game titles also followed this distribution model.
After the internet was invented, many software packages were downloaded to be installed on the user’s computer locally or as web browser extensions.
The mega-sized IT companies like Microsoft, Apple, IBM, HP, Sun, & Adobe that developed software professionally in the DotCom era managed large teams of programmers under the Spiral and Waterfall methods of project management primarily.
Both the Spiral and Waterfall methods of project management address the problem of programming team organization for software application development. Teams are divided into groups that work on various parts of the code independently that need to be integrated into a final product with many features.
Legacy code needs to be updated and rewritten in version releases or distros. Bringing complex software products to market requires central management, deadlines, stakeholder concerns, as well as IT logistics and financial management.
Much of this is the same in enterprise software development, where programming teams build custom applications for Fortune 500 companies and other complex organizations. For example, many banks, insurance companies, financial institutions, and industrial manufacturing companies regularly need to produce their own software solutions from internal teams.
These can be quite complex with thousands of programmers in a company. The same monolithic project management techniques used to build boxed product software was also used by enterprise corporations for their internal requirements.
Consequently, most of the professional project management techniques from the DotCom era and before were primarily concerned with organizing these large teams to build complex software products.
How Agile Evolved: The Web 2.0 Era
“Traditional organizations were designed for ‘stability in a well-known environment.’ In contrast, ‘agile’ organizations continually evolve and have the flexibility to adapt rapidly to a moving environment. This adaptability becomes even more important in a world where digital technologies are changing the fundamentals of how businesses engage with their customers.” — CMSWire
In the Web 2.0 era (2001-2008), open source software solutions became more popular. Small companies were able to access enterprise-level software tools for free.
Advances in the LAMP stack made MySQL and PHP scripts popular in web development (where Java or CGI were the previous standards).
Startup companies in social networking like MySpace, Facebook, LinkedIn, & Twitter set the model for millions of other companies to launch new software products on entrepreneurial foundations.
In the Web 2.0 era, Agile project management methods came to challenge the monolithic practices of large IT companies by bringing software innovation to market more quickly. Agile teams were defined by their small, distributed workforces composed of expert programmers who could build web & mobile applications much cheaper than their IT major counterparts could.
The growth of open source programming projects in the Web 2.0 era led to the expansion of Agile techniques, largely born out of business need. Many smaller businesses and startups were able to innovate in Agile practices while enterprise software development was still governed by monolithic practices.
Venture capital companies sponsored the advance of Agile methodologies by favoring small startup teams led by founders or technical engineers with seed funds. Startups teams as small as 4-5 or 8-12 programmers compete in the marketplace with software companies that have thousands of employees.
If the software product becomes successful in the enterprise sector or popular with the public, the payoff is lucrative for the development company and programming team members. Many SMEs in the Web 2.0 era also adopted Agile project management techniques when bootstrapping their IT services to the next level.
Access to LAMP tools and open source scripts levels the playing field between SMEs and enterprise corporations, i.e. by allowing small businesses to run database and code driven applications without the prices of Oracle, Microsoft, HP, or IBM.
Many Agile project management techniques were founded in the PHP, Ruby-on-Rails, Python, and MySQL development communities. On small business projects, programmers, web developers, and graphic artists work together in teams to build ecommerce, forum, wiki, or social networking solutions for SMEs. As the Web 2.0 era became dominated by mobile, Agile teams were massively successful in iOS/Android application production.
How Agile Evolved: The Cloud & Mobile Eras
“The basic concept behind Agile software development is that it delves into evolving changes and collaborative effort to bring out results rather than a predefined process. Adaptive planning is perhaps the biggest feature of Agile… Scrum and Kanban are two of the most widely used Agile frameworks. They are very well known for encouraging decision-making and preventing time consumption on variables that are bound to change. It stresses customer satisfaction and uses available teams to fast-track software development at every stage.” — KnowledgeHut
In the Cloud & Mobile era (2009 to 2018), Agile project management began rapidly replacing monolithic project management techniques in enterprise corporations, government institutions, non-profits, and other complex organizations.
As corporate data centers were outsourced to public cloud service providers like AWS and Google, there was an increasing uptake in open source solutions used in programming web/mobile applications.
The millions of applications built for iOS and Android by independent developers, startups, and large corporations also signalled a surge in uptake of Agile project management techniques professionally.
Much of the current innovation now comes from new developments in the data center and the web server stack. Agile teams are known for full stack development, which means that the same group of experts must manage development and operations for a company. From this, the industry evolved “DevOps” teams.
The DevOps revolution is distinctly related with the mainstream acceptance of Agile project management techniques in corporate enterprise, but also can be seen as collective best practices for the cloud optimization of software applications at scale in a data center.
In the Cloud & Mobile era, most users are accessing their software applications from remote devices, i.e. a mixture of desktops, laptops,, smartphones, & tablets. Software becomes hosted on cloud servers rather than downloaded or bought in a store in a box.
The cloud subscription model can now be seen in Microsoft Office, Salesforce, and Adobe products, as well as millions of other web/mobile apps. Programming teams build software that is hosted on cloud servers that must scale to support millions of users at a time or extreme rates of traffic variance with elastic server architecture.
In the Cloud & Mobile era, Agile project management and DevOps merge to become the de facto standard for software development in industry. Not only are companies producing software for cloud SaaS/PaaS applications, but they are also changing the way teams work in enterprise.
Agile focuses on a minimum viable product (MVP) that must be kept operational at all times, then expanded with new features modularly under object-oriented programming rules.
DevOps teams must practice the Continuous Integration and Continuous Delivery (CI/CD) of software applications when managing the product lifecycle and introducing new features or security upgrades. Software must be written to run on cloud web servers.
Agile project management saves businesses money in bottom line costs by allowing them to reduce the size of programming teams without sacrificing innovation or quality.
Laying the Agile Foundations for Success
Agile Foundation #1: Know the Current Marketplace
“Agile was originally developed for the software industry to streamline and improve the development process in an effort to rapidly identify and adjust for issues and defects. It provides a way for developers and teams to deliver a better product, in a faster manner, through short, iterative, interactive sessions/sprints. In the era of digital transformation, with many companies migrating to a digital workplace, agile is a perfect fit for organizations looking to transform how they manage projects and operate as a whole. Agile can help ensure company-wide process and methodological alignment.” — CIO
Now that we’ve reviewed the history and development of Agile project management across multiple eras of computing, it is important to remember these aspects to develop strong foundations for success.
Business owners need to recognize both where the IT industry is today in the Cloud era and how software development has changed from the boxed application model of DotCom. If you are building your company on the assumptions of the previous eras of software development, data center administration, and project management then you are not going to be successful in the market due to excessive costs or by missing out on the meta-trends.
For example, if you are planning to invest in building and launching a desktop application for Mac & Windows, you might question why companies like Microsoft and Adobe have switched their products to the cloud subscription model.
If you proceed with the investment on old fundamentals, or neglect to take a “Mobile First!” strategy, then your competitors are already way ahead in the marketplace.
The same can be said for enterprise companies that have not converted their private data center operations to the public cloud service providers or have not changed from monolithic project management techniques to Agile. The competition is already way ahead, both in cutting costs in software development, talent recruiting, and cloud server operations, as well as in technical innovation.
One of the main reasons that Agile project management is successful is that it is constituted on the reduction of waste. Monolithic project management techniques waste human resources by misallocating them and are driven by a tenure-based salary system.
Most Agile teams are ad hoc and temporary, composed of experts as required to complete the exact fundamentals of the job. This means that the team operating the software on cloud servers in a data center may not be the same staff that programmed the application.
The use of temporary labor can save costs for small businesses and SMEs in software application development for web & mobile. The typical ecommerce or mobile app custom built by an Agile team is now measured in a length of time of weeks or months to market, not years.
Agile Foundation #2: Know Your Business
“Without the correct blueprint, the solution or project will struggle to produce the expected results. An agile architect will need to take all the business requirements, and produce a design that can meet the business need within the constraints of output, time and resources. The architect will also guide the developers during the development processes, and validate that the final outputs meet requirements. Due to the constantly changing solution environment and the requirement that outputs be broken into smaller components and executed incrementally, the architect plays an oversight and guidance role that the solution is heading in the right direction and that all outputs are cohesive in nature.” — Agilest
When laying your foundations for successful Agile project management, the most important factor is to know your own business requirements. These are placed in the context of the marketplace. The available IT resources, budget, talent, & staff all must be considered.
The most obvious point is that the enterprise corporation and small business have different needs and concerns. The startup company has different fundamentals and financial backing structure than a publicly listed company.
The unique aspects of the business model or a startup plan are where Agile excels in project management. An Agile team specializes in customizing software development for each unique business plan. Many times, an Agile team can save time by customizing open source solutions for new web/mobile application requirements.
Some of the first questions you should ask to ensure a successful foundation for Agile methodologies are:
- What are the exact business or publishing requirements of the software application?
- Will the software be developed under open source or proprietary licensing?
- Is the product being developed to support internal business services or the public?
- Will the project leverage open source code for customization of operations?
- What programming language, database format, and web server stack is required?
- How will the programming team be recruited, paid, and employed by the company?
- What are the public or private cloud resources required to support the app in production?
The benefit of an Agile team is that it can be tasked with microservice development and composed of specialists in each programming language or database format. This means you employ the top experts in the field for quick, professional work.
You can save time in programming by building on open source code. There are millions of projects and developers on GitHub and other websites sharing code.
Agile project management is the working methodology for software projects in the Cloud era. Business owners need to focus on recruiting talent to fit specific IT requirements according to their unique business model. Agile project management works for enterprise companies, startups, and SMEs.
Agile Foundation #3: Know the Modern Digital Landscape
“Agile provides an excellent framework for digital transformation for two reasons: 1) Agile provides a framework that enables rapid iterations based on customer feedback… 2) Agile drives a broader cultural shift in an organization.” — CMSWire
Knowing how the modern digital landscape works together with Agile allows business managers and IT pros to make more efficient decisions in hiring programming talent or provisioning data center resources.
Enterprise corporations have introduced Agile project management methodologies for their software development programming teams because it speeds up the time involved with bringing new products to launch.
In order to take advantage of the latest innovations in cloud technology in the data center, Agile teams need to adopt DevOps best practices and working methodologies. This includes implementing Continuous Integration/Continuous Delivery (CI/CD) processes in the software development lifecycle driven by version control tools and automated code testing utilities to support the MVP.
The modern digital landscape is focused on the customer’s experience and companies must react quickly by adding new functions and features to software that keep custom apps ahead of the competition.
Enterprise corporations can modernize legacy applications and hire technical specialists based around microformat expertise. By using open source software, platform code can be customized to the needs of any complex organization with a lower cost and faster time to market than if the software were programmed independently.
According to Allen Kelley of the Agile Connection, “In the digital age, the new mantra is: ‘The business is technology and technology is the business.’” Even small businesses and sole proprietorship companies increasingly rely on ecommerce applications and mobile applications for customer support in operations.
It can be argued that Agile software development methodologies are better suited for small businesses and startup companies, because they are operating with different financial fundamentals and resources than enterprise corporations.
However, the main principle is the same: Agile makes software development teams more lean, efficient, and smaller, especially when compared with traditional spiral and waterfall methodologies.
Enterprise corporations adopt Agile project methodologies in software development as a business defense against competitive products that are bringing similar products to launch at lower costs.
Small businesses and startups adopt Agile to compete with enterprise products or disrupt markets while bootstrapping new applications into production. The industrial requirements for software development at enterprise scale are reinforced by academic research in computer science.
The best experts in any programming language or database framework are technically interchangeable variables across enterprise, academic, small business, & startup projects.
It is difficult for most companies to recruit and retain 5-star talent in programming or cloud data center management, but because talent is interchangeable across projects internationally, Agile project management techniques have become more standardized. The core principles and foundations of Agile are a perfect fit for today’s digital landscape.
Agile Foundation #4: Know the Right Reasons to Be Agile
“Continuous improvement doesn’t just mean making processes faster. It means making every interaction that you have with your customer… a positive and meaningful one. Even more, it means that you’re constantly thinking of new ways to use technology to keep your customers happy, knowing that their expectations are changing by the minute as they interact with other businesses throughout their daily lives. Being obsessed with CX means being proactive and anticipating your customers’ needs while thinking of new and better ways to meet them.” — Forbes
Although Agile has numerous benefits and is widely used successfully, it is not for every team and business process, so it’s important to understand the right reasons to be Agile – and the situations where Agile might not be the best choice.
The Right Reasons for Choosing Agile Project Management
- The business employs cutting-edge programming experts & web design professionals.
- Your team is distributed and uses daily standups for communication.
- You have a core commitment to software product innovation which demands new features.
- The project requirements are not clearly defined & tend to change over time.
- You maintain mobile or SaaS applications in production in the cloud using DevOps tools.
- The business operates a software product with a rotating staff of support experts.
The Wrong Reasons for Choosing Agile Project Management
- Because Agile is “trendy” and everyone says that they are implementing it on their teams.
- To attract or recruit new team members to the business by saying that you’re an Agile house.
- You are using off the shelf software solutions that require administration rather than customization.
- The software product has an extremely large or archaic code base that is still distributed on the cardboard box or DVD model of distribution.
When laying the foundations to adopt Agile project management techniques, one of the biggest decisions for a business to make is whether to manage employees in-house, in a traditional office space or co-working area, or to develop a team of distributed experts working remotely. Many programming professionals prefer home-working contracts, even though employment on an Agile team may have a shorter duration or less perceived stability than a traditional office job.
Automattic, the lead development company behind WordPress, famously employs thousands of people working from home in distributed teams across more than 70 countries worldwide.
In contrast, firms like 37signals develop products like Basecamp from a small Agile team of in-house employees focusing on quality of life issues like a 4 day work week or flexible leave time.
Agile should not be considered a way to take advantage of employees, but rather as a means to optimize software development by employing the top experts as required by the project.
Agile Foundation #5: Value Your Employees
After evaluating all of the strengths and weaknesses of Agile project management for software development, one factor stands out above the others as a key foundation for success: Value your employees!
Agile, Kanban, and Scrum are designed around keeping the interests and needs of the programming team members as the primary concern. Agile and Scrum developed out of the working methodologies and best practices of experts who specialize in building complex software code for the marketplace. It is a very pragmatic, hands-on, and intense approach to managing short deadlines and extreme client requirements.
Although the main benefits of saving costs for businesses by hiring an Agile distributed team are often touted by managers, in fact, many programmers and web designers prefer this working arrangement. They choose it because it best suits their lifestyle, training, and working methodologies.
Valuing your employees is the critical foundation for success in Agile project management. Happy employees will be more efficient, and an attractive work-life balance can enable businesses to recruit expert talent.
Many software projects go through an extensive stage of development which requires a large team, then transitions into a support mode for production where most of the talent requirements are in maintaining the code.
It may be possible to keep a smaller team of experts on staff for managing web/mobile applications at different stages of development. In larger projects, dedicated programmers keep innovating and adding new features to the codebase, while maintaining the web server for security in operations.
By knowing exactly what your business requirements are and what talent you need at every stage of development, you will lay the right foundations to recruit the Agile team that is best-suited for supporting your business.
Agile values the individuality and expertise of developers in every part of the software development lifecycle, specializing in building common ground between employees and business ownership.
- Lessons From the Agile Business Conference
- What Are the Business Benefits of DevOps Implementation?
- Actually, Documentation Is Still Important in Agile Development