Categories
Software Development Tips

Agile vs Waterfall development

One of the first choices you will make for your software development project is which development methodology bests suits your requirements. There are several development models but usually revolve around 2 main types, Agile and Waterfall.

So, what’s the difference between Agile and Waterfall, and which of the two approaches is better for your project?

Waterfall

Waterfall is a linier project, when the exact specification of the software is determined at the beginning of the project and those requirements are delivered at a fixed price. This is similar to how you would construct a house, first with an architect to design the house, then with various teams of trades to build the house in a specific order. Relative to this analogy changing your mind about the placement of doors and the size of rooms after construction is likely to be expensive and time-consuming.

Waterfall projects require a significantly more time planning, for contract administration and risk variations for any evolving requirements.  You can expect the entire waterfall development to take longer overall than agile, and you will receive your product at the end of development.

Software is not like a house

Although this methodology may work well for smaller projects or for projects with very clear specifications and deliverables, in our experience software development can be more like a journey or living ecosystem which adapts and develops with the business.  Although stakeholders may have a clear vision of what they want from their application, in many cases improvements will be made once their vision is put into context. In this case and many cases, it’s nice to get a feel for the product along the way.

Agile

Agile is the most popular software development model, and for good reason with a lower failure rate (21% for waterfall vs 8% for agile).

Agile enables you to break the project up into smaller pieces, then to test, deploy and start using those pieces as soon as possible.

Any development, including agile will start with a discovery however when using agile we would obtain a vision and a wish list to build a general concept and plan for your overall project. We could then prioritise these segments based on both the high value components for your business and the functional requirements for those components. Along the way, we ensure that every piece is managed with your long-term goal in mind to mitigate the risk of revisiting the previous development segments.

In the agile scenario we spend less time up front planning, deliver functional components sooner and at a lower cost overall. As each component is built and your vision comes into context, we have the flexibility to adapt with your business requirements as they evolve.

Categories
Software Development

What is a discovery

Discovery is an opportunity to discuss your unique business objectives that define the software features to support it, the technology required and the level of automation they provide.

That is why software development projects are always preceded by the so-called Discovery Phase.

WHAT IS DISCOVERY PHASE IN SOFTWARE DEVELOPMENT & WHEN DO YOU NEED IT?

Discovery Phase is the initial stage of a software project which involves business analysis and requirements elicitation, technology stack choice, cost estimation and project planning. Its main goal is to ensure a development team is 100% on the same page with your business goals and know how to bring your software idea to life in the fastest and most efficient way.

The discovery will enable us to look holistically at your development project and to account for your most ambitious goals when building the core design for your system. We don’t want to get halfway down the road of development and discover something which fundamentally changes the design already built.

DELIVERABLES PRODUCED DURING THE DISCOVERY STAGE

Discovery’s major purpose is to ensure you are moving in the right direction and understand how to transform your business requirements into high-performance code.

Like other phases of software product development, however, it is designed to produce tangible results. What are they?

Depending on the project, and the level of discovery some of the deliverables may include:

Functional requirements. A detailed description of all the functions performed by a software system which is written by and for developers (“the user account screen features a profile picture and several fields where personal data including name, phone and credit card number can be entered and edited”).

Non-functional requirements. These include usability, performance and maintenance requirements explaining how the system is going to facilitate the processes outlined in the functional requirements section.

User stories. A detailed description of tasks a user can do with the software solution which is written from a user’s perspective.

Sketches and wireframes. Creating “skeletons” of a website or app page is a great way to outline UI design requirements, specify navigation logic and determine how screens will be linked to each other.

WHAT TO EXPECT DURING A SOFTWARE DISCOVERY MEETING

A software discovery meeting will typically be arranged with key stakeholders from each of the relevant departments from which users of the software will operate. This enables each department to contribute their key requirements for the system, as well as personal preferences around operation and workflow.

It is important for all stakeholders to be involved as this can highlight differences in expected outcomes.

Technical personnel with knowledge of the current computer systems relevant to the project are also invited for the purpose of building technical specifications around data and scaling requirements.

