As we progress through our series of the Customer Journey, it’s time to examine what goes into a software development estimate. In this article, we’ll look at software estimates and how a project management style ties into popular software estimate types – Upfront vs Time-Based. We’ll also lay out some principles of our own internal workflow and why it ties closer to one of the project management styles – Traditional or Agile.
- Software Costs:
- Software Estimates and Factors in Cost
- Project Management Styles:
- Traditional vs Agile
- Your Role in Software Development Estimates
- Upfront Estimates vs. Time Based Estimates:
- What are Upfront Estimates
- What are Time-Based Estimates
- Staying Mindful
- Which is Better
In previous articles, we’ve highlighted procedures associated with software development and their potential complexity. For many, it can be a time consuming process, especially for those without the interest or technical background. And frankly, there’s no shame in that.
But, there’s a more simple way to understand software estimates and prices. Let’s get rid of some of the haziness that looms over many owners looking to jumpstart their software idea. Especially, the unavoidable conversations about price, or more distinctly, the software development estimate.
Estimates and Factors in Cost
Overall, software prices are extremely wide ranging from one type of software to another. There is no exaggeration in stating that the price tag attached to a software idea can start around $10K and quickly jump into the seven figures.
Are you mapping out your software idea? Looking to add one-of-a-kind features? These are always great, but are they necessary to launch? One of the other factors that we’ll discuss later influencing software estimates is the project management style. The others can be generalized into a single word – customizations.
Let’s first discuss customizations. They can increase the price because of the necessary time and research needed to turn a general feature or technology into a custom element in your software platform or interface.
After some research, you’ll even realize there may be existing technologies that closely resemble what you wish to accomplish. However, almost all will have limited options and won’t fit your business needs completely. Hence, the need for customization may be required. Inturn, the more time and cost needed to develop.
In short, here are some of the main factors that can affect software estimates and final prices:
- Customization and Complexity
- Project Management Style
- Hidden or Unknown Artifacts
- Design and Graphical Markers
- Revisions to Original Scope
Project Management Styles
We should understand that software costs and estimates also relate to how a software company manages the development process. Let’s look at two popular project management styles and their potential effects on your estimate and final price.
Traditional, or Waterfall project management involves working up a linear and sequential cost projection prior to any work starting. This is more of an archaic approach but still works effectively for less complex projects.
This will lean more towards projects that are extremely familiar to some development companies. Companies who understand the steps and technologies involved for specific software types. Even further, this can be a software company who caters to a specific industry and understands the regulatory and technical requirements. They may be experts in a specific sector.
Supply Chain Management and Point of Sale applications both contain examples of software developed through traditional methodology. Oracle Cloud SCM offers one such service.
Supply Chain Management is an industry unto itself. It involves transport of goods and logistics. It’s the way that companies like Walmart are able to service their massive delivery network. Such an enormous obligation of scheduling and fulfillment of shipments presents a tall challenge to overcome.
Oracle Cloud SCM to the rescue! Their cloud based software solution to the SCM challenge was developed through a waterfall style process. Oracle’s customers have access to a huge number of services and infrastructure, which can help them through any SCM crisis they may encounter.
By contrast, an Agile or time based approach focuses on smaller increments of progress, called sprints. A sprint allows greater collaboration with clients compared to the Waterfall approach.
Agile project management allows for meticulous changes at more constant intervals. Clients and development teams frequently meet to review and test changes and updates from the previous iteration. Usually, these sprints are only weeks apart.
Vistaprint is incorporating agile methodology as a way of advancing their workflow. The printing giant was able to reduce their lead time on new projects from 40 days to just 15.
Vistaprint conducted an internal company study which revealed a problem. When an idea was to be manifested into a new product, they found that the process was requiring 40 days to come to fruition, while in fact only 40 hours of time was actually being spent on the task.
To correct the problem, Vistaprint restructured their project management process to reflect the agile approach. In doing so, the company was able to bring the same process down to just 15 days, instead of 40.
By converting their methodology from waterfall to agile, Vistaprint has streamlined their internal workflow most effectively.
Your Role in a Software Development Estimate
It’s often difficult to estimate the cost of a project before consulting with a professional agency. Certainly, you can research technologies and look at their specifications. However, technologies will normally have to interact with different applications, platforms, extensions and cloud networks.
It’s here where development companies take on the responsibility of researching and testing if all the technology within a project is compatible. Therefore, the goal is not merely to understand applications as standalone technologies, but rather their compatibility and potential limitations when paired with others.
In spite of this, we at Endertech applaud many clients who have worked diligently to generate a preconceived cost analysis, before consulting with our team. With a sufficient amount of research under their belt, this normally leads to a more astute consultation from the beginning.
Even further, a well documented project scope may speed-up development if it’s been prepared accurately. Almost always, a document scope is the first item requested by companies. Whether done by clients themselves or with the help of a development team, it’s meant to provide insightful detail to any project. All this confirms that market research for a software idea should always precede large investments into its development.
At some point however, the topic of developer costs will need to be addressed in realistic terms.
Upfront Estimates vs. Time Based Estimates
- What are Upfront Estimates
- What are Time-Based Estimates
- Staying Mindful
- Which is Better
Traditional (Upfront) Estimates
Upfront, or Traditional type estimates are geared toward knowing every detail about a project in advance, and projecting a rigid cost breakdown and workflow plan before work begins.
This is mostly in cases where existing technology, routines in development and final expectations have been tried and confirmed based on previous projects.
Everything involved in upfront estimates can be documented and priced because of countless previous successes.
Agile (Time Based) Estimates
Agile or time based management on the other hand is more free-flowing, and involves short sprints of production which aim to accomplish the objective at different development stages.
The major difference between agile management and traditional management is flexibility. As the name suggests, agile projects have the ability to change direction along the way, which offers certain advantages to clients. In comparison, a hard-cast waterfall estimate shares none of the dynamic responsiveness that goes along with the agile approach.
We should keep in mind that even for professionals with a great deal of experience, the task of precisely estimating costs for a complex project is not always simple. Subtle software concepts will often imply little significance to the untrained observer. However, to a professional, these subtleties can mean obvious and impactful complications, present and future.
Let’s break this down further. It’s already vaguely difficult to perfectly predict (estimate) things we know about. Let’s use the simple example of travel. How many minutes would it take to get to your local hardware store during rush hour? Although few, there exist some unknown factors.
Going even further, it’s relatively harder to predict things we don’t extensively know. For example, processes that haven’t been largely completed. Let’s say, the minutes it takes to travel by foot from your hometown to your state capital. The unknown variables start to increase.
To finish this example, it’s nearly impossible to predict things that have yet to be tried or discovered. Let’s use an outlandish example. Like, the estimated travel time from Earth to Neptune using the latest rocket propulsion systems in the year 2030.
Of course these are simple exaggerations, but it’s easy to see, the less tried and documented scenarios provide us with the least accurate predictions (estimates).
Which is Better: Time-Based (Agile) or Upfront (Traditional)?
It’s better to understand why one is more widely used. At Endertech, our primary method of development is our Agile approach and there’s a reason. To further define our previous explanation, it’s a more dynamic way of completing a project because it involves smaller steps called sprints.
Sprints are typically separated by 2 weeks and allow for progress to be easily measured and adjusted with clients actively involved. Let’s look at how it works and how it affects a software development estimate.
Time-Based Estimates with the Agile Process
It generally starts with a discovery process that takes you through the first stages of an introduction and planning. This aims to lay out a list of needs, features and goals for your software.
This is similar to how a traditional project starts, however, the Agile approach makes note of possible areas to pause, research, and test potential areas of friction in the software. As stated earlier, not everything may be known from the onset like a traditional piece of software.
Time based estimates reflect these checkpoints by documenting costs with the same agile mindset. A defined range so-to-speak. If plan A works as desired during tests, then the project moves forward. If not, there’s more research and testing to be done, new options to discuss, and test once again. Essentially, everything is based on time.
It’s important to remember, not everything can be finalized at the discovery and planning stage. Time-based estimates are well documented plans and this includes plans for potential hurdles. But it’s a great starting point leaving flexibility for developers and owners alike. The main concept during planning and development, document flexibility for necessary deviations.
Even with room for flexibility, it involves droves of preparation and brainpower, and represents, to us, the true meat and potatoes of the work. Within reasonable time, a simplified version of the basic concept is prepared for a test flight, and it will once again be time for another sprint.
We can already see the definition of agile naturally show up in Time-Based estimates, planning, development and testing phases. This describes the agile process and why a time-based estimate type is preferred especially with constant changes and advancements in technology.
We’ve examined both Agile (Time Based) project management as well as the Traditional (Upfront) type and why software estimates can differentiate depending on which one is used.
Let’s remember their differences. You’ll notice, our preferred Agile approach works well with large or more complex projects involving new technology integrations. While the Traditional method still works in a linear approach, it takes into account that the technology and end goal is well understood and has been proven multiple times.
With Traditional development you get a fully projected outline of costs before the work begins, but little flexibility included in the plan and estimate.
With Agile development, all of the focus is on flexibility and the dynamic flow of ideas, from the outset of the project – estimate through completion.
Remembering the important points, software estimates will vary from company to company. Also important to remember, estimates will vary depending on the type of project management style utilized by the company. It may be Traditional or Agile. The important part is to understand which one your software development company of choice is using in your estimate and development.
Have questions? Talk to us soon, and let us help bring your software idea to life. We can discuss our process and create a customized estimate for you based on your goals, needs and requirements.