Agile Development: Improve your software with iterative processes

Nicolas Sarmiento
BiT: Business in Technology
3 min readOct 25, 2016

In today’s fast-paced business world we can’t afford to fall behind. This includes keeping up with cutting-edge technology. Everything changes and evolves: processes, methodologies, languages and hundreds of different factors in the tech industry. What doesn’t change is the delicate relationship between clients and software development companies; that often can end on bad terms. Maybe this happens because the client wanted more functionality than the agreed scope, or because the items weren’t delivered on time. However, the worst reason for failure is when the software didn’t create the value everybody expected.

Thanks to agile development methodologies, all this is being left in the dust. We must embrace and use agile methodologies for software development projects. With an ever-changing market, we can’t spend years developing a product. We must launch an MVP to the market as soon as possible, so we know user response and can act on any feedback. What better way to develop software than with a team that knows how it’s actually done?

http://www.a2design.biz

Although there are many agile methodologies, companies also create their own methods for greater efficiency, fewer costs and constant project shifts. At Tecla Labs, for example, we use a combination of Scrum, Lean and Kanban, which we call the TL Method. Among the most popular methodologies, we have:

- Scrum

What Scrum seeks to do (and agile methodologies in general) is make short-term decisions. Why? Because the requirements and solutions evolve over time, according to project needs. That’s why Scrum is based on iterative development. Within these iterations, we’ll find: planning, estimation of the complexity of requirements, and testing and demos of working software. With Scrum, it’s typical to complete development of the most complex iteration first, and so on. In short, using agile development like Scrum adds value to a software product, which works error-free. That’s because phased development like this makes the software work correctly, unlike conventional development that spends a long time developing functionality that in the testing phase creates endless errors. Scrum prioritizes meetings between the development team (Project Manager) and the Product Owner (PO), where the next tasks for development are agreed upon.

- Kanban

We use Kanban boards and update them according to the status of various tasks. The idea of Kanban is to break down development tasks into several parts: instead of having a huge block of tasks that seem urgent, you have micro tasks and prioritize the ones you think are most important. This way, it’s clear who on the team is doing what. With this method, we save time on unnecessary discussions, work more efficiently and promote better teamwork.

kanbanblog.com

- XP (Extreme Programming)

XP or Extreme Programming gets its name from applying all software practices to the extreme. Like other methodologies, XP seeks to improve software quality by responding to constant client shifts. By using this method, small and frequent development releases are made to improve productivity and smoothly adopt new requirements. This method also uses pair programming, extensive code review and a QA unit (for code testing) to avoid developing functionalities until necessary and to stay on top of changes in client requirements; with time, the problem is well understood and communication is constant between the development team and the client.

insights-images.thoughtworks.com

These are some of the most common methodologies used by the largest software developers. As previously mentioned, some companies try to use a combination of all these, and/or create their own method with an easily repeatable process. Each software development company shares their methods and conveys them in their projects. Some have more refined and tested methods than others. Ultimately, creating high-value software depends on maintaining great relationships with your clients, having transparent communication, and using iterative and agile methodologies. Software is a living product that constantly evolves!

--

--