No matter the size or scope of a project, or the type of company for which you work, a management strategy is essential to ensure effective development and fulfill project deliverables. Development methodologies can play a strategic role at all levels in technology—from management to programming to customer satisfaction. Unlike traditional project management paradigms, approaches such as Agile Development, Extreme Programming and Scrum are cognizant of the unique needs of software developers.
While the late 1990’s saw a wave of methodologies combining old and new ideas, most of these centered around the same core principles—things like face-to-face communication, close collaboration between programmers and business experts, and self-organizing teams. But in February of 2001, at a pivotal meeting between 17 independent software developers in the mountains of Utah,1, 2 this all began to change. The developers gathered to talk shop and, despite plenty of disagreement, the result was the Manifesto for Agile Software Development.
Agile methodology was created to improve customer satisfaction by implementing client requirements rapidly through continuous delivery of updated software.3 This allows customers to evaluate releases more often and software developers to then implement customer changes, conduct testing, and honor last-minute requests. Though this method succeeds in soliciting continuous feedback, it can lack focus in project management and quality assurance. It’s best suited for small- to medium-sized web and mobile projects.4
By no means a fit for all companies, Agile software development has become quite popular and encompasses many approaches such as Extreme Programming (XP) and Scrum, which were introduced before the term Agile existed.
In 1996 XP was developed to deliver optimum customer satisfaction in the least amount of time possible.5 A key component of XP is encouragement to write tests before the program. XP is most helpful when used to complete smaller projects because in this model developers deliver software as it is needed, even if late in a project’s lifecycle. Though XP emphasizes teamwork, it is recommended for smaller teams whose projects are for less demanding clients.
Scrum was created in 19936 and remains popular among developers and managers today since it takes into consideration that customers might change their minds throughout the lifecycle of a project. This lightweight process framework is used for complex software and product development, as it accommodates changing project directions—adjustments are based on completed work rather than on speculation. Scrum involves a product owner, team members, and a scrum master, who is tasked with completion of sprints, which are weeklong or multi-week segments of a project.6
Moving away from Agile, Kanban eschews the planning and maintenance of a large backlog of development tasks and sees iterations as an arbitrary nuisance. Derived from the Toyota Production System in the 1940’s, Kanban focuses on scheduling without iterating or multitasking, instead prioritizing work that’s actively in progress.7 After a work item is completed the team plucks the next work item off the top of the backlog. This type of method optimizes cycle time and puts the responsibility in the hands of every team member.
Regardless of which methodology a company subscribes to, each of these is an essential part of a complete software development technology management toolset. To decide which one to use for a specific company or project, consider factors such as whether the business will be involved in the entire development cycle, the size of a development team and how many developers are to be hired, whether team members are working at one central location, and the desired outcomes and deliverables. Instead of being black or white, managers may also want to look at all the methodologies and see which aspects of each best fit a particular project.
If you are interested in leading a technology department and learning more about these methodologies, you should consider exploring Georgetown University’s Online Master’s in Technology Management program. The unique program integrates executive-level technology practices with business principles to help empower future CIOs to select and implement proven development strategies.
1. “February 2001 meeting.” Agile Alliance. Accessed July 16, 2015. http://www.agilealliance.org/the-alliance/the-agile-manifesto/.
2. “Mountains of Utah.” Agile Manifesto. Last modified 2001. Accessed July 16, 2015. http://agilemanifesto.org/history.html.
3. “Customer satisfaction.” Agile Manifesto. Last modified 2001. Accessed July 16, 2015. http://agilemanifesto.org/principles.html.
4. “Best suited.” Adopting Agile. Last modified April 1, 2015. Accessed July 18, 2015. http://www.veracode.com/blog/2015/03/companies-worldwide-are-adopting-agile-development-techniques-sw.
5. Das, Vinu V. and Thankachan, Nessy. Computational Intelligence and Information Technology.London New York: Springer-Verlag Berlin Heidelberg, 2011. Accessed July 16, 2015. https://books.google.com/books?id=BcEPBwAAQBAJ&pg=PA688&lpg=PA688&dq=extreme+programming+March+6,+1996&source=bl&ots=
6. “Scrum.” Scrum Alliance. Accessed July 18, 2015. https://www.scrumalliance.org/why-scrum.
7. Levinson, Mark. “Kanban as Alternative Agile Implementation,” InfoQ News, October 23, 2008. Accessed July 16, 2015. http://www.infoq.com/news/2008/10/kanban_agile