Problem Solving – Thinking Like a Programmer

Having read two chapters of “Think Like a Programmer: An Introduction to Creative Problem Solving”, I have an appetite for more.  I already possess some good cognitive skills for problem solving, but this book offers opportunity to further develop my capabilities.  I’ve previously undertaken a generic Neural Linguistic Programming course, which introduced me to a variety of effective problem solving techniques, but seeing these, and more besides, applied within a programming context is really helping my coding progress.

Being relatively inexperienced with object orientated programming, expanding my problem-solving skills will expedite coding advancements, and increase my progression rate along the Flutter development learning curve. I will read the rest of the book and apply the concepts to my coding practice, and discussing the content with study group members who have read it will also be useful, to
reduce the thinking time required to solve problems and make decisions in a coding context.

So I’ve put together a SMART goal:

Specific:

I will develop my problem-solving and decision-making capabilities bu applying the concepts from “Think Like a Programmer: An Introduction to Creative Problem Solving”  to my coding activity.

Measurable:

I will assess advancements in my heuristic approach in coding situations, based on my ability, and thinking time required, to identify and implement effective solutions.

Achievable:

I have the book, so the only constraint is time.  I will take the book on holiday in May, so there’s plenty of time to read it.

Relevant:

Improved speed and effectiveness in solving problems and making decisions will have a direct positive impact on my app development capability.

Time-bound:

This will be achieved by 3rd June

Market Research

The Chartered Institute of Marketing defines market research as: “The process of making investigations into the characteristics of given markets, e.g. location, size, growth potential and observed attitudes. “

Market research is often approached as a one-off standalone exercise to satisfy an immediate need. However, taking a more strategic approach enables you to continually shape and develop your market intelligence across the entire span of your product lifecycle, from concept to grave. As the old cliche goes, ‘knowledge is power”, and having an intimate understanding of your market enables early identification of opportunities and threats, and an agile response to changes in market forces, which could prove to be the competitive advantage that rescues your product from a potentially damaging situation, and turns it into a success.

Your strategic market research plan should be a subsection of your strategic marketing plan, supporting the integrated marketing strategy for your product. Just as your strategic marketing plan should be a subsection of your organisational strategy (if appropriate) contributing to the pursuit of the organisation’s objectives.

The starting point for market research should be a clearly defined set of objectives, perhaps to test your hypothesis and assumptions relating to the product and the market. Of course, the objectives will vary considerably, depending on many factors, but particularly where the product currently sits on the Technology Adoption Lifecycle Curve (from “Crossing The Chasm” by Geoffrey A. Moore).

For example, market research at the conceptual stage (not shown on the curve above, but comes before innovators) will be focused on finding and identifying potential users, and finding your unique selling point (USP) to distinguish your app from similar competitive offerings. In contrast, market research conducted at a point of maturity along the curve might be more concerned with which features the user base likes, which it doesn’t, what new features are wanted, and why. A well executed strategic marketing plan can have a significant positive impact on the length of the lifecycle of a product.

All too often, it is taken that user research = market research. While all user research is market research, not all market research is user research – it is just one element. There is so much more to be considered. Market research should be used to gain an understanding of the whole competitive environment that your app business is, or will be, operating in. There are many approaches to analysing and evaluating the market, but a good start is to employ a combination of Porter’s 5 Forces model and the STEEPLED analysis approach.

The 5 Forces model provides a framework for understanding the competitive pressures that your product and business will be subjected to, by investigating:

  1. Competitive rivalry
  2. Buyer power
  3. Supplier power
  4. Barriers to entry
  5. Threat of substitution

The STEEPLED analysis approach is a strategic planning tool that encourages a structured examination of the categorised factors that might affect your market (and consequently, your business and it’s products). This approach will help you to identify and evaluate your strengths, weaknesses, opportunities and threats (SWOT) at both organisational and product levels. This is done by considering how your business and your products are affected by (and maybe how they could influence) the current and predicted changes and trends in the climate, in terms of the following categorised factors:

  1. Socio-cultural
  2. Technological
  3. Economic
  4. Environmental
  5. Political
  6. Legal
  7. Ethical
  8. Demographic