The time and schedules are maybe difficult to accurately define but are usually relative to the scale of the development project. We would typically provide estimations on a case by case basis after preliminary discussions with project leaders in the organisation.

A typical discovery session would usually occur in the following format:

• Introduction to discovery

• Requirements overview

• Department requirements / wishlists / user stories

• Concept design suggestions / feedback

• Finalisation and wrap up including summary of project understanding and expected deliverables.

If you have any questions or would like to know how we can help you expand your possibilities, contact us now here.

Categories
Tips

Why you should stay away from ‘cheap’ software development

Everyone likes to get a bargain, but there are many things in life where you get what you pay for. When it comes to the code required to write your customized website, integrated proprietary software, or advanced web or mobile app—paying less might sound attractive, but in most cases leaves you paying more.

Code Is Not A DIY Option

The fact of the matter is, that yes—you can teach yourself to write code that “works.” However, the coding skills required to create the multi-functional software required to achieve your business goals can’t be achieved with DIY code. Not just that, but the time you invest trying to learn how to do it yourself will be wasted. You will save money by hiring a professional. That being said, please keep reading.

Quality Code And Proprietary Software Is Expensive

Cheap, quick, and dirty code is often dated, sloppy, and the functions are limited. To upgrade your code to the point of efficiency, you will need to make an investment. Your substantial upfront investments ensures that your code is integrated with your industry software, designed to be upgraded as your business grows, and will be implemented correctly. Again, your quality code will save you (and make you) more money in the long run.

Code Is An Evolving Foreign Language

To the average person code looks like gibberish, but to someone who knows their stuff, they can instantlyspot if code is basic and limited or true quality coding. As with all things digital, and as how we utilize software and digital products continue to evolve—so do coding practices. This means you need an expert who stays at the forefront of all industry advances. As with all professionals, you can’t find an expert for less.

Quality Code Brings Your Innovations To Life

Why limit your business to industry software or cookie-cutter web templates? If you have ever wished that your industry software could do more, that your mobile computing options were improved, or if you have a vision for a game-changing new digital product—quality custom code is a must! With custom code, you can bring your innovations to life. From integrated web and mobile apps designed to improve communication and optimize workflow, to advanced analytics, proprietary digital products, and more. The sky truly is the limit, so expect to invest in your new software.

Go Big Or Go Home

If you find a website whose advanced features and functions serve as inspiration for your new design and development, consider their upfront investment. For example, when getting a quote for an Airbnb style website—you might be tempted to go for the $30,000 quote over the $60,000, or $100,000 quotes you have received. Yes, $30,000 is a substantial investment—but when it comes to launching a new product or business, not so much.

Digital Security Must Be Built-In

The sensitive company, client, and employee data stored electronically within your new software can be detrimental to your brand and business. Whether internal or external, your users expect secure login, purchase, data storage, and mobile experience. It’s unlikely that your quick and cheap code will meet even the minimum digital security standards.

Ask The Right Questions And Really Listen

It’s tricky knowing what to ask, because code is not your area of expertise. Think of code like you would other high-value investments. For example, most homeowners would rather pay for quality home maintenance and repairs—than quick fixes or poor craftsmanship that won’t last.

Aside from the quote, you must ask your potential designer the right questions. The goal is to ensure that they fully comprehend the features and functions, as well as the goals your new software must achieve. Then, you must really listen to their answers. A quality coder will offer suggestions on how to improve and build upon your ideas, and will speak primarily to quality, integration, security, and the ease of upgrading your software as your needs evolve. A coder who just wants the job will talk less about the details, and more about their “competitive” price.

You Get What You Pay For

If you expect your cheap coder to fix their issues for free, think again. While the price point may be attractive, it may also be a sign that your prospect doesn’t really know their stuff. And once your software is complete, good luck getting your bargain hire to “fix” the things they forgot—at least not for free. A quality coder quotes you on the price required to achieve your goals, and is dedicated to ensuring your final delivery exceeds your expectations.

I can’t tell you how many times I have heard stories of businesses who have tried to save money by hiring the least expensive designer they can find, only to end up starting from scratch, and spending significantly more time and resources in the long run. When it comes to custom software design, development, and implementation—pay more to have it done right!