Tag: software development

  • What is Technical Debt?

    What is Technical Debt?

    As your developers are building your online platform or mobile app, you might acquire something called “technical debt”. There’s a chance that you’ll never be told about it – and you won’t even know what it is, so I wanted to write this article to make you aware of its existence.

    What is technical debt?

    There is no single way to build a platform or app. Like writing an article, people will approach it in different way, and as a result, the final output will achieve the same result but actually look different.

    The choices made during development – either by accident or deliberately – create technical debt. Technical debt is the amount of re-work that you may have to do to your product in the future to get the functionality that you want.

    Why does it happen?

    There are lots of different reasons why technical debt gets created. Here are two that you’re most likely to come across:

    1. Initial decisions related to the overall technical approach
    2. Incomplete or changing requirements

    Both of these can create technical debt that has a great impact on your future plans.

    1. Initial decisions related to the overall technical approach

    Usually, you’ll make a deliberate choice about how you will develop your platform or app.  The overall approach taken can create technical debt.

    For example, one way to build an online platform is to use an existing platform as the basis for your new product. Wordpress is a common approach. Alternatively, you can have a completely customised solution. They may both give you the functionality that you want, but there are pros and cons for each. For mobile apps, the decision is often between using a hybrid platform or building from scratch as a native app.

    This technical decision is often based around money. You want to spend the least amount of money possible to get you to market, so that you can start making money. There are other factors too, but most will boil down to the initial costs and development time.

    2. Incomplete or changing requirements

    Developers can only make technical decisions about what they know right now. If you don’t have a complete picture of what you want, or if you add or change something down the track, then there’s a risk of creating technical debt.

    The developers will craft a technical solutions based on the requirements that you give them. If you’re thorough in defining what you want your product to do, and all of the nuances around it, the developer now has more information to work with.

    Imagine you tell a builder that want a single-storey, two bedroom house – and then halfway through you decide you actually want a 2-storey house. All of a sudden, the builder has to change the way in which the house is built. Some of what has been built may stay the same, but there’s a chance that some stuff may have to be ripped out and re-built.

    What does it mean for you?

    Some technical debt cannot be avoided. You don’t know what you don’t know. That becomes part of the cost of doing business.

    Another part of technical should be a conscious and informed choice that you make. You may choose to go with one option because it gets you to market sooner. This reflects the uncertainty associated with building new products.

    The final part is something that you can avoid. Be clear about what you want. Especially with an agile development methodology, developers focus on what’s immediately ahead of them. It gives you some flexibility to change your mind. However, it creates technical debt. The best case though is for a developer to be aware of what you want from the very beginning. Any re-work is a cost to your business, and it’s money that you could spend elsewhere.

    With your new awareness of technical debt and how it is created, you should now be able to start a conversation with your developer that allows you to make informed and deliberate choices about your future platform or app.

     

    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.
  • What can you do to reduce the cost of building an online platform or mobile app?

    What can you do to reduce the cost of building an online platform or mobile app?

    In my last article, I looked at some of the major things that can affect the cost of building an online platform or mobile app. This article is going to look at some of the ways you can reduce your initial costs, without severely compromising your idea and the quality of the final product.

    The most effective way to reduce costs is to look at the following:

    1. Build less
    2. Reduce complexity
    3. Build for fewer devices

    1. Build Less

    It might sound obvious, but it’s a very difficult thing to do. How do you do decide what to cut out and what to keep? Often everything will seem important, and you’ll have to make some though choices. The reality is – research has shown that 80% of functionality for custom-built applications isn’t used, so as it turns out, there might be some features and functions that you don’t need for your launch.

    There’s an important thing to note here. Building less doesn’t mean that you never build the rest of the things that you want. What it does mean is you pick the things that your potential customers and users really want. Once they start paying you, you can afford to build more. Building less has other advantages around minimising the riskiness of your project.

    2. Reduce Complexity

    This one is probably a difficult if you don’t have any technical knowledge. How are you going to know if something is complex or not? Where building less is about the number of features and functions, reducing complexity is about what goes into each feature and function. It includes taking out steps in a process, and minimising the choices and scenarios that are possible. Generally, it’s about getting the platform or app to do less in the way of processing and calculating.  By reducing complexity, there are fewer places where things can go wrong.  When things go wrong, you have to pay more money to fix them.

    3. Build for fewer devices

    As I mentioned in my previous article, the more devices you build for, the more it costs. While responsive design deals with some of the differences in screen sizes, there will be cases where there just might not be enough space on a mobile phone screen. This means that you may have to adjust your design for mobile devices, and that means more designing, more coding, and more testing. With tablets and phones, and even laptops, your developers will also have to consider interactions with a mouse versus a touch screen.

    Why should you look to keep your costs low?

    No one wants to spend more money than they need to. However, people often go to a developer with a laundry list of things to do, and then get surprised by the amount they’re quoted.

    You might find that to reduce your costs, you may only need to do some of the things above.  By spending less money upfront, you can use the extra dollars in valuable updates after your product has launched.

    The more compelling reason for reducing your costs is actually around the uncertainty of making the money back. The more money you spend, the more you have to sell to make your money back, and to ultimately become profitable.

    Even if your most pessimistic business plans show you making money, it’s worth going through this exercise to see where you can cut the fat.  This can only mean more money in your pocket, so what have you go to lose?

    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.
  • 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!
  • Do you really need a mobile app?

    Do you really need a mobile app?

    Mobile apps are the ‘in’ thing. About 119,000 new apps were added to the Apple App store last year. However, the question I always want to answer is – do you really need a mobile app to make your idea a reality?

    Why would you make it an app?

    Apps are very powerful things. You can do so much with one. Just look at your own phone and you can do anything from take and edit a photo, create videos, pay someone from your bank account, buy something at a store, listen to music – even make a phone call!

    If your target user is on the go and the problem that you’re solving for them involves activities away from a desk, then an app works. Also, if you need to use some the standard features on a smartphone – like the camera, someone’s contacts, GPS location, a microphone – all these things make a mobile app worthwhile. Being mobile has opened up lots of opportunities to take things on the road, but it’s not the only way for people to do things.

    When it doesn’t make sense to build a mobile app

    In many cases, people have an idea that they want to deliver on a mobile app when one isn’t required. Sometimes, it may be that there is already an existing tool that can solve the problem, but a person just assumes an app will fix it. Other times, it’s just a matter of understanding the technology and what it’s good for.

    If the problem to be solved involves a person sitting at a desk, then a web-based platform may be more appropriate. Displaying things on a computer or laptop screen has lots of advantages. The size of the screen fits more stuff – this makes it easier to do more complex tasks. If there is a lot of content to display – tables, text, images, video – then it’s easier to do this on a big screen. Ever tried to work on a spreadsheet from a mobile phone?! If your idea involves anything like that, then skip the mobile app!

    Why you want to avoid building a mobile app

    The main challenge with mobile apps is they can get expensive to build, run and maintain. Without getting into the different ways of building a mobile app, the costs come from having to develop and test for different phone operating systems (mainly iOS and Android) and screen sizes. Also, you have to update your app with each operating system update. This all adds up over time.

    The other issue is that people expect a lot from apps – but they don’t want to pay for it. When was the last time you paid more than $2.99 for an app?! If I look at the apps in my own phone – minus a couple of games – I’ve paid for about two of them. Sometimes the economics of mobile apps means you have to sell a lot of them to cover your costs and make money, which doesn’t make it an attractive opportunity.

    If mobile access is key, then there are other options other than a mobile app which you can explore. There are “mobile web apps” or “mobile websites” (<ahref=”https: www.qantas.com”=”” target=”blank”>qantas.com is a good example).  These websites are designed specifically for mobile devices, but require an Internet connection.  If you open the website on a laptop or computer, you’ll see a different screen versus opening it on a phone.  It will look more like a mobile app, and in some cases, there may be different functionality.  There are also “progressive web apps” that can be downloaded from a website onto your phone.  They can be used off-line, but more importantly, then can provide a seamless mobile app experience without having to be developed as a traditional app. So, before you go out and ask a developer to build you a mobile app, ask yourself – do you really need one?</ahref=”https:>

    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.
  • What does CRUD mean?

    What does CRUD mean?

    When you have an idea for a platform or app, you might start paying closer attention to ones you use today, or new ones that do similar things to what you want to do. What you might notice is that there are some common things that you do in each of them. If you’ve added something, viewed a list of things; maybe even updated or deleted something, then you’ve performed a CRUD operation. In this article, I’ll explain what they are and why you need to know about them.

    What does CRUD stand for?

    CRUD stands for Create, Read, Update, and Delete. These words refer to some very common things that you do on a daily basis. You add (or create) a post for Facebook. Then you view (or read) other people’s posts. Maybe you edit (or update) an image in Canva, or delete one that you don’t like. If you start thinking about your interactions with different platforms and apps, you’ll find these are functions that are common to them all.

    Seems simple enough, how do you use them?

    Understanding what CRUD means is most important in the defining what you want your product to do. It relates to what the users in your platform or app should be able to do. As you think about the different processes that your users will go through to achieve their goals or solve their problems, you should also think about what CRUD operations they should be able to do.

    It might seem simple to say – “oh yeah, they should be able to do all of those things”, but sometimes, it doesn’t end up that way. Maybe some users should be able to do all four things, but other users should only be able to view. What happens if you update a master list? How should the updates be distributed to users? What are the implications down the track if a person can delete something? Is it a permanent deletion where it is gone from the system altogether? Or maybe it’s just a case of “hiding’ it from the user to make it appear like it’s been deleted.

    All of a sudden, you now have to start digging deeper into what you want your platform or app to do. For every feature and function, you should be thinking about what your users will be doing, but also what you want them to be able to do. Take some time to ponder all of this, as you’ll find it opens up a lot of complexity in your system that you might not have been aware of before.

    What if you don’t do this?

    The problem is that CRUD operations seem so obvious to people, that they either don’t even think about them.  Alternatively, they subconsciously assume that their developers will build them anyways – because they’re a part of every system they’ve ever used.

    The thing is – developers can only estimate and build based on what’s specifically stated. It’s hard for someone to anticipate everything that’s not written down. If there’s something specific in the way you want your platform or app to work that’s not obvious to someone, then your developer either won’t build it, or they’ll build it in a way that you didn’t want. Who can blame them though? They’re not mind readers, and they’re running a business too – so the only way for someone to deliver to expectations is to have a clear definition of what needs to be built.

    Imagine that you have a five features in your platform or app, and you only define your product with the create and update functions, but not the read and delete ones. All of a sudden, you’ve only covered 50% of what you need. Fast forward a few months, and your developers will be asking for more money!

    So, when you’re looking to turn your idea into a product, consider your CRUD operations. Even though they sound simple, they have a big impact on your development project both in terms of the features that are developed and the overall cost.

    Looking for a developer?
    Get my 10 essential tips for hiring the right developer for your project.
    Download it now for free!
  • Agile – The buzzword for software development

    Agile – The buzzword for software development

    Everywhere you turn these days, people are touting the virtues of agile. Large corporations are adopting it in droves, and you won’t find a IT-related job spec that doesn’t ask for it. But what does agile really mean, and should you really care?

    When you want to get a website platform or mobile app built, your developers are most likely going to tell you that they use “agile”, as if it should be this massive selling point for you.

    It is and it isn’t. In this article, I’ll explain why and also explain what it means to you.

    What is agile?

    Agile is a software development methodology. It’s mainly an approach that developers use to build websites, apps and other complex technology systems. There are different types of agile too. You might hear words like Kanban or scrum. These are different ways that people implement agile.

    What does agile involve?

    Agile is about people working together collaboratively – all at the same time – to define, design, build and test software. In true agile, this means you, developers, designers and testers are working together on a daily basis to get your platform or app built.

    The idea is to build quickly and deliver often.  It’s meant to reducing your immediate upfront costs, so that you can get your product into the hands of real users as soon as possible. This allows you to get feedback on your product; which in turn, helps you to decide what features to add next.

    Sound good? What’s the catch?

    1. Only the development team is involved

    Generally, when developers and agencies talk about agile, they’re only talking about their team – not you. This means that you don’t end up being involved in the day-to-day, and as a result, you sometimes only end up seeing something at the end of each delivery – after it has been built. As a result, you lose the collaboration and synergies that come from working with someone on a daily basis.

    2. The potential for rework

    Unless you’re involved in the day-to-day development of your platform or app, or you receive a wireframe for each screen in it, there’s a good bet you’ll end up having to pay for some rework.

    This is because you won’t get a document that gives you a complete view of how your product will work. You’ll probably see bits and pieces as the project progresses, but you won’t get a whole end-to-end view until the project is done. This means that things might need to be re-visited, and re-worked as your project progresses.

    Also, when your developers don’t have a full view on what comes next, and they’re building under short timeframes and tight budgets, you can end up with something called “technical debt”. This means that the system has been designed to deliver what you want today, but it may not be the best way to do it, and it may leave you with a bunch of rework to do down the track.

    3. Inaccurate estimates

    The idea of agile is that you want to be flexible, and spend your time doing rather than documenting stuff. That’s not to say that there’s no documenting. It’s about being smart about it. You don’t spend writing a massive document with everything that you want the product to do, and there isn’t a massive document showing you how the developers have designed your product.

    Instead, you start with something high level and expand it as the project progresses. However, without these documents, it’s very difficult to get an accurate estimate for how much it will cost to build your whole platform or app.

    Developers and agencies get around this by having a bit of a discovery period.  Here, they try to understand as much about your business and your product as possible. This (hopefully) gives them an opportunity to give you a more accurate estimate. However, there will still be a lot of detail missing at this stage, so you should expect them to ask for more money down the track.

    Where does that leave you?

    All of the above gets in the way of developers being truly agile. However, the alternative approaches for development, such as waterfall, have their disadvantages too.

    I believe agile truly works best when you’re not paying by the hour for your developers, and when you’re working hand-in-hand with them to ensure that your vision is transferred to them.

    The overall message is to be informed and be prepared. You want to be able to understand how the methodology works and how your developer plans to use it. This will help you to know what to ask for, and to get the confirmation you need that they are building the product you envisage.

    Looking for a developer?
    Get my 10 essential tips for hiring the right developer for your project.
    Download it now for free!
  • What’s the difference between Web Design and Web Development?

    What’s the difference between Web Design and Web Development?

    Do you know the difference between web design and web development? I often see people looking for recommendations for one or the other, but did you know that when you’re building an online platform or mobile app, you might actually need both?

    Traditionally, these two disciplines were quite separate and distinct. However, over the years, the line between the two has been blurred.  In this article, I’ll talk about both of these terms, and how they might impact your product development project.

    Web Design

    As it implies, web design primarily looks at how the site will look. Think colours, fonts, images – the general look and feel. It also considers the usability of the site. However, web design is now also so much more – which is where the confusion occurs.

    Web designers can also build websites. This often includes the marketing-focused websites that we all use for our businesses. The ones that explain who we are and what we do – these are called “static websites”. They can do this with the help of website platforms (or content management systems) like Wordpress and Squarespace, which usually have drag and drop website builders. These are further enhanced by “themes” that are essentially templates of “pre-built” websites. These allow designers to use their design skills to craft a web page for you.

    To even further extend the power of web designers, are “plug-ins” or “apps” that are essentially pre-built tools, which interact with the website to give it extra functionality. They allow you collect email addresses, and send them to your email marketing or CRM tool. They can also be as sophisticated as allowing you to have a membership section or accepting payments.

    A good web designer will also have some SEO skills as well. As a marketing tool, your static website should be easy to find through search-engines.

    Web Development

    Even with the increase in the scope of work that a web designer can cover, there are still limitations to what they can do – unless they really learn how to code. While most web designers will be able to do some front-end coding (using HTML and CSS), these programming languages focus on how things look on the screen. In order to do more complex things – you need a web developer. 

    Web developers have a different skill set. They can build a much more dynamic website that can capture information, store it, and do something with it. Developers can build applications that allow you to move and manipulate objects. All of the website builders, themes and plugins were built by developers.  This means that web developers are in a much better position to build a more specialised platform; with unique or specific features.

    Why do you need both?

    As you can see web designers and web developers do very different things. While they can both build you a website, it depends on what kind of website you want.    

    While a web developer can build you a static website, it might not look very good. This is not what developers are good at. However, if you want to introduce automation to your business, or to extend your business offerings through an online platform, then a developer is more likely to be able to help you.

    If you’re building a new online platform that you want to market and sell as a product, then you’ll probably need both. A web developer will build your platform – with all of the screens and components that you need to give you the features that you want. Meanwhile, the web designer will create the static website that you need to market your platform.

    But there’s more…

    Unless your web developer has some interface design (UI) and user experiences (UX) skills, you’ll also need one or more people to make your platform look nice, and to make it user-friendly. While, a web designer might be able to create a visual design for your platform, they may not have the skills and experience needed to design the user experience.

    The next time you’re thinking about who you need to turn your idea into a product, along with UI and UX designers – consider both web designers and web developers.  If you’re very lucky, you might find a superstar that has all of the skills outlined in this article! 

    Looking for a developer?
    Get my 10 essential tips for hiring the right developer for your project.
    Download it now for free!

  • 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.

  • How do you plan for your platform or app project?

    How do you plan for your platform or app project?

    Following on from last week’s “Idea to Launch checklist” announcement, I thought I’d share one of the areas covered in the checklist and talk about some of the tasks in it.  Today, I’m going to look at tasks in the “Plan your Project” list. Once you’ve decided that you want to turn your idea into a product and you’ve decided what you want that product to do, you have to think about how to get it built.  

    So, what does this involve? 

    The tasks in the “Planning your Project” checklist look at:

    1. Scope: deciding what you build
    2. Funding: getting the money to pay for your product
    3. People: determining who you need to get your product to launch
    4. Timelines: deciding when you want to launch and how to get there
    5. Tracking: setting processes for managing your project
    6. Risks: defining potential areas that will affect the success of your project

    Let’s take a look at these in a bit more detail:

    1. Scope:

    You know what you want your product to do, but how much do you want to build and launch at the beginning? This is your project scope. In a previous article, I talked about minimal viable products and starting with the smallest possible project. For this task, you want to think about what to include in your project now and what you want to do later. You’ll also want to think about how you’ll manage changes to the scope of your project – what happens if something new comes up while you’re building?

    2. Funding:

    This task is about figuring out where you’ll get the money to build your product. Will you use personal savings or maybe borrow from family and friends? Perhaps you can use a crowdfunding platform to get money from people that believe in your idea. Money can come from a lot of different places, so you’ll have to see what option is right for you. Be aware – unless the money is your own, it may come with conditions. You need to decide which ones are the least restrictive in both the short and long term.

    3. People:

    It’s very difficult to build any product without any help – especially a tech product. There are several tasks in this checklist related to people. First, think about creating a user group of potential customers that will be your sounding board as you develop your product.  This is critical to making sure that your product is built with your customer in mind. Also, think about the technical and non-technical people that will need to be involved in your project. What will each person need to do? Who will fill those roles? There are a set of tasks in the Idea to Launch checklist that deal specifically with hiring technical resources for your project.

    4. Timelines:

    At this stage, you might not know how long it will take to build you product. However, for business reasons, you might have a date in mind for launching your product. As you start to hire people for your project, you’ll be able to create a plan of key tasks and dates to get you to launch. You should also identify any key milestones that will be critical to meet in order to complete your project on time.

    5. Tracking:

    The key to staying on track in any project is to continually monitor your progress. The tasks in this area involve determining how you’ll do this. You might want to have a daily or weekly status meeting. There should also be a way to track your costs and where you are in your project. Finally, you want to manage any issues that might arise during the course of the project. There may be technical problems or other things that might increase your costs or delay your launch. You need a process for tracking and dealing with those issues.

    6. Risks:

    Risks are anything that might affect the completion of your project. They can be anything – the ability to get funding, not finding the right skills to do something specialised for your product, a piece of legislation that might affect what your product will do – the possibilities are endless, and will depend on your product. The point is that you need to be aware of the risks so that you can do something about them – before they cause you a problem. So, the tasks here include listing out your risks and deciding how you’re going to handle them.

    What happens next?

    The final task in the “Plan your Project” checklist is to hold a project kick-off meeting. Once you’ve got all of the pieces in place to start your project, then it’s good practice to get people together for a meeting. This is an opportunity for everyone to introduce themselves – but more importantly, it’s useful for setting expectations. You can provide some background to the project, and what you’re hoping this product will achieve. It also sets the stage for how you work together as a team.

    In the Idea to Launch checklist, you’ll also be hiring your developers as you plan your project. After that, the work of developing your product begins – both with technical tasks like designing and building, but also the business tasks of setting up your business.

    If you want to turn 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.