Category: General

  • How much does it cost to build an online platform or mobile app?

    How much does it cost to build an online platform or mobile app?

    Cost is a big factor with any investment, and software development is no different. So, how much does it cost to build an online platform or mobile app?

    The answer – it depends. You might be able to get away with $10,000 or it might cost you $200,000+.

    Yes, an infuriating and vague response, but unfortunately, very true.

    Think along the lines of “how long is a piece string?” Software development projects can be small or they can be big. This, of course, affects the cost.

    Factors that can affect cost

    There are many things that can affect the cost of software development. Here are some main ones:

    1. What features and functionality you want (and how complicated it is)
    2. Who will build it
    3. How it will be built
    4. What devices need to be supported

    Let’s look at each of these in more detail.

    1. What features and functionality you want (and how complicated it is)

    There is a direct correlation between how much you want to build and the cost. An app with 50 functions is going to cost more than an app with 10. It just takes longer to build more, than to build less.

    The next part of this relates to how complicated the functionality is. We might both define a product with 10 functions, but they may differ in complexity. Mine might have lots of different rules, require lots of information to be captured and stored, and need lots of calculations to be completed. Yours may just be displaying different types of content that has been loaded into the system. Mine will probably cost more to build.

    2. Who will build it

    It’s no secret that going offshore will get you a lower daily rate than staying onshore. You’re probably looking at a difference of $50-$75 per hour. This can add up over a large project. However, the quality may not be there.

    There is also a difference between using a freelancer versus an agency. Agencies have a lot more overheads to cover, which makes them more expensive, but they usually have better coverage of the end-to-end process, because they have staff to address all of the skill sets needed to build software.

    Another element is the experience of the developer. As expected, if you use someone with lots of experience, it’s going to cost a lot more than if you have an inexperienced one. The balancing act between cost and experience is a tough one. Depending on your budget, it may be worth the risk to give someone less experienced a chance. However, if you don’t have a lot of time to spend on the project, then you’ll need someone more experienced.

    3. How it will be built

    If you’re building a mobile app, then the question of native vs hybrid will often be raised. Native apps are built individually for each phone operating system (e.g. iOS vs Android), and in the language of those operating systems. On the other hand, a hybrid app will be built once, and then converted into apps for different operating systems. The former is much more expensive because you have to build the app multiple times, but it allows you to have a product that is made specifically for that operating system. Hybrid apps work well too – and are often a good starting point – but you have to compromise because you’re building a “one-size-fits-all” product.

    On the web side, there are lots of ways to build a platform. You can use existing platforms like Wordpress to build very functional and experience-rich applications. Or you can build from scratch. This approach can have varying costs too depending on what you want.  If you can leverage an existing platform, it’s probably going to be cheaper than building from scratch. However, down the line, you might have to replace it with something else that allows you to do all the things that you might want to do.

    4.What devices need to be supported

    The number of devices that you want to run your product on will also affect the cost. If you’re only looking at a platform that someone will use on a laptop or desktop, that’s a different proposition to having it work on all device types. Just dealing with multiple screen types adds lots of overheads. Think about the different sizes of mobile screens and you’ll start getting an idea of the effort involved. Even if your product is built to be responsive, you still have to test it on all of these devices to make sure it works as expected. If you want to support touch screens, then there’s even more stuff to design, build and test. A lot more work has to go into making your product work on multiple devices, than making it work on one.

    How much will your project cost?

    Hopefully, you’ve now got a better feel of some of the major things that affect the cost of a software project. There isn’t a standard number that someone can give you.  If you want to know how much you need to budget for, then you really need to talk to a few developers about your specific idea. They should be able to give you can indication of the cost. You also need to find out how different parts of your idea will affect the cost, and where you might be able to simplify things or reduce what you build. This might affect the viability of your idea.

    At the end of the day, you need to know what it’s going to cost to make your idea a reality. This also includes all of the other costs that you’ll incur to launch your product. To give yourself the best chance at success, make sure your budget can cover it all.

    Looking for a developer?
    Get my 10 Essential Tips for hiring the right developer for your project.
    Download it now for free!
  • Will your platform or app make money?

    Will your platform or app make money?

    The idea of building a platform or app and having this steady stream of passive income is very attractive prospect. Unfortunately, the question of how to make money from an app is not so clear cut.

    There are a lot of factors that affect success, but often the issue is that the numbers weren’t right in the first place. It seems obvious, but it happens in business – all of the time.

    In the simplest of terms (and sometimes that’s all it takes), your financial equation is going to look at two key components – revenue and costs. In order to operate and hopefully make any money, revenue (or cash in) has to exceed costs (or cash out). I’ve put it this way, because there are many startups that don’t make money until they sell their business (and when that happens, they can make a lot of money).  However, in the meantime, they still need cash to pay the bills on an ongoing basis.

    A simple way to gauge your financial success

    Success is a relative term and a very personal one, so your definition will depends on the goals you have of a platform or app. If you want to replace your income, then that’s a different measure than supplementing your income. It will also affect your approach to building your product.

    So, a very simple gauge as to whether you can make money is:

    1. Decide how much you want to make a year.
    2. Decide how much you can charge for your platform, and an average revenue amount per customer (e.g. what’s your price?)
    3. Divide how much you want to make by your average revenue per customer.

    This gives you the number of customers you need a year to reach your target. Does this number sound reasonable? If not, you’ll need to play around with the numbers to see if you can get the required price and number of customers to more manageable amounts.  It may not be possible. In this case, your idea won’t make you the money that you’re looking for.

    Now you have to think about the costs.

    If you think you can make enough money from your platform or app, the next part of the equation is your costs.  This will include the initial development costs, but you’ll also need to include the ongoing costs of managing and enhancing your product. On top of that, you have the overheads of running a business – insurance, marketing, advertising, legal, accounting, payment providers, banking, etc. It can all add up and eat into your hard earned revenue.

    The next step is to take your revenue every year and deduct the costs. If the number isn’t positive, then you won’t make money that year. As simple as that.

    You’ll then have to go back and either adjust your revenue numbers to cover all of these costs, or you’ll need to cut back on your costs, so that you can still make money.

    But when will you start making money?

    The thing about the above revenue number is that it’s your ideal number. The reality is that you’ll need to ramp up to that number – and it will take longer than you think. This means that you won’t be making all of that money on Day 1.  The important part of this means you need to have enough money to cover your ongoing costs. Don’t spend all of your money on the upfront development!

    An important cashflow indicator is called a ‘payback period’. This is how long it takes to pay back your original investment. Only then do you really start making money (after taking out your ongoing costs). Most software development projects in corporate land look for a payback period of about 18 months to 2 years. As a small business relying on your own money, this will probably be longer, as you may not have access to the same resources you need to scale quickly.

    What next?

    The above is a very simple view of figuring out if you can make money, but it will give you a quick indication of whether the numbers can stack up. For a more detailed view, talk to an accountant or financial advisor where you can get advice on a model to suit your specific business.

    The bottom line is that it’s not so easy to make money as you might think. Even the big startups don’t actually make money yet, and their worth is based on their valuation as a business. However, if you’re a small business owner looking to enhance your income in the short to medium term, you do have to have a good handle on the numbers before you start.  Otherwise, you’ll find yourself running out of money before you can figure out if your platform or app can be successful.

    Are you ready to turn your good idea into a great product?
    My idea to launch checklist is your plain-English guide to getting there.

    It’s available now for only $24.
  • 5 Foundations for non-tech people with platform or app ideas

    5 Foundations for non-tech people with platform or app ideas

    Software technology projects can be tough at the best of times, but what happens when you have an idea for an online platform or app,  and you’ve never done anything like it before?  In this article, I’ll explore some of the ways that non-technical people can get the foundations to set themselves up for success.

    As someone that’s been in the industry for a while, I can tell you that there’s no such thing as a “perfect” development project. However, if you come from a non-tech background, there will be things you just don’t know about, and frankly, it’ll make life more difficult for you. 

    Here are a few ways that you can get on the right foot:

    1. Understand the process
    2. Learn how to brief your developers
    3. Know what to build
    4. Keep on top of your development project
    5. Don’t forget the biz

    1. Understand the process

    Software and software-related product development processes are beasts in so many ways. The scope of knowledge and experience that people working in the industry have can be outstanding. Every day, I am awed by what people know and can do. So much goes on behind the scenes of tools, apps and applications that you use every day. This is not a journey where you can close your eyes and hope for the best. 

    While it’s not feasible or even necessary for you to become experts in this area – that can only happen over time – you should at least understand how the process works. You want to know what’s ahead of you and what’s expected of you. If you know how things are supposed to work, you can recognise when things are going wrong.

    2. Learn how to brief your developers

    A critical step in any product development process – not just a software one – is defining what you want (a.k.a writing requirements). When building online platforms and mobile apps, this is particularly difficult.  You have to describe your product, in detail, to someone who thinks in a completely different way than you do.

    Even the most basic digital products includes multiple features and functions. You’ll need to tell your developer what you expect each of those things to do. This means you have to become the expert on your product. There are many pitfalls and considerations when you write your requirements, and a non-tech person, you just won’t know what these are.

    Bottom line – if you can’t brief your developers properly, you won’t end up with the product that you want.

    3. Know what to build

    Along the lines of briefing your developer is actually understanding what you should be building. In software, you have an opportunity to test and learn.  

    As someone that’s not familiar with a very complex process, this presents a unique risk-mitigating option for you. Instead of pouring tons of time and money into an all-singing and all-dancing product, that may or may not make you enough money to pay off your investment – you can build it piece by piece. By knowing what to build, you have a greater chance of scaling and growing a product that people actually use. Ideally, you want to aim for the smallest possible product first 

    4. Keep on top of your development project

    Once your development project is up and running, you can’t just sit back and wait for the finished product. Ultimately, as the owner of  your product, you want to make sure your developers are doing their job. You don’t want to wait until the end to find out what they’ve built is not what you expected.

    There are also lots of things along the way that can derail your project – both in terms of budget, schedule and what is delivered. Look for ways to be involved in your project. This might include regular status reports or meetings, design documents, sample screens, etc. If you can head potential minor issues before they become major problems, you’ll save yourself a lot of headaches.

    5. Don’t forget the biz

    Development costs are going to be one of the highest, if not, the highest cost that you’re going to have to get your product to market. The problem is, this often makes people forget about all of the other things that are needed to launch. 

    There are legal considerations around terms and conditions, and privacy. Make sure you protect yourself in terms of insurance and business structure. From an operations point of view, you also have to think about how to support your product – how will people contact you if they have a questions or a problem. An online platform or app is a 24 x 7 business so you need to think of the best way to handles inquiries. 

    The point is that your product is more than the platform or app you want to build. Products are often successful because of all of the other things that are needed to make it work.

    The bottom line

    Non-technical people build platforms and apps all of the time. 

    Sure, it would be less expensive if you were a developer, but then you probably wouldn’t have all of the other skills needed to launch and grow a product. 

    Gone are the days when you hire a developer, and trust that you’ll end up with what you want at the end. In these competitive times, knowledge is power. The more you know about software and product development, the more power you have to control your destiny. 

    Looking for a developer?
    Get my 10 essential tips for hiring the right developer for your project.
    Download it now for free!
  • Why you shouldn’t always rely on a recommendation

    Why you shouldn’t always rely on a recommendation

    Getting a recommendation from a friend or an acquaintance is a great way to find people or things – a plumber, a builder, a lawyer, a restaurant, a product, etc. Whatever you need, someone out there has a recommendation for you. In a previous article, I talked about using referrals to find a developer, and in today’s article, I’m going expand on why you shouldn’t always rely on those recommendations – especially when money is involved. When you’re building a platform or mobile app, you need people and tools to make it real, so you need some way to find these things. This article will talk mostly about people, as it’s a lot harder to ditch them when things go wrong – that’s what makes relying on those recommendations a bit trickier.

    Not all recommendations are created equal

    The first thing to remember is that not all recommendations are created equal. It depends on where the recommendation comes from. If you ask your partner or best friend, chances are, the recommendation is going to be fairly reliable. There’s a lot at stake for the person making the recommendation. They’re not going to recommend a dud – your personal relationship is at stake. If you rely on recommendations from online groups and forums where you don’t know the person, how good can that recommendation be?

    However, knowing someone personally doesn’t guarantee success. What you know of someone personally is very different from knowing him or her in a professional capacity. I’ve talked to so many people who hired developers based on personal relationships – and most didn’t work out.

    The next thing to note is that the recommendation may not be right for you. Imagine a friend tells you about this great restaurant – “you have to go there!” she says. “The food is great, the service is great, and they do really good cocktails”. Sounds good right? You go to the restaurant, and you don’t like the food. It’s expensive for what you get, and you have a really bad waiter.  So, it happens – not all recommendations turn out the way you expect.

    That’s the risk with recommendations. It’s subjective. What worked for someone else, may not work for you. There are many reasons for this – experience in different areas, size of the project, different services/tasks required, different expectations, conflicting personalities, etc. The list is endless. So, while a recommendation is a helpful, it may not be your holy grail.

    So, what can you do to make sure the recommendation is a good one?

    Heard of the saying “Buyer beware”? Well, the same applies when you get a recommendation.

    As with anything in life, researching the alternatives and doing some due diligence is key. Of course, the amount of effort you take to do this depends on how big a cost you’re looking at. If you buy something for $5 and it doesn’t work, then the risk of not doing any research is low. However, if you’re looking at spending at least $10K with a developer (often more), then it’s probably worth taking some time to see if it’s a good fit.

    Even though you’ve received a recommendation, you still need to check them out. Look at their website – do you like how it looks? See if they have examples or case studies of work that they’ve done – is it comparable to what you’re trying to do? Search for reviews. Look at their social media pages. Interview them. Get references and contact them. Basically, you need to apply the same due diligence as if you were hiring someone that didn’t come from a referral.

    Often friends or relatives will develop platforms and apps on top of their day jobs, so it’s a little bit trickier. They won’t have websites or past references to guide you. In this case, you might look at their professional background on LinkedIn. Does what they’re doing in their day job look anything like what you want them to do? How much do you trust them to do the right thing for your business?

    In many cases, it might be better to look at a few recommendations and make a decision between them. This has the added advantage of allowing you to see how different people and companies do things, so you can get a feel for what works best for you. You’ll also get to compare prices, and see what approach they’re recommending.

    Now what?

    A recommendation is a great place to start when looking for people and things. They can save you hours of hunting around, which cannot be underestimated. The lesson here is to approach with caution.

    Recommendations should only be about saving time on that first step of finding a shortlist of people to evaluate. They shouldn’t be a short cut for the whole hiring process. Given the importance of finding the right developer for your project, don’t rely blindly on recommendations. Consider the source and do your own checking.

    If you want a step-by-step checklist for hiring a developer and for turning your good idea into a great product, then my Idea to Launch Checklist is your plain-English guide to getting there. It’s available now for only $24. Click here to learn more.

  • Get from “idea to launch” with my new checklist!

    Get from “idea to launch” with my new checklist!

    If you’ve got a great idea for an online platform or mobile app, but you’re not sure where to start – you’re not alone. Tech can be intimidating for those that have never had any experience with it before. Sometimes you want someone to guide you through the process – but you just can’t afford to hire someone to help you.

    The good news is that building an online platform or mobile app is a process.  This means there are clearly defined activities that you can follow to reach your end goal. Once you know this, the whole thing becomes more manageable – you just have to take it one step at a time.      

    Introducing the idea to launch checklist

    Today, I’m pleased to introduce the “idea to launch checklist”. This downloadable checklist contains “must-know” tasks in 15 core areas, so you can turn your good idea into a great product. It provides a plain-English roadmap for your journey. You’ll see the main activities for developing a product, and the tasks involved in each step.

    The idea to launch checklist came about as a way to take non-technical people through the creation of a digital product. Like the design and manufacturing of any product or service, platforms and apps have their own brand of jargon and their own unique complexities.  This checklist needed to be written in a way that anyone could follow.

    I understand that not everyone wants to be an expert in software development. Business owners and working professionals certainly have enough things to do and learn! This checklist has been designed with you in mind. If you’re serious about building your own digital product, then the information in this foundational checklist is definitely in the “need to know” bucket. 

    Did you know that on average only 16.2% of software projects are completed on-time, on-budget and with the features and functions originally requested?

    Having worked on technology projects for almost 20 years, I’ve learnt a lot about software development – to a point where it’s mostly routine and I don’t have to think about what to do. Throw in 8+ years in product management, and there’s all of this experience that I took for granted.

    It made me realise that this lack of knowledge is costing people money.  I’m sure people would learn a lot from their experience, but I think they would prefer not to spend so much money on those lessons!

    As someone that’s been doing this for so many years, I really want to help people avoid this situation. So, I’m sharing my experiences and knowledge with people that have had their “light-bulb” idea, and are ready to do something about it.

    Here’s a taste of what you can expect from my checklist:

    • 21 ways to evaluate your idea. Let’s be real – you need to know if you’re backing the right horse.
    • 20 critical steps to finding the perfect developer. This is not the time for speed dating.  A bad decision will cost you time and money and could even delay your product going to market.
    • Plus 25 tasks that will ensure your product testing is rigorous and effective…. If you’re really going to do this, you want to do it right.

    Think about it – you can’t ride a bike the first time you try it. In fact, before you perfected riding on two-wheels, there’s a good chance you rode a tricycle or had training wheels. You also probably fell a few times.  Maybe you could only make it to the end of the driveway before putting your foot down. Eventually though, you made it to the end of the block and around the park a few times.  

    Building digital products is much the same as this. That’s just the way life is. It often takes a few goes around the block before you’re comfortable with what needs to be done. You can try it with two-wheels for the first time without the training wheels, or you can get some help to make it easier on yourself.

    This foundational checklist is all about action. I want to see you get that platform or app built, and I want you to get there in a straight-line path. So, if you’re ready to build your platform or app, click here to find out more.

  • What kind of business do you want to be?  (Startup vs Small Business)

    What kind of business do you want to be? (Startup vs Small Business)

    This week’s article came about as I was thinking about the types of people that I want to work with, and how to describe them. If you decide to start your own business, are you a startup, a small business or something else entirely? Does the guy who opens a takeaway restaurant down the street call himself an “entrepreneur”? Is a contractor a “freelancer” or a “small business”? What you call yourself and how you relate to terms like these is an important part of the approach you take in building and growing an online platform or mobile app.

    The word “startup” gets thrown around a lot in mainstream and social media, but it’s a term that can be misunderstood and create the wrong expectations. In this article, I’d like to highlight some of the differences between these two terms, and why you should think about what you want your business to be.

    Startups

    According to Startup Muster, an organisation researching the Australian startup ecosystem, a startup is “an early stage business that has a large addressable market that utilises technology to capture that market quickly”.  Startups tend to have lofty ambitions that lean towards world domination, which mean they have some distinctive characteristics:

    1. High-growth with large, long-term revenue and profit potential that requires large upfront investment
    2. Potentially disruptive where existing problems are solved or business models are created, which are totally different and innovative (or they are copying those that have done this recently)
    3. Seek funding from external parties such as angel investors and venture capitalists
    4. Have an exit strategy whereby they sell their business and probably move onto a new one

    Small businesses

    On the other hand, small businesses lean towards some different goals and different ways to get there:

    1. Slower growth with short-term revenue and profit goals; where they want to make money as soon as possible
    2. Platforms and apps that are not necessarily new or disruptive, but have a sufficient market to generate revenue
    3. Initially seek funding from family and friends, loans and grants
    4. Don’t have an exit strategy; rather the business should generate the income that they’re looking for

    Why I’ve been avoiding the word “startup”

    I’ve tried to avoid using “startup” in relation to the people that I want to advise because I feel there are tons of resources and options out there to help those that want to go down that route.

    Instead, I really want to help those wanting to create small businesses from their platform or app.  There are loads of you out there!  You might be looking to grow revenue in an existing businesses or looking for a change from your corporate role. The people that I can help the most may not identify as entrepreneurs or even a small business owners (yet!) All of these people are looking to generate immediate revenue with the aim of replacing or growing their current income.

    What does this mean for you?

    If you’re an existing business looking to build a platform or app to grow your business, then this might be a prompt to rethink your overall strategy for what you want to be and where you want to go. How much are you willing to invest in your platform or app? Being big requires a much larger upfront investment. Do you have the resources to do this?

    If you’re thinking about going out on your own, then this really applies to you. Do you want to be a startup or a small business? The approach you take to develop your platform or app will be completely different based on the choice that you make. Think about your reasons for going out on your own and building your product. Which of the above definitions aligns most with your reasons?      

    Regardless of whether you want to be a startup or a small business, having clarity about your goals will improve your chances of success. So, decide who you want to be, and go about making that dream a reality!

    Are you ready to turn your good idea into a great product?
    My idea to launch checklist is your plain-English guide to getting there.

    It’s available now for only $24.

  • Waterfall vs Agile: An intro to development methodologies

    Waterfall vs Agile: An intro to development methodologies

    Waterfall and Agile are the two most comment methodologies used to build software (e.g. the programs and components that make your platform or app work). In a previous post, I went through the activities involved in software development.  These include requirements, design, build, test and implement. A methodology is the way in which those activities are completed.  It’s the process that you follow to complete the work required to build a platform or app. When you start working with developers, the topic of methodology will most likely come up, so I thought I would review these with you in this article.  

    Today, software is usually developed following one of two methodologies – waterfall or agile. In both methodologies, all of the activities in the software development still need to be completed – the difference is in how they are completed. To recap, the activities in software development are outlined in the diagram below:

    Waterfall

    Waterfall is the traditional software development methodology. In waterfall, you complete one activity at a time before you go onto the next one:

    Here, you start with defining what you want in the requirements phase. Once your requirements have been fully-defined, you go onto the design phase. After your solution has been designed, you go to the build phase. When the build is completed, you test. Finally, once the solution has been tested, it’s implemented.

    Since you must finish one activity before going onto the next one, waterfall requires that you know exactly what you want to build up-front. This means that the requirements for your platform or app have to be quite detailed. The benefit of doing this is that when you know what you want to build, you can get a fairly accurate estimate of how much it will cost.

    The challenge with waterfall is if you come up with changes or additional requirements during the project. In extreme cases, you may have to go back to the design phase and re-think the solution. This often results in the project costing more and taking longer to complete. However, in most cases, if you’ve thought through your requirements, you can get a cost and time estimate for making the change that won’t have too much impact on your project. Alternatively, it becomes something you add shortly after launch.

    Agile

    Agile is a modern methodology that promotes flexibility. There are actually a few different methodologies that fall under the agile bannerd, but the most popular is called “scrum”. In agile, you still need to go through the processes of defining what you want, designing a solution, building it, testing it and implementing it. However, some of these activities are now done in parallel:

    You start with high-level requirements of what you want to build and this is broken down into parts that are completed over a series of “sprints”. A sprint is generally defined by a fixed period of time, so you determine the contents of a sprint based on what can be completed in that time.

    During a sprint, it’s a collaborative process to flush out the details of what you’re building. You and the development team work together (at the same time) to design, build and test each part. Implementation can occur at the end of each sprint or at the end of the project. An important distinction to make here is that an implementation, doesn’t mean that the functionality is made publicly available. It’s basically saying that the software is in a state that it’s finished. You may complete multiple sprints before you’re ready to actually launch the functionality to world.  

    The important part of agile is the element of collaboration. The idea is that everyone is working on a part together, so as you talk about what you want, the designers and developers are figuring out how it will work, coding it, and then getting you to test it out. Given the focus of flexibility, there may be multiple iterations to get it right. It requires a lot of commitment from you to make decisions quickly so that the team can keep going. Also, if you run out of time in a sprint, any things that aren’t finished need to be moved to the next sprint.

    The tricky thing with agile is that the quotes that you get will be based on high-level requirements. This means that as your project evolves, you may find more and more things that need to be included or the building of your platform or app may be more complicated than originally estimated. Your project will end up taking longer and cost more to complete. Contractually, it’s also harder to hold your developers accountable to what is delivered, because you don’t have detailed requirements to include in the contract.  

    So, which methodology should you use?

    If you’re just starting out in software development, the concepts of “requirements”, “design”, “build”, “test” and “implement” are all still new to you. You’re probably not sure what you have to do and you’ve got limited funds, so you want to know that your product will get built for the amount that you’ve allocated. If you have to spend time ironing out what you want to build with your developers, you’ll pay for that privilege. So, in this case, I would go suggest following a waterfall methodology.  

    This is probably going to be pretty controversial with some of the developers and agencies that you come across. However, I believe that agile works best with a trusted team (like a co-founder or full-time employee scenario), where you’re not counting the hours to get something done. Everyone on the team (including you) needs to know what to do to make each sprint count. You don’t want to run out of money before you finish building your product! You’re also dealing with a very small team – probably 3 or 4 at the most. Agile has more benefit with larger teams where people are working on different, but related things, at the same time. If you’re dead set on agile, I suggest switching after your initial launch. You and your developers will be more comfortable working together and it’ll be a lot easier to work in an agile way.

     I do have a caveat on this. I also advocate starting with the smallest possible project that you can. It’s much easier to start small and build on something that already exists. Compare that to starting with a massive project, which will carry with it a lot more risk. Remember that you can always implement without launching, so the waterfall approach can become pseudo-agile with lots of small projects. This will allow you obtain some of the benefits of agile, while allowing you to gain experience on how software development works and to get a more accurate estimate of the costs.      

    So there you have it – an introduction to waterfall and agile.  A basic understanding of these methodologies will give you some context into how developers and agencies build platforms and apps.  If you have any questions about this, please pop them in the comments below.

    Looking for a developer?
    Get my 10 essential tips for hiring the right developer for your project.
    Download it now for free!
  • The Story of the GPC Logo (and what it means to you)

    The Story of the GPC Logo (and what it means to you)

    For today’s blog post, I thought I’d share a story with you. This one, like most stories, comes with a lesson for you about building and growing your web platform or mobile app.

    The story begins about ten month ago, when a young (ahem) lady decided to go out on her own and start a new business. Even though a lot of people are shunning business cards these days, this lady decided that they were still worthwhile for handing out at networking events (and to give to family and friends!) So, to start, a logo and branding needed to be created.

    As most marketers will tell you, to create your brand, you need to understand a bit about who you are, what you want to do, what you stand for, who you plan to sell to, etc. All of these go to influence some important visual elements of your brand – the name of your business or product, the colours you use and the fonts that you pick.

    A logo – basically consists of some colours, and maybe an image and some text. Some might even have a picture. Seemingly a simple thing – but it says so much about your business, which is why it’s so important. You want people to say nice things about you!    

    There are lots of graphic designers out there who can help you come up with a brand and logo. However, if you’re even slightly creative or have a limited budget (like I did), then head to Canva where they have a category called “Logo” to get you started.  Canva basically allows to design and create visual things – think business cards, posters, presentations, social media images, product labels, etc.  

    People can spend ages coming up with a brand and logo. Lucky for me, it was fairly straight-forward. A flick through the available logo templates in Canva, some tweaking of colours, a change of font and voila, I had the start of a logo. I showed it to some trusted advisors (a.k.a. my artistic friends), updated a couple of things and I was done!

    What made it easy for me was that I knew I wanted a circle of some sort in my logo.

    “So why did you I want a circle in my logo?”, you might ask!

    Well, I wanted to reflect the circular nature of the software and product development processes. Most people think that you start with an idea for a web platform or mobile app, build it, launch it and then you’re done. In reality, the development never stops – which is why we call both software and product development – “lifecycles” (For more info on these processes, check out this article).

    Once you’ve launched your app, you find yourself in a constant cycle of updates. Some you have to do (e.g. operating system upgrades for mobile phones, new legislation, etc.) and some will be driven from your customers, and your business strategy and processes. If you’ve already spent a ton of money building your app and the thought of spending even more money on development makes you cringe, I’m sorry to tell you that you might have to revisit your numbers to fit this in. However, for the most part, these changes are actually a good thing – and it’s what makes software and product development pretty exciting.

    There’s a good bet that when you launched your product, the product that you ended up with is at least a little bit different from your original idea. You’ve learned a lot along the way and now it’s time to take your product to the next level! The cyclical approach to development ensures that you can continue to improve and grow your product. Pick the right changes to make, and your product will help you to achieve your goals.

    The circle in the GPC logo is not a solid one.

    Did you know that there are a lot of different ways that you can draw a circle? Canva certainly has a few! So, how did I end up with this one?

    Did you know that research suggests that only 16.2% of software development projects finish on-time, on-budget and with the features and functionality requested? (Chaos Report, The Standish Group, 2014) What an appalling stat!

    Despite the number of apps and web platforms that get created every year, software development is not a perfect science. There are so many places where things can go wrong – not defining your product well enough, picking the wrong things to build, hiring the wrong developers, testing the wrong things, not testing enough, testing too much… the list is endless. With so many potential points of failure, it’s definitely a tricky road to navigate.

    So, based on all of this, I wanted the GPC circle to reflect the imperfect nature of this process. It’s also why one of my main goals is to help my clients successfully complete their development projects.

    And that’s my story…

    The GPC logo was built to be simple, but meaningful.  I hope that my little story gives you some insight into building and growing your platform or app.

    The next time you see the GPC logo, think about how you’re going to prepare for the cyclical nature of developing your product, and how you can address some of the potential pitfalls along the way so that you can have successful development projects.

    If you want to discuss how you’re going to navigate the road to building and growing your app, sign up for a free 30-minute discovery session* to make sure you’re on the right track.


    * When you sign up for a discovery session, we’ll also add you to our mailing list so you can receive emails from us (with your consent). These emails will include news and updates, occasional offers and promotions, and exclusive content and resources to help you on your development journey. You may also receive follow-up emails in relation to the discovery session. We will not spam you. If you don’t wish to hear from us anymore, simply select the unsubscribe option at the bottom of any email that we send to you. To view our privacy policy, click here.

  • What’s in a web application?

    What’s in a web application?

    You have an idea for a web application (a.k.a app or platform), but what does that actually look like? If you think about building a house, you have a foundation, a frame, walls, a roof, plumbing and electrical wiring.  All of these things are important to the finished product.  You should think about your application in the same way.  It’s made up of a bunch of different components.  Depending on the type of application, these components will be needed to make your product work.

    Since, I’m always trying to find ways to explain technical concepts to people with non-technical backgrounds, this article is going to take you through the components of your future product.  This will help you to understand what you’re aiming to build. Mobile apps are slightly different, so I’ll look at that in another article.

     Here’s a simplified diagram of your web app:

    As I started to create this diagram, I realised that there were a lot of things we just take for granted. We turn on our phones, open up a web browser, go to a website and it all just works. It’s obviously a little more complicated than that! So, when I say a “simplified” diagram, it really is! For now though, it’ll suit my purpose for explaining some basic concepts to you.

    Some of these explanations may sound obvious, but for the sake of making sure that everyone is on the same page, please bear with me.  

    Device (hardware and software)

    Let’s start at the top of the diagram. The device (your phone or computer) is a physical piece of equipment through which you access your application. This is called “hardware”. When you turn on your phone or your computer, the thing that makes it work is called “software”. Without software, you phone is like a paperweight – it does nothing! The software associated with making the hardware work is called “operating system” (or O/S) software. The individual programs and apps that allow you to do things on your phone or computer (e.g. a web browser) are also called “software” or “applications”.

    Software is a collection of programs that provides instructions to do something and it can be written in many different coding languages. Programs themselves are a collection code used to perform a function. The code uses specific terms and formats to instruct the device on what to do – this is dictated by the coding language chosen. I’ll save a review of different programming languages for a different post as there’s a lot to cover there.

    Front-End

    The “front-end” is composed of all of the things that you see on the screen. It also includes some smarts to help you navigate the app, capture information and trigger activities within your app.

    The level of complexity on your front-end will depend on the types of things that will done via the screens. For example, if you’re just displaying information that never changes, then that’s a lot easier than a page showing search results on a map; where you can zoom in and out on the map, select an object and view information about it.

    Back-End

    The “back-end” refers collectively to the programs and data storage for an application.

    Back-end Programs

    Back-end programs do the heavy lifting – they allow you to do things like store and retrieve information, make decisions, and perform actions by applying logic to information provided by the front-end. Think of it as the engine behind what you end up seeing on a screen when you make a request for something.

     Some examples of back-end programs include:

    • Creating an new user account
    • Validating a login request
    • Retrieving a list of items based on search criteria
    • Calculating values for a report
    • Making a decision on a customer appliction

     As you can see, the back-end is just as important as the front-end. Together, they work with some sort of data storage facility to make your app work.

    Data storage (a.k.a. a database)

    Information that is captured by your app needs to be stored somewhere so that it can later be retrieved, displayed or processed at a later date. This prevents a person from having to re-enter information over and over again. The data held in the database can also be generated by the app itself. This might include things like the date the information was entered or an internal status for a person’s account.

    For web apps, data is usually stored in a centralised database where the information for your app and all of your users is held in a single place.

    There are alternatives to a “database” which is why I have termed this “data storage”. For now, the important thing to know is that data for your app will be stored somewhere and programs will be written to access and update it.

    Application Programming Interface (API)

    So how do the front-end and the back-end talk to each other? This is where APIs come in. An “application programming interface” is a program that allows two applications to talk to each other. Those applications may belong to you or to someone else.  APIs take a request from one application and provide it to another application to process. It also provides the response back to the original application. In your case, this conversation will mostly take place over the Internet.    

    Some APIs are standard – for example if you want to embed a Google map into your app or if you want to add email addresses to a MailChimp list. This allows companies to establish consistent methods for applications wanting to communicate with them. Think of them as a published manual with the available ways to contact an application and the functions you can access. This manual will also tell you how to make the request and the format that is required.

    Other APIs, like your application, may require some customised coding to work. However, for most functions, there’s probably already a template that your developers can start with to achieve the required result.

    Host (hardware and software)

    Your app (front-end, back-end and datastore) has to be loaded onto a piece of hardware to work. Otherwise, they are just letters and numbers on a page. That piece of hardware is called a “server”. It’s a physical device that has the capacity to run programs, manage all of the requests being sent to it, and store data. These machines can range in size and the specifications will depend on the needs of the application and the number of people accessing it. These servers also have software that allow you to monitor their performance and manage the content on them (think uploading and downloading files and programs, and managing security).

    As you can imagine, at the beginning, most of us will not be buying and running our own servers, so we’ll use companies that specialise in this. These companies are called “hosts”. They offer services, called “hosting” that provide the hardware (e.g. servers) and the software to run your app.

    Hosting and choosing a hosting service deserves a whole article of its own, so I’ll leave it at that for now. Basically, to make your web app work and to make it available to people, you’ll need a host.

    What does this mean for you?

    So, there you have it – the components of a simplified web application. It turns out there’s a lot there!

    It’s important that you understand all of these different components so that you have a reference point when a developer starts talking about them. It also helps you to know what you’re actually building.  Finally, you now have an idea of the types of expertise that you’re looking for when putting together your development team.    

    If you have any questions or if something about this isn’t clear, please feel to let me know in the comments below.  

    Do you need some help to make your web application a reality? Send us your details and we’ll set you up with 30-minute discovery session to get you on the right track:

    * When you sign up for a discovery session, we’ll also add you to our mailing list so you can receive emails from us (with your consent). These emails will include news and updates, occasional offers and promotions, and exclusive content and resources to help you on your development journey. You may also receive follow-up emails in relation to this session. We will not spam you. If you don’t wish to hear from us anymore, simply select the unsubscribe option at the bottom of any email that we send to you.To view our privacy policy, click here.

  • Tips for building a web platform or mobile app

    Tips for building a web platform or mobile app

    Curious about how to get your web platform or mobile app developed?  There’s a lot to figure out and sometimes it helps to get a few pointers on what to look out for.  So, in order to get you going in the right direction, I wanted to share with you some tips to help you successfully complete your app-building project and to set yourself up for running an app business.

    Building products and businesses are complex at the best of times – there are lots of moving parts, so you want to arm yourself with as much information as you can. These tips will give you a glimpse into the kinds of things that you’ll have to think about to get your app built and launched.

    Here are my 10 tips for building a web or mobile app:
    1. Validate, validate, validate:  How you do you know if your idea is “great”? Is this the idea that you should be building? You can save yourself lots of time and money by evaluating your idea and deciding whether it should be built in the first place.  See last’s week’s article on ways you can start to validate your idea.
    2. Learn how software development works: If creating a web or mobile app is new for you, then you need to learn more about how they get built. There’s actually a process for doing this – called the software development lifecycle. You should find out, at a high- level, what activities and outputs are involved in this process. This will make it easier to communicate with your developers and you’ll know what you need to do and what happens next.
    3. Start small: Think of the most bare bones version of your product and build that first. You want to make sure that your product really solves your customer’s needs, wants or goals. Starting small means that you don’t spend lots of money when you don’t need to. You can get something tangible built in a shorter amount of time. You may not be able to launch this product, but it will give you something to build upon. It’s always easier to build on something that has already been built than trying to build everything upfront.
    4. Define your product in a way that a developer can understand: You may think your developer knows what you want them to build – think again. The brain of a developer is wired differently from yours – it’s what enables them to do what they do! Unfortunately, this means that you might end up with a product that doesn’t do what you want it to. Developers expect their instructions to come is a certain way, so you need to learn the best way to define your product.
    5. Focus on “what” you want to do rather than “how”: “What” describes the activities and features that your product will provide; the “how” is the design and technical solution that will deliver what you want your product to do. If you provide a “how” to your developer – that is what they will build – even though it may not be the best approach for your product. Once the “what” is nailed down, you can work with your developer to decide on “how”.
    6. Prioritise what you want to build: It can be easy to make everything a high priority – a “must have” for your big launch. The reality is that if you build everything you want, you’ll never launch. You should prioritise based on how much something helps you to achieve your goals and those of your customers and users.
    7. Find a great developer: This is one of the most important factors for a successful project. If you don’t find the right developer for your project, you face an uphill struggle to build your product. You need to find a developer that has as much interest in your product as you do. Check references and find opportunities to “test” them before you hire them. Building trust and a strong relationship with your developer is paramount.
    8. Carefully manage the scope of your project: Scope creep occurs when the size of a project increases after it has started due to improper management of changes for what you want to build. This causes the cost and schedule of your project to blow out. Track any changes that you want to make to the product and have a process in place to evaluate whether it’s really needed.    
    9. Be structured in your testing: Testing is about making sure that your product works as you expected. It’s pretty much guaranteed that it won’t – even with the best developer in the world. A new product is a complex thing and it will have problems. This means that you need to have a structured approach when you test your product.
    10. Plan for what happens after your initial product has been built: Before your product is launched, there are several things that you need to plan for including; getting a copy of your code, defining how changes to the “live” product are managed, backing up and recovering your product if something goes wrong, getting access to any admin passwords and setting up a process for managing issues. Building your product is just the beginning – there’ll be lots to do on an ongoing basis.
    Are you ready to turn your good idea into a great product?
    My idea to launch checklist is your plain-English guide to getting there.

    It’s available now for only $24.
    Any tips to share?

    There you have it. My ten tips for building a web or mobile app. Of course there are many more, but these should get you going if you’re starting from scratch. If you’ve done this before and you’ve got other tips that you’d like to share, please leave them in the comments below.


    * When you download a copy of our cheat sheet, we’ll also add you to our mailing list so you can receive emails from us (with your consent). These emails will include news and updates, occasional offers and promotions, and exclusive content and resources to help you on your development journey. You may also receive follow-up emails in relation to this download. We will not spam you. If you don’t wish to hear from us anymore, simply select the unsubscribe option at the bottom of any email that we send to you.To view our privacy policy, click here.