The Benefits and Disadvantages of Fast Development
In the world of software, development speed is critical.
For clients, they have contracted with a company to develop a solution to a problem they need to solve and they want it as quickly as possible and as “cheaply” as possible.
For developers and the companies they work for, there is constant pressure to produce high-quality code as fast as possible while being fully aware that rushing can increase stress, distracts focus, and destroys productivity. What is needed is creativity, effectiveness, and focus instead. Speed can come from working “smart” within a team — streamlining the review/testing process so time is not unnecessarily wasted during development. The pressure to “go fast” is understandable for the following reasons:
- Satisfy and retain the client
- Fulfill the contract as soon as possible to work on new projects and stay competitive in the industry
- A company with developers that can work quickly with a minimum of mistakes and create clean, bug-free code will be better able to acquire new customers through reputation and word of mouth
- Speed can help a software development company build a competitive advantage over slower rival companies
So, clearly, there are advantages to both the client and developer to get the project completed as quickly as possible. But, let’s examine a couple of scenarios to investigate whether speed alone trumps all other considerations.
For example, a client has a budget of $40,000 a month and wants a project completed in 6 months. The advantage to the client is that such a large budget should make them a priority for the development firm that they have contracted with. And, theoretically, more resources will be dedicated to their project to complete the project in the 6-month development window successfully.
For the development team, this scenario can be fraught with landmines that may sabotage the development roadmap.
- Money is being spent so quickly that the development team, and the client for that matter, may not have the time they need to reflect and give feedback on the work that has been completed
- If the UI/UX functionality doesn’t actually solve the problem that it is intended to – the development team may need to backtrack and address issues that could’ve been found and addressed if there had been adequate time to reflect, test, and provide feedback
- With a project that has a large budget but a short development window, there may be pressure on the development firm to place more teams at the disposal of the project to build faster which increases the overhead of communication
- Adding more developers to a 5-7 developer team usually does not necessarily make the work go faster
- Multiple teams working on the same project increases the possibility of work being duplicated or missed resulting in a slow down in development
- As development slows due to ongoing complications there is a very real possibility of the project becoming a “Death march”
What is a “Death March” in Software Development?
A death march is a project which participants believe is destined for failure, or that requires a significant amount of unsustainable overwork. Death marches are usually a result of overly optimistic expectations in scheduling or feature scope. Management may desperately attempt to right the course of the project by asking team members to work especially grueling hours (14-hour days or 7-day weeks) or by attempting to "throw (enough) bodies at the problem", often causing burnout. (Wikipedia.org)
The Benefits and Disadvantages of Slow Development
For clients, “slow" development may, at first thought, not be desirable due to the desire to get a finished product into their hands as soon as possible. Perhaps it's better to think of “slow” development as “thoughtful and thorough” development.
Code that is thoughtfully organized, well-written with detailed comments, and well-tested is much better than code that has been quickly thrown together but introduces technical debt. The challenge is how to develop good solid code, at a sustainable pace. Clients, product owners, and the development team (Software engineers, UI/UX Designers, and QA) need to work together to create a development roadmap that expedites development while being mindful of the potential pitfalls of developing too quickly.
Slow development “Pros”
- More time for iteration, discussion, and reflection
- More time to process and analyze real user feedback
- More time for coordination between the client and the development team
- No one on the development team is working on someone else’s half-finished feature
Slow development “Cons”
- Slow development is, well, slow
- Missing deadlines due to development that is too slow can result in a lack of confidence in the project from the client and within the team
- When a development team is moving too slow it's hard to schedule when a project will be “done."
Photo credit: Vecteezy.com
Striking the Balance between Fast and Slow Development
So, the benefits and disadvantages of fast versus slow development are pretty clear and neither option really delivers the results a development team, or company, or a client for that matter, would be happy with.
In the world of software development, many companies and organizations are embracing Agile methodology. Agile has developed a reputation for being “fast” or “ quick." But, really, it should be thought of as a way to deliver working software to the customer in a shorter period of time.
Agile is an iterative approach to software development that helps teams deliver value to their customers faster and with fewer hassles. It comprises various strategies under which requirements and solutions evolve through the collaborative effort of a team, continual planning, and continual learning. Implementing Agile enables teams to deliver the product faster with enhanced quality and predictability, and flexibility to respond to change. Agile focuses on keeping the process lean and creating minimum viable products (MVPs) that go through several iterations. Everyone is working together towards a single defined goal.
The key values and principles of Agile are:
- Software working over comprehensive documentation
- Individual interactions over processes and tools
- Continuous collaboration with the customers over changes in requirement
- Responding to change over following a plan, whenever required
Before Agile was launched in 2001 most software development followed the Waterfall methodology. Developing any software product, required a ton of documentation before coding even began. Business analysts prepared the requirements documentation, technical department then prepared their technical requirement documentation from it. Then coding and testing come to the fore. This whole process takes months or even years in this waterfall method. Changes are difficult to make, especially to features developed early in the project. The “plan, design, build, test, deliver” waterfall process is slow and arduous but can be used when the project timeline is fixed and can’t be moved - Waterfall will offer a more predictable outcome. If you need to see value delivered in a shorter amount of time, Agile is the appropriate choice where action and getting things built are more important than documentation and process. (Billie Keita, Aug. 4, 2022)
Conclusion - Go “Slow” to go “Fast”
Photo credit: Dirk Wouters from Pixabay
At The SilverLogic (TSL) we embrace the principles of Agile and Scrum. Scrum is the framework that helps our teams work together. It encourages teams to learn through experiences, self-organize while working on a problem, and reflect on what they did well or didn’t do well during a sprint (a short, time-boxed period when a scrum team works to complete a set amount of work). We have found Scrum to be the best way for us to implement Agile projects and develop software for our clients and stakeholders. The benefits of Agile Scrum methodology are pretty clear:
- Flexibility and adaptability
- Creativity and innovation
- Lower costs
- Quality improvement
- Organizational synergy
- Employee satisfaction
- Customer satisfaction
We have delivered projects to many satisfied clients and we continue to deliver high-quality working software for our clients day in and day out. If you have an idea for a project and would like to discuss what we at TSL can do for you and your business/organization, please get in touch!