After setting the objectives, quality and trustworthy secondary sources should then be investigated to answer as many of your questions as possible. If the data is already available, most of the work has already been done for you and so it is usually much quicker and cheaper than answering your questions with primary research.

Some good secondary sources app market information include:

  1. App stores
  2. Google Trends
  3. Apptrace
  4. Pew Global
  5. Statista
  6. Market Reports (e.g. Mintel)

Social media can also provide valuable sources of information. Observing relevant Facebook groups and Twitter hashtags, as well as following competitor accounts, could provide good feedback on user attitudes, or indicate shifts in trend and customer requirements.

Review sites are another excellent source of secondary research material. 5 star reviews for competitor apps can indicate the features that particularly please the user, so you should consider including them in your own design. 1-2 star reviews suggest that the user didn’t fully understand their own needs and/or the value on offer for that product – they got the wrong product. The real gems can be found in the 3 and 4 star reviews. They tend to contain sentences that start with something like “This app would have got 5 stars if…” That’s where the app failed to solve at least a part of their problem, and THAT is where your opportunity lies. Solve that problem with your app design and you are likely to win that user from your competitor.

Secondary sources might only answer so many of your questions, and so, it could be necessary to conduct some primary research, where you collect data directly from the source, in order to achieve your research objectives. The major advantage of conducting primary research is that you get the answers to your exact questions, however, the major drawbacks is that it can be far more expensive and time consuming than using secondary sources, and you must be sure that a truly representative sample is taken to avoid skewed (misleading) results due to sample bias. Surveys, focus groups, and interviews are some of the most common methods used in collecting primary data, but in the case of an app, it is a good idea to embed communication channels into your product so that users can make contact with any gripes and suggestions, or you can send requests for feedback. Setting up social media accounts for your app provides further opportunity for conversation with your user community.

Primary research should employ a mixture of qualitative and quantitative questioning to gather data. Qualitative questioning is open ended, enabling an unconstrained response, which is ideal for investigating attitudes and opinions. Quantitative questioning provides a number of options from which the subject select those that best represent their position. Quantitative data is much easier to statistically analyse and cross reference in order to extract useful information, as it is easily categorised. The benefit of using qualitative questioning as well lies in the potential divergence of response, which can bring completely new ideas, concerns and opportunities to your attention.

Types of App

This week’s focus is on different types of app, and there is also an introduction to market research.

It was interesting to see a wide range of app types from the provided course resources, covering these categories:

  • Serious Games & Simulations
  • Gamification
  • eHealth Apps
  • Casual Creator Apps
  • Quantified Self Apps
  • Experimental Art App

However, as I found myself unable to slot many of the most popular apps, and even my “Quick Cook Challenge” concept from the app jam, into any of the categories covered, I concluded that the presentation was not a comprehensive classification of apps.

I do appreciate that it is incredibly difficult to define a comprehensive classification system for the entire spectrum of app possibilities, and the realms of what is possible are ever expanding as enabling technologies develop and market wants and needs change. It is important that I keep an eye on market trends to identify changes that could have an impact on the lifecycle of my apps, and adapt to keep pace (or even set the pace), where appropriate.

Furthermore, the lines are becoming increasingly blurred. Whereas certain apps serve a single, clearly defined purpose (for example a calculator app) and therefore quite easily classified, many app developers strive to provide more and more benefits for their users, and so their apps evolve into a hybrid platform, incorporating a variety of elements to deliver intrinsic and perhaps also user-generated value. These apps can be far more difficult to pigeonhole, which could mean that some thought is required when deciding upon which category to list your app under on app stores.

While the core purpose of Facebook is be a social media facility, the development strategy has seen the platform evolve (both organically and mechanistically) to incorporate a progressively diverse range of value delivery initiatives, including analytics driven advertising, news, games, personal sales and event listings.

Fitbit is another good example of an app that has grown from it’s origins of serving a specific function (as an eHealth app) to become a hybrid platform with the addition of elements of gamification (awards and badges) and a shared interest social community.

Of course, some of the app types discussed hold more interest for me than others. For example, I have no intention of building games or experimental art apps. But I can see that it would be foolish of me to completely dismiss any of these app types, as there is always the possibility that certain elements, techniques and ideas within them could provide inspiration for value-added functionality within my own apps.

Design a site like this with WordPress.com
Get started