What’s Next?

Week 12 brings us to the end of the first module, GAM710. I know this is oxymoronic, but it really has been a long 12 weeks that have passed in the blink of an eye. GAM710 has been very challenging (partly due to the breadth of study, and partly due to setting the bar high for myself), but I have enjoyed it and learned a lot. Some of the SMART goals that I set along the way have already been achieved, while others are still a work in progress. Some I intend to have completed before the next module begins, but I have intentionally included some longer term goals and aspirations that will continue to progress throughout the rest of my MA studies, and beyond. These include:

Flutter Development

I am now in a position to begin building a functional prototype for my “Quick Cook Challenge” app. I am confident that I made the right choice of development strategy and I’m looking forward to investing more time in honing my skills in this area to move along the learning curve in pursuit of mastery. Now that the intense period of reflection has come to an end, I can take a lesson from Adriel Wallick in her video talk “Game a Week: How to Succeed, Fail and Learn”. I need to put in the development hours to make the progress that I’m looking for.

I set a SMART goal to investigate prototyping tools for designing screen mock-ups, but now that I have had the opportunity to gain some familiarity with Flutter, I have concluded that best strategy here is to use rough pencil and paper sketches and then jump straight into Flutter, rather than involve an intermediary tool for high fidelity images.

I do intend to spend some time learning more about source control before the next module commences, but I’m now not overly concerned about reaching any particular level of expertise. As long as I can get a handle on the basic elements, I can learn on the go, on an as and when required basis.

Agile

Agile is a new concept for me, but I feel that, during this module, I have grasped a solid theoretical understanding of the general mechanics involved. I am looking forward to immersing myself in a situation to experience the practical application of the project management methodologies.

Through some trial and error, I feel that I now have a better handle on the effective use of a Trello board to organise my work schedule, and I intend to take a more disciplined approach to sprint planning and review, going forward.

Commerce

New practices, tools and techniques have emerged since I first set out on my corporate career path, and while I have some level of familiarity with them, this module has persuaded me to delve deeper into the likes of Lean Startup Methodologies, Business Model Canvas and Strategic Digital Marketing over the duration of the remainder of my MA studies, so that I can embrace them for the benefit of my intended startup venture.

Emerging Technologies

Data science – big data, machine learning and predictive analytics hold particular interest for me. I have a lot of data analysis experience and enjoy unleashing the power that good data holds. I am aware that these are huge areas of study, but I intend to take my analytical talents to the next level by exploring these areas in more detail, with the purpose of creatively integrating these technologies into the app product that I eventually build for my intended startup venture. This will dramatically improve the value offered by my business model.

I am looking forward to getting stuck in to some practical development work in GAM730, and it will be great to gain some practical experience of working on a collaborative project managed with Agile principles and techniques. But, before that happens, I’m really looking forward to enjoying some downtime to overcome the ‘extreme reflection fatigue’ that I’m currently battling!

Source Control

My experience with Github  is minimal.  I’ve used it intuitively, and tentatively, but my ignorance has delivered more problems than benefits. I am now pushing projects to Github directly from Android Studio, but I’m still yet to fully understand or apply the range of available features.  Whilst my shortcomings with the facility hasn’t been too much of an obstacle to the quality of my work to date, I anticipate growth in its importance as the complexity of my code progresses.

By 3rd June, I intend to be comfortable with the terminology, and have at least a basic understanding of how to use Github through Android Studio.

The benefits of being fully conversant with Github  will rise correlatively as the complexity of my projects develops.  Particularly so when working collaboratively.  As well as providing access-from-anywhere backup, Github facilitates tracking changes across versions, managing collaborative development projects, and seeking coding assistance from the Flutter community within Github. These benefits will all contribute to my progress as an efficient and effective App Developer.

I will start by familiarising myself with the terminology (push, pull, commit, fork, clone, merge etc.) to better understand the range of possibilities. I’ll use online tutorial resources to learn and integrate source control into my development process, starting with 2 Udacity courses, and then reassess my needs.

Primarily a solo project, I will seek assistance from the study group if/when necessary.

Specific

I will be able to explain each term in the Github glossary and apply the main features through Android Studio

Measurable

I will consider each of the 29 terms achieved when I can explain it in my own words and practically apply the concept, where appropriate.

Achievable

Time is my constraint, so I’ll use my Trello board (8) to incorporate a commitment to understanding 7-8 glossary terms per sprint.

Relevant

Proficiency with source control will be increasingly beneficial, if not essential, for upcoming modules, and beyond.

Time-Bound

This will be achieved by 3rd June.  I will ring fence 4 hours per week, over the next 4 sprints to achieve this.

Trello Board Update

That’s much better!

Now that I have visibility of each task (rather than at a weekly topic level) I can see exactly where I am.

I can now use this board to properly plan and review my weekly sprints, and organise myself more efficiently, and so I consider my SMART goal from week 9 to be achieved.

It’s also quite nice to be able to slide each card to the right, as it helps to garner a satisfying feeling of accomplishment.

Reflective Practice – Time to Catch Up!

In all honesty, I’ve struggled with reflective practice.  I’m more comfortable facing questions requiring convergent thinking, with a definitive correct answer to strive for, than those requiring divergent thinking to reach an outcome judged with subjectivity.  I’m somewhat uncomfortable with the uncertainty of whether I’m meeting expectations, and, being an analytical thinker, I find it difficult to know when to stop. I do proactively seek frequent feedback, which helps.

Until very recently, I’ve viewed reflective practice as an inconvenience – a distraction to my learning progress. This attitude, along with my focus on developing my Flutter capability, is largely responsible for my falling behind with my critical reflection journal.  While I’ve recognised the value in understanding what went well (and should be applied again) and what didn’t (so do something different) in a given context, I’ve been puzzled by the apparent heavy emphasis for this module.

However, I’ve recently engaged with Anders Ericsson’s work on Deliberate Practice.  It provoked a turning point for my perception.  Building the following representation of Ericson’s cyclical process for incremental development of expertise helped me to see that the structured proactive approach to reflection stimulates creative insight and mental adaptation. This encourages elaboration, and the formation of associations between known and new concepts, to form alternative representations, and view situations from different perspectives to expedite learning.

I’m beginning to recognise that I should embrace reflective practice, as it could actually be my passport to app development mastery.

My Critical Reflective Journal will be brought up to date by 29th April

Deliberate practice expedites learning.  Active retrieval provides a self-assessment of my comprehension, which is fundamental in identifying improvement opportunity, enabling me to effectively plan future activity for efficient progress.

I have 3 weeks to post blog entries for weeks 5 to 11.  Using my notes, I will dedicate 6-8 hours per week to achieving this.

Regular requests for Tutor/study group feedback, will help me continue to achieve incremental quality improvement.

Specific

I will post journal entries reflecting on the work that I have covered in weeks 5 to 11.

Measurable

I will use my Trello board to plan and implement weekly sprints, to include journal entries covering 2-3 weeks coursework, and chart my progress.

Achievable

Time is my key constraint, but I can afford to allocate 6-8 hours per week to achieve this. I’ve kept notes on everything that I’ve worked on.

Relevant

This module requires submission of a complete journal, and it’s a skill that I will use to assess and drive the progress of my continuing professional development.

Time-Bound

This will be done by 29th April. I will complete entries covering 2 weeks coursework, each week, over the next 3 weeks

Project Management Tools & Techniques

This week’s materials cover some aspects of managing large scale projects. There was a comparison of the (considered somewhat outdated) waterfall approach and the Agile approach.

I spent the last 17 years as an independent Excel/VBA Development Consultant, and my approach to each project was very much in line with the waterfall approach, as the video demonstrated. I can see many advantages to be gained from taking an Agile approach instead, but within a consulting context, I suspect that it would be very much dependant upon the culture of the client organisation as to whether they would be willing to accommodate that. In my experience, clients want to hold the consultant to a clearly defined set of objectives and a predetermined budget, and I’m fairly certain that the clients that I have worked with would never have achieved sign-off for a business case that didn’t explicitly dictate these things. That said, it was very often the case that once the client began to learn of the potential for additional functionality for the model or system that I was building, they would then set to battle for sign-off on an amended and extended business case. This process often makes for a less than efficient development process, but at the end of the day, the client gets what the client wants.

Having done a significant amount of self-directed investigation into the mechanics of an Agile approach in week 4, I won’t go back over the ins-and-outs of an Agile process with this post. However, as I’ve said previously, Agile was not something that I had come up against prior to this course, and while I’m confident that I understand the theoretical process, I’m keen to become a part of an Agile run project as I don’t believe that you can fully appreciate the practicalities of such a situation until you have been a part of it in operation. I’m sure that I’ll have plenty of questions when the time comes.

Deliberate Practice

Keen to get a good handle on what reflective practice can do for me, I’ve been exploring the work of Anders Ericsson, and his concept of Deliberate Practice.

This has been a pivotal step in changing my perception and comprehension of the potential value that can be delivered by investing time in reflective practice. I think I’m beginning to properly get it.

While much of the material relating to reflective practice that I have previously consumed has helped me to form some level of understanding, I’ve found it to be a bit woolly, and difficult to draw solid conclusions that I can confidently apply to my own performance improvement efforts. However, I connected with Ericsson’s work on achieving expertise through the application of Deliberate Practice. he outlines a cyclical structure of definitive iterative steps that I can take in order to realise incremental progress toward mastery in any field, including my chosen field of app development:

  1. Have a well defined specific goal.
  2. Practice with intense focus – no distractions.
  3. Seek immediate feedback on your practice.
  4. Frequent discomfort – adjust your goal to push you slightly beyond your capability.

Quality mentoring to oversee this process will further expedite learning.

Ericsson dismisses the commonly held belief that an innate talent is the primary factor that dictates success (which gives me hope!), and offers the alternative theory that the key requirement is adaptability – a ‘gift’ which we all possess. He goes on to say that we are all ‘Homo Exercens’ – the practising man, committed to self-improvement.

He also clarifies that while practice is an integral part of improvement strategy, it is not an effective stand-alone strategy. He labels this approach “Naive Practice” and describes how spending hours repeating the same actions over and over again, will only deliver limited improvement, and never achieve expertise.

Flutter & Dart Progress

My proposed business venture requires an app with reach to the majority of the market, so my preferred development strategy is to use Google’s open source Flutter framework to create mobile apps for both Android and iOS platforms. Flutter uses Dart, a strongly typed object orientated language, to build a single code base that is compiled to native code for both platforms, eliminating the need for separate code sources.  Ahead-of-Time compilation removes the need for a bridge, so Flutter apps achieve faster and superior performance over those from alternative hybrid development frameworks, like React Native and Xamarin.

Bringing a very limited amount of Java coding experience to the course, and only managing to gain a brief introduction to Flutter at that time, restricted my deliverables to for the app jam to just a paper prototype for my “Quick Cook Challenge” concept.  However, my Java work provided some familiarity with object orientated programming principles, which facilitated my shift to Dart, and I’ve found the language to be considerably easier to learn.  I’ve since built several basic apps under the instruction of tutorial courses (1 Dart and 3 Flutter) that I’ve now (almost) completed.  I’m becoming increasingly comfortable working with the Flutter framework, and rapidly gaining confidence in building basic screen layouts with step-by-step instruction.  I’m also beginning to apply and deepen my comprehension by anticipating small code snippets within tutorials, ahead of the implementation. Engagement with the community through social media, particularly Facebook groups, Twitter and Medium, is also helping me to explore the potential that Flutter offers.

Once I’ve completed my third Flutter course, I will build my own layouts for the “Quick Cook Challenge” app from the jam.

While Flutter development will be an ongoing process for me, this SMART goal focuses on the short-term progress that I intend to make, in preparation for the next module.  The following diagram illustrates my long-term vision for my route to mastery of the Flutter framework.  The curve is inspired by Charles Handy’s concept of “Life Cycle Thinking” , and Whitney Johnson’s application of his S-curve (or Sigmoid Curve) concept to illustrate the development of competence in a new domain of expertise.   I further developed this concept to reflect the anticipated evolution of the Flutter Framework, and the continued learning opportunity this will present during the “Mastery” phase. The red arrow indicates my perceived current progress along the curve:

Over the long-term, I anticipate 4 phases of development:

  1. BEGINNER: Learning to use Flutter to the point where I am capable of building a complete functional low-complexity multi-screen app, with effective screen transitions and logic that makes the app useful.
  2. RAPID PROGRESS: Exploring more advanced Flutter widgets and features, incorporating them into higher-complexity apps
  3. PLATEAU: A period of consolidation and experimentation, using widgets and plugin combinations in concert to develop more creative and original apps
  4. MASTERY: An infinitely ongoing phase for me to really test and push the limits of possibility within the framework, and expand the possibilities by developing my own plugins.

By 3rd June I will have built a complete functional prototype for my “Quick Cook Challenge” app (from the jam) to reach the end of my ‘Beginner’ phase.

Proficiency in developing Flutter apps is the key core capability I want to gain from this course.  I’d considered the alternative strategy of partnering with an established Developer in order to launch my startup, but for various reasons (primarily financial and control), I opted to upskill myself instead.  If I don’t achieve app development competency over the duration of the course, I will consider myself to have underachieved.

Tutorial courses work, and I will continue with them, but I need to incorporate alternative methods to help take my understanding and familiarity to a deeper level.  I will use Google’s Flutter Widget Catalogue as a guide, and build my own representations of standard widgets (the building blocks of Flutter).  I’m a visual learner, so building models that are meaningful to me provide opportunity for elaboration and active retrieval, which, according to Anders Ericsson’s Deliberate Practice theory, are proven strategies for strengthening comprehension.

I will prioritise the widgets with a Pareto (or, “law of the vital few”) approach, assuming 20% of the standard widgets will deliver 80% of the results I need.  Joseph Juran suggested the principle after recognising that economist Vilfredo Pareto’s observed 80/20 relationship between land ownership and population, held validity as a general rule of thumb for much wider application. A relevant example: Microsoft reports that fixing the top 20% of reported bugs eliminates 80% of errors and system crashes.  After addressing 20% of the widgets, I’ll add to my catalogue as I use new ones.

This milestone is predominantly a solo project, but support is available within the study group and the wider Flutter community. The SMART goal is:

Specific

I will build a functional prototype for my “Quick Cook Challenge” app.

Measurable

I will construct a Trello board to chart progress, and manage my schedule effectively, implementing weekly sprints to achieve the complete app.

Achievable

Time and technical capability are my constraints. The Trello board will help schedule my time effectively, and I’ll use tutorials and Stack Overflow to assist with any challenging aspects.

Relevant

This is the foundation milestone for my future Flutter progression, which is a key factor for success for my intended startup. It will also enable my contribution to collaborative coding projects during upcoming modules.

Time-Bound

This will be achieved by 3rd June. I will dedicate 18 hours per week to achieving this.

Hooked

My week 8 SMART goal was to read “Hooked: How to Build Habit Forming Products” by Nir Eyal. And what a fascinating read it was!

Hooks and stickiness were raised in the course materials in week 8 and I thought it would be an interesting and valuable area for further research, and I wasn’t wrong.

Nir Eyal is a Behavioural Psychologist with a particular interest in consumer behaviour within a technology context. His book, “Hooked” sets out to explore why some apps capture the attention of the market, while others just don’t.

Based on years of research, Eyal has identified the four elements that must be integrated into a product’s design in order to attract users, maintain engagement, create a desire within the user to use the app repeatedly, and even establish this behaviour as a habit. The book discusses the application of the Hook Model that he developed:

The Hook Model represents a 4 stage process that an app designer should lead their user through in order to create a stickiness and elicit habitual engagement. The 4 stages are:

1. Trigger

A trigger is something that prompts the user to take action of some kind. Initially, external triggers must be provided (for example, a notification with button to be clicked) in order to guide the user into your app. Eventually, this should cultivate an association between visiting your app and the rewards that this action brings for the user, and so internal triggers will take over as the impetus. Internal triggers are (mostly negative) emotional cues, such as boredom or hunger, that your user learns to satisfy by using your app. Internal triggers are critical to habit formation.

My “Quick Cook Challenge” app concept could provide an external trigger in the form of a strategically timed (maybe 3pm as it tends to be a low point in the day and people start to think about what they will have for dinner) notification which, when clicked, provides a randomly selected recipe. Hopefully, over time, the user will build an association between their feelings of hunger and the rewards (recipes) that the app provides, and so this internal trigger will be the foundation upon which a new habit will develop for them.

2. Action

The action is a simple behaviour that is carried out by the user with the expectation of a resultant reward. For example, entering keywords and clicking the search button in Google with the expectation of receiving answers to questions.

My “Quick Cook Challenge” app concept will provide lists of recipes to choose from, prompting the user to scroll to see what is available, and what’s new.

3. Reward

The reward is the reason for visiting the app. It is the value that the user receives from the app. The nucleus accumbens is the area of the brain that is activated by desires and cravings, and it is most active when a reward is anticipated. The brain is fascinated by the unknown, and so the nucleus accumbens can be further stimulated with the added suspense of an unknown or unexpected reward (for example, the content is different each time a user logs into Facebook). This is the reason why apps that provide variable rewards tend to become habitual far more quickly than those offering a predictable reward, with the habit lasting longer before the user begins to lose interest.

There are 3 categories of reward:

  1. Rewards of the tribe
    • Value derived from other people that makes the user feel good, for example, replies and likes on Facebook or retweets on Twitter.
  2. Rewards of the hunt
    • Value derived from the user’s own efforts, for example finding interesting articles from scrolling through Pinterest.
  3. Rewards of the self
    • An intrinsic pleasure, with an element of variability, such as a feeling of accomplishment, achievement or completion, for example, levelling up on Candy Crush.

The more types of reward that an app offers, the better the chances of establishing a user habit.

My “Quick Cook Challenge” app concept will provide rewards of the tribe in the form of feedback and ratings on their own posted recipes and culinary attempts. Rewards of the hunt will be provided when they find recipes from other people that interest them, and reading feedback that has been left for other people’s recipes and results (which can be entertaining). Rewards of the self should be realised when the user has followed a recipe, enjoyed a meal, and satisfied their hunger because of it. if sponsorship could be secured, physical rewards and prizes could also be earned for the best and worst rated recipes and results, which would further encourage usage of the app.

4. Investment

The investment phase is where the user is encouraged to provide value to the app, for the purpose of increasing the likelihood of their next pass through the Hook Model process. This investment could be monetary (for example purchasing extra lives in a game) but other examples might include increasing their reputation through contributing to group discussion, gaining followers or generating and sharing content. All of these investments build to create a barrier to exit for the user, which might be a considerable factor in retaining their loyalty, should the user ever be faced with the decision to stick with your app or ditch it in favour of direct competitor.

My “Quick Cook Challenge” app concept provides many opportunities for user investment. They can upload their own recipes, provide feedback and ratings for recipes that other users have uploaded, share the results of their culinary efforts in anticipation of comments and ratings, and provide comments and ratings for the culinary results of other users.

While my “Quick Cook Challenge” app concept already incorporated many of the elements of Nir Eyal’s Hook Model, this was more by accident than by intentional design. I think the Hooked Model is an incredibly valuable find, and I fully intend to purposely incorporate what I’ve learned from this book in all future app designs.

Kanban With Trello

I have used the Trello tutorial to set up a board (essentially a Kanban board) for my coursework, but it isn’t currently working for me.  I see the benefits of using a board, but I’ve structured it in a way that doesn’t provide clear visibility of the tasks.  I used a card for each week of the course, with tasks listed within it, making it difficult for me to see task-level detail.  Consequently I haven’t used or updated the board since.

By 14th April I will have a restructured Trello board, using a card per task, and grouping them into relevant weeks, and categories with a colour key, to give full task-level visibility.

A well-structured Trello board will help me plan and implement weekly sprints to manage my progress more effectively.  Moving cards to the right will also provide an element of motivation for me.

I will add a card for each of the tasks from the entire module and assign a colour to categorise it, to group tasks according to the course week, or goal that it relates to.  I will then prioritise the tasks and move each card to the appropriate status lane.  I will then continue to use the board on an ongoing basis to chart my progress. Tutor/study group feedback might also prove helpful. So, I will commit to the following SMART goal:

Specific

I will improve my project and time management by restructuring my Trello board, using a card for each task, categorised with a colour key.

Measurable

The success of the restructure will be measured by how effectively it serves me going forward. Further adaptation will occur as part of the ongoing board management process.

Achievable

Time is the only constraining factor, but the restructure should only take me around 2 hours.

Relevant

A well-structured Trello board will help me to better manage my progress throughout the course, and beyond.

Time-Bound

This will be achieved by 14th April

Emerging Tech

This week, we are looking at technologies that are new to the market, or at least in the early stages of adoption, and thinking about how they can be used to develop creative and unique solutions to disrupt the market.

I was interested to learn of some of the projects discussed during the provided videos. The realms of possibility are so much bigger than I had appreciated, and expanding rapidly. It really is quite astounding to imagine where future technological evolution might take us.

For my intended startup, I would like to eventually incorporate elements of big data, internet of things, and machine learning. I want to develop a capability to collect and store behavioural data that can then be utilised with predictive analytics to provide tightly focused and efficient marketing channels. This data science driven approach will identify the users that are likely to respond to different types of offers, and consequently yield far higher return on investment results (minimising wasted marketing spend) for the marketers, while improving the quality of offers that each user is exposed to.

While I have many years experience with data analysis, I am not currently sufficiently knowledgeable to build a predictive analytics engine. I need to know more about big data analytics, machine learning, and data science in general, in order to to be able to fully integrate this functionality and generate an additional, and potentially very lucrative, revenue stream for my intended business venture.

I intend to explore these areas over the duration of rest of the course. I will find some relevant books to read, and consider taking a relevant online course. However, I appreciate that this is opening up an enormous area of study, and my priority right now is to become proficient with Flutter, and so I will not put any time restraints on my investigations into the data science aspects at this point.

Creativity

Creativity is the topic of conversation for this week. The word creativity sparks an immediate connection with artistic talents for me, but taking a step back from that and looking at creativity in a broader sense, it is a set of thought processes that are engaged, in order to resolve a problem or situation in a unique and innovative way.

The provided video discussed how clever creative app design can incorporate hooks and stickiness to increase user appeal and promote increased engagement. I hadn’t given much consideration to this previously, but the video triggered a desire in me to learn more.

I would like to gain a better understanding of the techniques that I can use in the design of an app that will help to attract and retain users, as well as encourage increased frequency of interaction with my apps.

So I’ve put together a SMART goal:

Specific:

I will gain a better understanding of how I can incorporate hooks and stickiness into my app design by reading the book “Hooked: How to Build Habit Forming Products” by Nir Eyal.

Measurable:

I will use what I learn from the book to identify features that I can build into my “Quick Cook challenge” app to act as hooks and improve stickiness.

Achievable:

I have ordered a copy of the book. The only other constraining factor is time, and reviews indicate that this is a relatively quick and easy read.

Relevant:

Hooks and stickiness are important elements in app design as they play a significant role in attracting and retaining users and also influence the frequency with which the user engages with your app.

Time-bound:

I will attempt to read this book over the next 2 weeks. There are only 9 chapters (including Introduction) and so I will aim to read 1 chapter each evening.

Audience Research

This week we’re taking a closer look at audience research. As I have touched on qualitative and quantitative data collection techniques in my post on market research, I will concentrate on persona (or avatar) marketing for this one.

I completed my Chartered Institute of Marketing Diploma in 1995. Avatar, or persona marketing was encouraged as an approach to targeting your market segment. This technique involves constructing a profile for a fictional person that represents your target market. If your target market can be segmented, you should construct a different persona to represent each.

While this approach might help the marketer to ‘speak’ to the target market as if they were a person that is known to them, I have always viewed this approach as risky. Perhaps even dangerous.

The thing is, people don’t necessarily fit perfectly into boxes. While some products or services might attract a certain, clearly defined, type of buyer, most won’t. The more detailed the profile that you build for your persona, the greater the chance you have of failing to recognise, or even alienating, a proportion of the true market for your product. This technique does encourage you to examine a broad array of the demographic characteristics and lifestyle factors for your fictional being: age, gender, educational achievements, job, which newspaper they read, family structure, location, what they drive, how they spend their weekends, which political party they vote for etc etc etc. You end up with a tightly defined profile for a person, which forms a pigeonhole. Then an integrated (and quite possibly myopic) marketing campaign is built, targeting people that fit that pigeonhole. When you think about it, how sensible is it to spend money trying to sell your product to someone that doesn’t actually exist?

That said, up until quite recently, I had been unaware of a better approach, and so I would advocate proceeding with caution, and being conscious to avoid over-profiling.

However, aware that it was over 20 years since I gained my marking diploma, and the emergence of the digital age in that time had provoked a paradigm shift in marketing (as well as all other areas of commerce), I decided to embark on a Strategic Social Media Marketing course from Boston University about 6 months ago. Things certainly have moved on in marketing in that time, and I was introduced to the concept of community (or network) marketing (personally, I prefer community marketing, as, back in the day, network marketing used to mean pyramid selling schemes that tended to have a negative reputation).

Community marketing involves the infiltration of existing online communities that are relevant to your product, industry or market. These communities serve the purpose of bringing people with a common interest together to discuss that topic and provide and receive value to/from that community. By finding relevant communities, you can more clearly identify the diversity of profiles that might be interested in your product. By just observing conversations, and the questions and answers exchanged, you can build up a good understanding of the the problems that these people want solved, and the pains that they want easing, helping you to develop your key value proposition.

Communities can be found in many forms, for example as Facebook groups (particularly good for understanding user profiles), Twitter hashtags, independent chat rooms and forums, as well as blogs, Medium articles and Quora Q&As.

Without realising it at the time, this is how I had formulated the business model for my intended app based startup. This course just formalised the approach for me.

This case study illustrates my point nicely: About 3 years ago, I did some work with a small business (who have asked to remain anonymous) that turn domestic lofts into easily accessible storage space by installing insulation, floor boarding, lighting, shelving and ladders. They wanted to grow the business from being a local sole trader, into a national company, using a franchise model. They initially took a persona approach to selling franchises, and built a couple of avatars, which seemed perfectly logically sound: One avatar was a trades person with aspirations of running their own business, while the other was a person leaving the military services with some relevant skills (Defence cuts were driving large numbers in this segment at the time). Both seemed to be fairly sound assumptions, but focusing marketing efforts on these two profiles wasn’t generating as much interest as was hoped for. Many things changed with the business over time, but one of the key differences that made all the difference was a shift to more of a community approach to marketing. By engaging with a more general franchise community, they found an enormous uplift in enquiries from potential new franchisees. They were attracting interest from people looking for an attractive franchise proposition, and what’s really interesting is that, while some of their franchisees are from a trade background (as was expected), a good proportion of them are from the commercial sector, escaping the rat race of middle and senior management – a sector that was completely unexpected, and would never have been considered with a persona approach. The business is now on a roll, and currently have 16 fully fledged franchisees (including accountants, an ex Finance Director an ex Managing Director and other professionals) and a pipeline of new franchisees growing faster than they can process them – a nice problem to have. The business has also been shortlisted for the British Franchise Association’s “Emerging Franchisor of The Year 2019” award, and will know whether they’ve won in June.

I hope this last example will be viewed as constructive criticism…

I believe that the marketing for the MA Creative App Course has fallen into the persona marketing trap. I initially dismissed the course as it didn’t appear to be serving my needs. The overview provided was speaking to gamers and creative types, and I definitely don’t fit either of those personas. However, buried deep in the “Who Is This Course For?” section, there was just one line that suggested that this course might be what I was looking for: “Someone who has an idea of an app they wish to create”. It was this line alone that eventually persuaded me to investigate further. It was only an in-depth discussion with Alcwyn Parker that properly demonstrated that the course was right for me. Marketing materials need to spell out the value proposition for the reader, making the connection between the product features and the readers needs (i.e. the product-market fit) blatantly obvious. I suspect that it is my marketing experience that helped me to recognise that I needed to proactively seek out the value that the course holds for me. I wonder how many others haven’t bothered to put in the effort to find the value for them? I would recommend some A/B testing as it would be interesting to see how a community marketing approach impacts the level of interest shown for the course.

I am still yet to complete the Strategic Social Media Marketing course from Boston University. I only got half way through before the MA Creative App Development course commenced (I had intended to run the two in parallel for 3 weeks, but this module was more full on than I had anticipated). The course has provided plenty of very useful and relevant information so far, and so I will set a SMART goal to finish the course over the time of the next module:

Specific

I will improve my understanding of strategic digital marketing by completing the Strategic Social Media Marketing course from Boston University.

Measurable

The course will give me a good insight into how digital products are marketed online and introduce me to tools that I can use to help with market research.

Achievable

There are approximately 24 hours of study remaining to complete the course, which I can schedule across the 12 week period of GAM730. The course is perfectly pitched at my level of capability.

Relevant

Familiarity with digital marketing techniques and tools is very important for app marketing and continuing market research throughout the product lifecycle.

Time-Bound

I will have completed the course by the 26th August. With 24 hours of study left, I will dedicate 2 hours per week for 12 weeks over the course of GAM730.

The Lean Startup Methodology

The Lean Startup Methodology is an approach to developing products and businesses that minimises risk and increases the efficiency of the development process. This is an iterative process of testing hypothesis to validate the viability of the product for the intended market, and releasing incrementally improved versions of the product based on validated learning.

The Lean Startup approach works in conjunction with the Business Model Canvas, along with Lean, value Proposition and Mission Model Canvases. From the little knowledge that I currently have, it appears to incorporate Agile principles in developing a startup business and/or product that the market will help to develop, and consequently increase the likelihood of acceptance.

Gaining a better understanding of Lean Startup Methodologies, and further reading on the Business Model Canvas, should serve me well when it comes to developing my own startup, and so I will set myself a SMART goal:

Specific

I will improve my understanding of the Lean Startup methodology by reading the book “The Lean Startup: How Constant Innovation Creates Radically Successful Businesses” by Eric Ries

Measurable

The course will improve my approach to building a digital startup, to reduce risk and increase the probability of launching a successful business.

Achievable

I have purchased a copy of the book and so the only other constraint that I have to consider is scheduling the time to read and understand it. As my current priority is to achieve proficiency with Flutter, I will delay this goal to run alongside the next module.

Relevant

My ultimate goal is to develop a startup digital business, and so the Lean Startup Methodology should prove highly valuable once I begin to work on this.

Time-Bound

I will have read the book by the 26th August 2019. With 16 chapters (including Introduction) I will commit to reading 1-2 chapters per week over the 12 week period of GAM730.

The Business Plan

Many advocates of the Business Model Canvas argue that a business plan is redundant – a Business Model Canvas is all you need.

Steve Blank, Silicone Valley entrepreneur and “The Father of Modern Entrepreneurship”, sums this up with: “Business Plan: a document investors make you write, that they don’t read”.

Whilst I fully respect their superior credentials, I struggle to agree with the view that a business plan is unnecessary.

The Business Model Canvas is a hugely valuable tool, and presents a concise overview of your business intentions, but a business plan allows for elaboration and emphasis, depending on the purpose of the plan. The Canvas is a good tool for communicating your business model, but it needs to be explained in order to be understood, whereas a business plan should speak for itself and can be sent to the reader to digest prior to any further discussion.

I have worked with a few (non-tech) startups, and my first piece of advice is to start at the very end – establish your exit strategy. At what point do you leave the business, how will you leave, and why? Do you just want to create a personal income for the few years up until your children start school and you can resume your career? Do you want to sell the business as a going concern with a certain price tag and at a certain time? Do you want to float the business as a PLC? Do you want to hand the business over to your children? Is this your early retirement pension generator? Are you aiming to impact a social cause? This thinking provides purpose, context, an ultimate long-term objective to work toward, and helps them to see that the business plan is a significant subset of of their life plan, and that the two MUST be congruent.

I will then recommend the business plan guidance from The Prince’s Trust. It offers a good structure to build a comprehensive plan. Of course, it might be necessary to produce more than one version of the plan, with each tailored to its intended audience. For example, if you are building the plan for your own (and perhaps your team’s) direction and control purposes, you might want to emphasise the operational processes and the key performance indicators against which you will measure performance. On the other hand, if you are submitting a version of your plan to win investment, your plan is essentially a sales tool and so your emphasis should be more geared towards the financial health of the business, what an investor can expect in return, risk analysis, detailed financial forecasts (including forecast profit & loss accounts and balance sheets), return on investment calculations and ratio analysis – all to convince them that your business is a good and safe investment proposition for their money.

The Business Model

Too many fantastic ideas never become anything more than that. In many cases, that’s because the originator doesn’t have the know how, and/or resources, to turn it into a product. Similarly, too many great products fail before hitting the market. It is all too common that the originator assumes that they have a product, and therefore, they have a business. The product may be the business’s raison d’être, but it isn’t the business. There are so many other factors to consider in order to deliver value to the customer. Long before the product exists, and maybe even as early as the concept development stage, a business model is required.

A business model describes the core strategy for achieving your (financial and non-financial) business objectives under the current and predicted market conditions.

An alternative definition :

A business model describes the rationale of how an organisation creates, delivers and captures value.


Book: “Business Model Generation”, by Alexander Osterwalder & Yves Pigneu

The business model is not a static declaration. The first draft might be pure hypothesis, and form the basis for market research to test those assumptions, and perhaps a number of strategic options, with amendments made until there is confidence in the chosen way forward. The business model should be revisited frequently, to evaluate strategic options, particularly as the product advances along the curve of it’s lifestyle, or when significant changes in internal and/or external factors are experienced or predicted.

Around a year ago, I became aware of Alexander Osterwalder’s Business Model Canvas. The canvas is an excellent tool for brainstorming, mapping, communicating, understanding, discussing and testing strategic options.

The canvas is a single page framework of nine segmented areas of your business, that provokes analysis, in order to build an overview of how the distinct elements of your business work together to deliver value for your consumer, and achieve competitive advantage.

It’s a good idea to start the process by establishing a clear purpose for the business, to guide your thinking. This could include the purpose for building your product, what you want to achieve along the way, or how it fits into your own life plan. For example the purpose for my Quick Cook Challenge app might be:

I want to reduce the current levels of reliance on takeaway and convenience foods by providing a platform for sharing quick and easy home made recipes. The app needs to provide an income for myself over the next 5 years, when it will reach a state of maturity to enable me to find a buyer for the business and realise a value of £2 million.

With a clear purpose in mind, completing each section can be deliberated with the desired outcome as a guide. The sections can be tackled in any order:

Key Partners

Who are the external supporters that you will be relying on to help deliver value to your customer and achieve your goals? Suppliers, agents, contractors, sponsors etc.

Key Activities

What are the main processes and tasks that you will need to perform in order to deliver value?

Key Resources

What are the essential items of equipment, people, intangible assets etc. that the business needs to operate?

Value Propositions

What consumer issue are you intending to address? What pain are you going to ease? What problem are you going to solve? What is the base reason that someone will pay for your product?

Customer Relationships

Is this a single purchase relationship with your customer, or do you want to build a relationship to foster repeat purchases? This section is all about how you intend to keep in touch with your customer base and build brand loyalty. It could also include referral programmes where existing customers are incentivised to recruit new customers for you.

Channels

This is where you construct your marketing funnel. The process through which you will first contact a consumer and move them through the funnel to become a buyer. This will also include and sales and delivery channels that you intend to use to get your products into their hands, if applicable.

Customer Segments

The market segments that you intend to appeal to, with a description and typical characteristics of each segment.

Cost Structure

What are the major cost drivers for the business. This section should establish the nature of the costs (fixed, variable, semi-variable, economies of scale achievable, break-even point etc)

Revenue Streams

For each product or service that you offer, build your pricing strategy, estimate how frequently each customer might buy, their average spend per purchase, and any discounting that might be applied.

Once all of these categories have been completed, each should be cross-referenced with each of the others, to identify how they affect each other, and work together. For example, considering the value proposition along with the customer segments will help to concentrate on what features your product needs in order to provide value for each of your market segments (product-market fit). Or considering key activities along with cost structure, you might decide to investigate the cost/benefits of outsourcing some of these activities.

Getting your business model right is by no means an easy exercise, but it could provide the USP that makes your business a success.

Building a business model canvas for your competitors, comparing and contrasting each element, along with market research to support your findings and assumptions, is another very powerful tactic for optimising your business model for superior value delivery and competitive advantage.

While I appreciate the concept of the Business Model Canvas, I intend to do some further reading around the subject in order to deepen my understanding and learn of further tactics to develop the perfect business model.

Creative App Commerce

Week 6 is focused on some commercial aspects of app development. This is the area that I am currently most comfortable with as I have plenty of practical experience, although, not within a digital technology context. Even so, the general principles are still very much applicable.

I have worked with several startups to help them to develop their business plans, and also been the financial modelling lead on a wide range of large-scale tender proposals on the supplier side – the largest being the Trusted Borders consortium’s winning bid for the e-Borders contract with The Home office (which unfortunately collapsed during implementation). I have also built cost of ownership and whole life costing models for a variety of major asset (planes, helicopters, tanks and ships etc.) supply chain transition projects for The Ministry of Defence.

This all valuable experience, but I have identified a number of commercial areas that I would like to pursue further in order to gain an alternative perspective (particularly from a digital startup point of view), deepen my current level of understanding, and improve my general commercial capabilities. This should prove to be a highly valuable investment of time when I come to begin developing my intended app-based startup.

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.

Introduction To Agile

I have experienced quite a diversity of organisational cultures, particularly during my 17 years as a consultant, but Agile is new to me.

The interview with Belinda Waldock provided in the course materials provided a very high-level flavour for the ethos of Agile, and I learned that Agile was an alternative and flexible approach to project management, but I needed a far more detailed insight, in order to get a good feel for what Agile actually is, and the benefits to be realised.

Initially, my search provided plenty of other resources which offered a similar ‘all sizzle, but no sausage’ level of detail (and invariably had a book, consultancy services, or something else to sell) but I needed to get into the mechanics of Agile for the sake of my comprehension.

A study group member recommended a talk “Agile Project Management With Kanban” by Eric Brechner. This was a very informative walk through of a Kanban system in action, but advocates Kanban as the sole technique needed to be Agile, rendering the scrum redundant. Having only an inkling as to what a scrum might be at this point, I was in no position to agree, or disagree with this point of view. So the search continued..

I finally found a talk, “Introduction to Agile – Transformation, Best Practices and Common Problems” by Maarten DuPont, that discussed Agile to the perfect level of detail to put some meat on the bones for me.

The Agile Manifesto

The Agile Manifesto promotes 4 fundamental values for a flexible, quality driven management process that focuses on creating products that meet consumer needs and expectations:

  1. Individuals and interactions OVER processes and tools
  2. Working software OVER comprehensive documentation
  3. Customer collaboration OVER contract negotiation
  4. Responding to change OVER following a plan

The 12 principles of Agile

Agile is further underpinned by 12 principles, designed to provoke an efficient, customer-focused working environment that aligns to business objectives, and is quick to pivot in response to changes in user needs and other market forces:

  1. Satisfying customers through early and continuous delivery of valuable work.
  2. Breaking big work down into smaller tasks that can be completed quickly.
  3. Recognising that the best work emerges from self-organised teams.
  4. Providing motivated individuals with the environment and support they need and trusting them to get the job done.
  5. Creating processes that promote sustainable efforts.
  6. Maintaining a constant pace for completed work.
  7. Welcoming changing requirements, even late in a project.
  8. Assembling the project team and business owners on a daily basis throughout the project.
  9. Having the team reflect at regular intervals on how to become more effective, then tuning and adjusting behaviour accordingly.
  10. Measuring progress by the amount of completed work.
  11. Continually seeking excellence.
  12. Harnessing change for a competitive advantage.

A Typical Agile Process

As Belinda Waldock says, Agile, by definition is not a rigidly set methodology, rather an adoption of the manifesto and principles to incrementally deliver customer requirements. That said, DuPont delivers a diagrammatic representation of a typical Agile process:

  1. The Vision
    • The customer provides a business case for their requirements from the team at that point in time.
  2. The Product Backlog
    • The business case is broken down into smaller chunks and prioritised.
  3. The Sprint Backlog
    • Takes a manageable portion of the product backlog to be implemented during the next sprint
  4. The sprint
    • A predetermined period of time (usually 1-4 weeks long) that is dedicated to achieving all of the tasks contained within the sprint backlog.
  5. Daily Scrum
    • A short (usually 15 minutes), strictly focused daily meeting where each team member take their turn to state what they did yesterday, what they will do today, and whether they foresee any blockers (obstacles/impediments) that might stand in their way (which become the responsibility of the Scrum Master to resolve in good time).
  6. Product Increment
    • When the sprint is complete, whatever has been achieved should be presented to the customer for feedback.
  7. The Sprint Review
    • A reflective analysis of the sprint
  8. Sprint Planning
    • A reassessment of requirements and their priorities, and selecting the tasks to be completed during the next sprint.

While I feel that I have achieved a level of theoretical understanding of Agile, I still have lots of questions and a curiosity for the practical nuances of adopting an Agile management approach. I realise that many of these questions can only be answered by immersing myself in the practicalities of an Agile project context.

Having very little experience with tech companies (a 3 week project with Siemens), and no experience within a tech team, goes some way to explaining why I haven’t crossed paths with Agile before now. But I can see that the successful adoption of an Agile approach to project management depends upon a conducive organisational structure and culture. The majority of the organisations that I have worked with operate a traditional, functionally hierarchical structure, with a vertical chain of command and clearly defined specialist departments (or stovepipes). One or two have structured their company in a matrix style, with horizontal and vertical reporting lines, with functionally specialised teams that also focus on a particular segment of their market. I assume that both of these structures would experience a level of political friction and conflict with an Agile approach, relating to how clearly defined and rigidly implemented the boundaries and reporting lines are. As we continue to progress into the digital age, more and more organisations (with certain industries, such as Tech and Banking leading the way) are realising advantages by removing the boundaries, and operating beyond the edges to enable sharply customer-focused agile teams to deliver optimised value.

Personal Case Study

I have a commercial background, but I’m on the MA Creative App Development course because I want to be well equipped to create my own startup venture, with a mobile app sitting at the core of the business and I want to feel confident that I can launch and grow that business into a success story. So, I’m using the course to develop the full range of skills and competencies that I need to become a developer of great mobile apps.

Skills & Competencies

I started by looking at the key skills and competencies that a great app developer needs, and through brainstorming, with some internet research, I found myself developing a model to help me to see where I need to be.  This is how I see it:

The skills, group nicely into a trinity of families:

  • Technical skills – so that I can create and build an excellent product
  • Business acumen – so that I can identify market needs and create a business model that successfully delivers a financially viable solution.
  • And artistic talent – so that I can deliver a user experience that supports the brand, creates another competitive selling point, and nurtures adoption and loyalty.

And I rank them in that order of importance for me.

Each of the skills families is an umbrella for an array of hard skills, each with its own level of relevance and priority in terms of how it impacts my own short, medium and long-term objectives.

And all of this is supported by a range of soft skills.

I conducted a subjective self-assessment of my starting point, based on my achievement to date and peer comparison, and the green triangle represents my perceived current capability as an app developer.

I intend to get my business venture off the ground on my own, initially, and gradually build my team of specialists around me, as and when necessary, and so I need to spend the next 2 years bringing my score for each of the skills families to at least a 9.  The red area represents my currently perceived skills gap.

The arrows at the end of each scale, point toward infinity, representing my appreciation for endless learning opportunity, in order to exploit new technologies, rapid adaptation of developing industry trends, and satisfy ever-changing consumer demands.

My priorities for the course lie with the development of my technical skills.  It’s imperative that I bring those up to speed as quickly as possible, so that I have a solid foundation for the rest of the course.

I may not have an IT background, but I do bring some solid transferrable skills.  I’m very analytical and pragmatic, with a good balance of both logical and creative thinking for problem solving.  However, building this model brought a realisation that I hadn’t fully appreciated the enormity of the task ahead, and just how much of it is completely new to me.  I’m viewing this as a stretching, but achievable challenge that I’m fully committed to, but, at times, I’ve felt a little overwhelmed by the size of the skills gap, and there is a degree of imposter syndrome that I’m currently wrestling with. I just need to keep a calm head, eat this elephant one bite at a time, and trust in the support network and resources that the course provides, to help get me there.

The App Jam

The week 3 app jam was an end-to-end development exercise, with a theme based on the words “guide”, “opponent” and “restricted”, which were generated using VNA cards.  This was an opportunity for me to draw on everything I’d learned, and assess my strengths and weaknesses within that context. I knew from the outset that the jam had come far too early in the process for me, as I lacked the necessary technical skills.  Although, I hadn’t discounted the possibility at that point, I knew that building a fully working app wasn’t a realistic goal for me. So, I primarily focused on what I could learn from the process of the jam, with the aim of creating a paper prototype and then building a fully working app if I could improve my skills sufficiently in time, but this became a secondary concern for me.

As expected, I didn’t get to build the app.  But I did get a good experience of the process, taking away some key lessons:

  • The right tools for the job

I need experience with the best tools for the job.

  • Flutter

    • I tried to get some Flutter experience before starting the jam.  I’m now content that Flutter is the best development strategy for me, as it allows me to develop for both Android and iOS platforms with a single code base, and it’s reported to be relatively straightforward to learn.  However, it’s completely new to me and there just wasn’t enough time to get to grips with it in any real depth.
  • Dart
    • Flutter uses the Dart language, and so a solid general understanding of that will also be highly beneficial for me.
  • Process flow tool
    • During the creative piece from week 1, I had identified a need to find a more appropriate tool than PowerPoint to draw up process flow diagrams, but I hadn’t managed to do this in time
  • Wireframing tool
    • and it’s a similar situation with wireframing.  I did look at InVision as a possible tool, to help planning screen layouts, but learning how to use it was time that I couldn’t afford if I wanted to achieve anything else before the deadline. So I reverted to PowerPoint.  It does deliver aesthetically pleasing results, but it’s time consuming and becomes fiddly when working with small detail.  Maybe I should have settled for hand drawn sketches? I’ll explore this further.
  • Time estimation

I based my plan for the jam on what I’d learnt from the week 1 creative piece. While the structure was, on the whole, fairly sound, my time estimations for each phase weren’t always very accurate.  I compensated for slippage by adjusting and capping subsequent tasks to stay on track.  Experience will help with this, but I’ll also look to adopt some Agile principles to improve my project management skills.

  • Select projects that inspire me

I generated a list of theme ideas, and decided to pursue my “Quick Cook Challenge” app idea, as it was something that I thought I might use myself, and some rudimentary research identified that there might be an opportunity in the market for it.  But, after working on this for a few days, I noticed myself beginning to procrastinate, which told me that I wasn’t as invested in the concept as I’d first thought, and I had to be quite disciplined to make progress with it.  I might have avoided this by generating a theme that I could really get excited about, had I afforded more time for the theme generation phase, and applied a more strategic concept assessment and selection criteria.

  • Subconscious thinking is valuable

Many of my better creative ideas happened while I was doing something completely unrelated, with thoughts just popping into my head from nowhere.  I need to capitalise on this and build purposeful breaks into my plan at the appropriate times, to allow for this subconscious ideation to happen.

Taking all of this into account, my main objectives for the remainder of the module are:

Objectives for the rest of module 1

  1. Programming

Before the next Module starts, I will use Flutter to build a working prototype for the “Quick Cook Challenge” app, from the jam. I will apply the principles learned as I go through 6 Flutter and Dart tutorial courses, to create a fully working prototype.  I will dedicate 18 hours per week to this, as it is essential that I can comfortably build an app of a decent standard, for the rest of the course.  To further improve my capability, I will also read “Think Like a Programmer”, and engage with the Flutter community, by connecting with relevant individuals and groups on social media platforms, as well as sharing ideas with others within the study group who also have an interest in Flutter.

2. Version Control

By 26/04/19 I will be comfortable using Git and GitHub for version control, both from the command prompt, and through Android Studio, so that I am well prepared to work on collaborative projects.  I will spend 2-3 hours per week taking 2 video tutorial courses.

3. Development tools

Before the next Module starts, I will select and learn how to use:

  • A process flow diagramming tool to draw process flow diagrams more easily
  • A wireframing tool to create medium fidelity screen plans more quickly

I will assess 2 or 3 of each type, analysing the benefits over using pencil and paper, and select the ones that I feel most comfortable with, if any.  These tools could prove very useful during future app development projects.

4. Better time management

Feedback has, so far, been largely positive, and encouraging, but I’m finding myself falling behind the pace of the course, a little.  I need to adopt a more structured, but flexible, approach to managing my week, to help me to achieve a good balance of technical skills and coursework.  I’ll spend the next 2 weeks catching up, and then work to keep pace going forward, using this weekly plan, of 3 hour periods:

And this is how it all fits into my plan for the rest of the module.

Using Journal Writing to Enhance Reflective Practice by David Boud

I found the paper “Using Journal Writing to Enhance Reflective Practice”, by David Boud,, helped me to develop my understanding of the importance of engaging in reflective practices

For my own sake, I will outline here the key points that I took from reading this paper, which defines reflection in the following way:

Reflection has been described as a process of turning experience into learning. That is, of exploring experience in order to learn new things from it. Reflection has been described as ‘those intellectual and affective activities in which individuals engage to explore their experiences in order to lead to new understandings and appreciations.


Boud, Keogh and Walker 1985: 19

The following points are made to elaborate on the the ways in which reflection is an effective learning aid:

  • Reflection is about taking the raw, unprocessed material of experience and engaging with it to make sense of what has occurred
  • Exploring often messy and confused events and focusing on the thoughts and emotions that accompany them.
  • Events and experiences are recorded, processed and performed.
  • The basic assumption is that learning is always grounded in prior experience, and that any attempt to promote new learning must take account of this learning.
  • All learning builds on existing perceptions and frameworks for understanding, and links must be made between what is new and what already exists.
  • Past experiences profoundly affect perceptions of what is and what isn’t important.
  • Much of the benefit of participating in any event derives from how it can shape our participation to suit our goals.

This paper has helped me to secure at least an overview of the main purposes of engaging in reflective practice through journaling.

Getting To Grips With Reflection

While the Johari Window model has been a useful aid in getting to grips with critical reflective journaling, and feedback received to date indicates that I am moving closer toward satisfying the requirements of the assessment criteria, I am still not completely confident that I am getting this right. However, this week’s course material (which I think I might have found very useful in week 1) and the relevant recommendations on the reading list, are helping me with this, along with learning from continued feedback.

I found it helpful to interpret the video on the holistic reflection and the reflective domains into a model (above) which maps out what a holistic reflection needs to look like. I will attempt to use this in my reflective practice on order to find the right balance across all five domains. While each domain needs careful consideration when reflecting on any topic, I can see that the relative weights might vary, depending upon the nature of the subject matter in question. The skill to be mastered here is the ability to recognise where the emphasis needs to lie, in order to get the correct balance within any given context.

Critical Reflection and Journaling

The focus for this week is on critical reflection and journaling.

I hesitate to be so candid here, and I have no intention to offend, but I understand that this is a space where I am required to say what I feel, so here goes…

If I’m totally honest, my initial instincts tell me that critical reflection and journaling are a bit of a waste of my time. At this point, it feels like an academic exercise that is a distracting nuisance, robbing me of a considerable amount of time. Time that could be better spent developing critical skills.

My objectives for this course primarily lie in gaining a good range of skills that will enable me to develop well received, commercially lucrative apps. I therefore want to spend the vast majority of my time focusing on achieving coding expertise and development best practice, as well as improving my business and design capabilities.

Considering the marking schemes for this module, I notice the emphasis on reflective practices and self-analysis. I’m sure that is by design, rather than by accident, or purely for the box-ticking sake of it, and so, I am prepared to suspend my judgement, and approach creative reflection and journaling with an open mind. I will trust the process, actively strive to discover the value in it, and see if I can make critical reflection and journaling beneficial for me. I’m not saying that I’m right to feel the way I currently do – I’m merely saying this is how it is at leas at this point, but I am open to having my opinion changed.

I am new to critical reflection journaling, and for the past 3 weeks, I have struggled with it. Knowing what to share, and how to share it within this arena is not something that has come naturally to me, and I think that I have found it difficult to strike the right balance.

This situation has brought to mind the Johari Window model ( Joseph Luft and Harrington Ingham, 1955 ), that I was introduced to many years ago during a training course. The concept resonated with me at the time, and has stuck with me ever since. The model is used as a basis upon which to examine interpersonal and intrapersonal communication, and how relationships can be effected by the appropriateness (or otherwise) of what information is and isn’t shared between relevant parties.

The model provides a simple framework for us to think through the consequences, and decide which box is most appropriate for a piece of information, within a specific context. A lot of social media users would do well to consider the Johari Window model before posting!

I’m still not entirely convinced that much of the content of this post shouldn’t have remained in the ‘Hidden’ box (i.e. kept to myself), but, if nothing else, I can always learn from the reception it gets.

Establishing The Flow & Prototyping

Having established the concept for my app, I set to work mapping out the process flow, in order to build up a picture of what screens are required, and how they should interact with each other to provide the user with logical paths, and decision points, from start to finish. Green boxes represent a screen and yellow diamonds represent a user decision, leading to alternative paths through the app:

Constructing a process flow diagram like this is very helpful in charting the various paths that must be provided for the user to intuitively move through the app, and the purpose of each screen that needs to be presented along the way.

Having learned from my experience in the creative piece from week 1, I constructed an initial version of this process flow diagram, and amended it when I identified any anomalies as I worked my way through the process of building screen layout prototypes. The final version is presented above.

As a starting point for prototyping, I spent some time roughly sketching screen layouts, which helped to clarify the purpose and features of each of the screens, and to refine the process flow diagram.

I then went on to convert those sketches into an increased fidelity (albeit still static) prototype . And here is the result of the prototyping exercise. Screen numbers correspond to the numbered boxes in the process flow diagram above:

ENDS

Refining The Concept

Now that I’ve decided to pursue the cooking challenge , I need to further develop the concept to design an app product that will stand out from the crowd.

Time prevents me from delving into the much deeper market research exercise that I would undertake, if this were a product that I intended to actually launch. Without this constraint, I would have spent a lot more time analysing the market for the existence of cooking challenge apps, and gaining a more thorough understanding of what the market wants and needs, and what it doesn’t. However, the research that I have done indicates a gap in the market, and so I aim to exploit that gap with a concept that encapsulates the following elements:

  • Government agencies are pushing for people to reduce their consumption of takeaway and convenience meals
  • There is a general upward trend toward wanting to adopt and maintain a healthier diet
  • The most popular reasons for not cooking at home include:
    • people are busy and don’t have the (perceived?) time to cook at home as frequently as they should (and could)
    • a perception that convenience foods are much cheaper than fresh foods
  • People like recipe apps and “food porn”
  • People enjoy communal food judgement

So I came up with the concept of “The Quick Cook Challenge” – The only app where you can find or share the recipes that suit your lifestyle, and celebrate your culinary successes, and disasters, with the community.

The app will provide a double hook, encouraging users to the platform who:

  • want to share their recipes and try new recipes posted by other community members
  • seek the entertainment value of judging the efforts of the community.

Next, I will look at the flow of the app, and design screen layout prototypes to deliver the features of the concept…

Option Selection – Market Research

I employed some rudimentary market research to compare the validity of the remaining two app concepts. I explored possible gaps in the market, with a view to identifying who is already doing something similar, pinpointing an untapped niche opportunity and the associated target market and formulate some semblance of a unique selling point to satisfy the needs and wants of that target market .

I looked at the mentor platform theme first and found that there are already quite a few platforms for matching mentors with mentees. Some are focused on a particular niche area, such as Mentor, for professional women, and iMentor for US students, but others, such as FindAMentor and Mentor City are more general, covering a wide range of mentoring opportunity.

I could have spent more time researching the market for mentoring, with the aim of identifying a niche to serve with a unique selling point, but decided to look at my cookery competition theme to see if I could spot any obvious opportunity there.

There are a LOT of recipe apps and websites. Too many to count. One of the most popular being “Yummly“, which carries more than 2 million recipes, and boasts a
worldwide membership base of over 30 million subscribers. There is clearly a huge appetite (pardon the pun) for recipe apps, which indicates that opportunity could well be present, if only I can find a fresh and unique angle that appeals to the market, whilst fulfilling the jam theme of “Guide”, “Restricted” and “Opponent”.

I then focused on cooking apps with a competitive/challenge element, and found surprisingly few. There is “Food Fu” and “Come Dine With Me”, which have (iOS only) apps that provide for holding a competition among your friends. And then there’s Reddit’s “52 weeks of cooking” challenge, which provides a theme each Monday, and encourages over 38 thousand subscribers to “cook something new”. There are also some small niche offerings, like “meatless Monday”.

I remembered seeing a Facebook group called “Rate my plate”, where members post pictures of what they are about to eat, for other members to judge and comment on, largely with derogatory, but playful, humour.

This group has a following of close to 2 million, which indicates that there are plenty of people that enjoy having their efforts judged (and even overtly ridiculed!) and plenty of people that are more than happy to oblige.

I suspect that this group (and other similar groups) grew out of the “Nailed it!” phenomenon that swept the internet, where people posted the amusing comparative results of their efforts to emulate culinary creations that they found in the internet:

With the current health-driven push for people to cook more fresh food at home (rather than rely on takeaway and convenience meals) and considering the popularity of recipe apps, and communal food judging, I believe that there is a strong USP to be found with a fusion of the 2 concepts. This is the concept that I will pursue.

Option Selection – Initial Evaluation & Elimination

I need to cut my list of possibilities down to just 2 to move forward with. I was expecting to have to spend some time deliberating this, but I arrived at my conclusion after asking just 2 questions:

1. Would I use it?

It’s so much easier to develop an app concept for which you consider yourself to fit the profile of the target market. Therefore, it was easy for me to eliminate the trades person’s work management tool and the children’s treasure hunt concepts.

2. Do I know enough about the subject area?

As time is a limiting factor here, it is wise to discard any concept that would require extensive research in order to generate authentic and meaningful content. I eliminated the habit breaker concept on this grounds. Although it is something that I think I might really enjoy bringing to life, I don’t know nearly enough about Neural Linguistic Programming, Cognitive Behavioural Therapy, or any of the necessary psychological techniques required to effectively make a difference. Extensive research time and collaboration with experts in the field would be essential and these are resources that I just don’t have at my disposal.

So that leaves me with two concepts to delve a little deeper into, to explore the possibilities:

  1. A cookery competition app
  2. A mentoring platform

Jam Ideation – Associations & Links And Formulate Concepts

The point of this stage is to analyse the result of the brainstorm, compare and contrast the lists that were generated, and start to consider the patterns, concepts and themes that emerge from that.

The Result

I took the full 20 minutes to came up with a list of general themes that could potentially lend themselves to solid app concepts, and satisfy the requirements of the jam theme. It then only took me a further 22.5 minutes to put a little flesh on the bones for each of the the top 5 themes to turn them into high level concepts (in no particular order):

  1. A treasure hunt style game for children, to guide them around an attraction or location e.g. a zoo or maybe a city centre, imposing restrictions, such as road blocks, along the way, They could be collecting tokens as they go, which generates a score, dictating their position on a leader board, where they can see how they performed, relative to their opponents (all other users).
  2. A cookery competition where opponents are guided by a recipe, with ingredient and time restrictions, with the video/ photo results uploaded to compete for likes.
  3. A habit breaker, that guides the user from their nemesis (opponent) ingrained habit, to freedom from the restricted lifestyle that the habit causes.
  4. A mentoring platform that matches those seeking guidance through a project, due to their restricted experience and/or ability. The user will then compete against opponent mentees to be selected by the mentor.
  5. A CRM and work management tool for independent tradespeople, guiding them through an efficient process from initial customer contact, through quoting, invoicing and building an ongoing relationship with the customer. Many Independent tradespeople are restricted by time and know how when it comes to administration and establishing an effective process. Using this app will help them to win jobs over opponent tradespeople.

I have managed to bank almost an hour of allotted time for this stage. The ideas flowed faster than I had expected them to, but, I do put some of this gain down to an overestimation of the time required to achieve this.

I now need to apply some evaluation criteria to whittle this list down to just 2 contenders…

Jam Ideation – Brainstorming

The purpose of this stage is to build upon the dictionary definitions of “GUIDE”, “OPPONENT” and “RESTRICTED” in a free flowing, unfiltered brain dump of word associations, synonyms, antonyms and anything else that might come to mind.

For the sake of clawing back the time lost during the dictionary definitions stage, I restricted my time on each of the words, and used good old pen and paper as my tools for the job, rather than employing digital methods. The benefit being that it is far quicker to scribble down the ideas as they come into your head, but this comes with the cost of presentation. In reality, this is not a problem as the true purpose is to generate ideas for yourself,. however, in this instance, the outcome will be shared in this blog post, so all I can do is apologise to the reader for my very untidy handwriting, which you will probably find illegible. I can read it, and that’s all that really matters.

The Result

I found that once I got started, the ideas flowed fairly quickly and effortlessly, up to a point, and then a more conscious thought process engaged as the speed of idea generation reduced. 15 minutes was adequate time for each of these words and so I called a halt early, which creates 5.5 minutes of extra time for the rest of my plan, which I’m sure I will be thankful for at some point.

Jam Ideation – Dictionary Definitions

The theme of the app jam is the three words:

GUIDE

OPPONENT

RESTRICTED

So the first step was to get a definition for each word from the Oxford English Dictionary online, and to then break each one down into appropriate chunks . The purpose of this is to provide a foundation for the creative process of exploring the possibilities that the theme affords. I used Powerpoint to do this as it is easy to rearrange the chunks as necessary.

The result:

Right off the bat, I’ve experienced slippage on the first task. This is down to a combination of factors:

  1. The original estimate of time required for this task was a little on the optimistic side.
  2. Breaking the definitions down into boxes in Powerpoint was a little more fiddly than I had anticipated.
  3. I had watched the theme revelation video before tackling this stage, but I hadn’t noticed the attached papers that explained the use of VNA (Verb, Non, Adjective) cards. I have since read them (but not until after I had completed the Associations and Links stage) and I now realise that “GUIDE” must be used as a verb, and so I might have wasted some time arranging and considering the definitions and examples of “Guide” used as a noun. I could have saved some, if not all of the excess time by ignoring them. Looking at it from a different angle though, a guide, is used to guide. The two are practically interchangeable, and so, it could be argued that exploring “GUIDE” as a noun was time well spent.

I will compensate for this slippage, and bring the critical path back into line, by restricting my Brainstorm stage to 16 minutes and 50 seconds per word, instead of the planned 20 minutes, making up the 9.5 minutes overshot on this phase. To help with this, I will abandon any digital tools in favour of a fast and furious pen and paper brainstorming session.

App Jam – The Plan

In preparation for the app jam, I have pulled together a Gantt chart on Excel, breaking down the task into the following categories, and sub-categories (with time allocations, in minutes, in brackets):

  1. Ideation (180)
    1. Dictionary definitions (20)
    2. Brainstorm (60)
    3. Associations & Links (20)
    4. Formulate Concepts (80)
  2. Option Selection (180)
    1. Initial Evaluation & Elimination (30)
    2. Market Research (60)
    3. Process Flow (60)
    4. Option Selection (30)
  3. Prototyping (300)
    1. Draw Paper Screens (60)
    2. Build wireframes (240)
  4. Testing (150)
    1. Paper prototype test (60)
    2. Wireframe test (30)
    3. App test (60)
  5. Post Test Refinement (360)
    1. Paper Prototype (60)
    2. Wireframe (60)
    3. App (240)
  6. App Build (1710)
    1. Pseudo Code Framework (150)
    2. Build UI screens (630)
    3. Build Transitions (240)
    4. Research Content (210)
    5. Build Content (210)
    6. Build Logic (270)

I have allocated the available time (48 hours, or 2880 minutes) as I currently feel is appropriate. I am backloading the plan, affording more than half of the available time to the build process, as I know that my current coding capabilities are very low and slow, so I will need to seek regular guidance from online sources throughout the build phase.

I will manage the project timings tightly, using a countdown timer app on an old Samsung Galaxy S5 device that I use for development and testing (so that I don’t have to root my own phone). I am, however, prepared to allow for some flexibility if and when I feel that my predicted time requirement was unrealistic, or if the nature of the app selected justifies deviation from the plan. For example, if I were to generate a great concept that would require more time to research the content, then I would consider pulling back the allocation for other sub-categories to compensate, as long as I feel that this will not have an adverse effect on the overall 48 hour deadline.
I will pause the clock while I am not working on the jam and record the actual time taken for each sub-category on the Gantt chart as I finish them, which will be used in a post-jam variance analysis exercise.

With my plan in place, it’s time to jam…

Flutter: Getting Started

This course is exactly what I need in order to commence my Flutter development. I’m only half way through, so far, but this is enough to convince me that Flutter is indeed the best way for me to proceed.

There are step-by-step instructions for building a number of simple apps. Although I am copying the code provided, it is helping me to gain an understanding of how the Dart language is used to nest widgets in order to build up screen layouts. Here are photos of the two apps that I have built with this course to date:

The tutorial uses Visual Studio Code as it’s IDE, whereas I am using Android Studio, due to my familiarity with it. There have been a few instances where I’ve needed to use Google to find the AS equivalent of a VSC keystroke or function, but on the whole, it hasn’t really posed much of an issue.

The tutorial also uses an earlier version of Dart. I came across a situation where a void class was used in the tutorial to return a null response, which worked fine for the instructor. But when I came to run the code, Android Studio flagged an error. A little research informed me that Dart version 2 treats void classes differently to version 1. I need to find and take a general Dart course to help me to become comfortable with Dart, and fully understand this void situation. However, I managed to overcome the runtime error by bringing the commands within the void class into the main class. I know that this is not the optimal solution, but with my current lack of Dart knowledge, it was the best fix that I could apply to make the app work as it should.

When I compare my (albeit, currently short) experience of Dart and Flutter to a similar point in my learning Java for Android, Dart and Flutter seem to be so much easier to take on board. It took me a long time to get to grips with Java (the first real Object Orientated Programming language that I had experienced). Although I was beginning to feel some semblance of a level of confidence with it come the end of my nanodegree course, I was still unable to build complex code structures, such as recycler views, asynchronous tasks and JSON readers, without following along with a tutorial. I’m sure this will be the same with Flutter, but I suspect that this stage will not last nearly as long, as the code seems to be far simpler. Flutter also offers on-screen options that appear as you commence typing, making it a far more intuitive coding experience than Java is. Having said that, I fully appreciate that the Java learning experience is helping to make learning Flutter easier than it otherwise would have been, so i still consider that to be time well spent.

The hot reload function that Flutter offers is also a huge development-time advantage over the Java method of rebuilding the app every time you want to see your code running on a device or emulator. After the first load,hot reload simply sends and implements just the changes that have been made to the code, and so it is infinitely quicker, less than a second in some cases (as opposed to minutes), saving a considerable amount of development time over the course of a project.

This early on, the one area that is causing me problems (so far) is using the correct bracket type – (,{ or [ – and punctuation marks – colons, semicolon and commas – in the right place for the widgets to be properly nested. It can get quite confusing, but it’s just a case of practice makes perfect. Completing this course and going through the other 2 Flutter courses will provide me with plenty of practice in this area, but I also think that a general Dart beginners course will be really useful with this too, so I will seek some out.

In addition, I have sourced a kindle book for Dart, which I will start reading soon. I have also just discovered an article on Medium that lists a number of IDE shortcut keystrokes that will be very helpful with getting this right.

I can see a lot of potential for Flutter. I have very much enjoyed my first real experience with it, and I’m looking forward to spending a lot more time learning. Disappointingly, for the next couple of weeks, the app jam will have to take priority and so I will be unable to afford as much time as I would like, if any, with Flutter tutorials. I’m hoping that the workload will calm down a bit after that, so I can get the opportunity spend some good quality time establishing some solid Flutter skills.

Develop With Flutter And Firebase

This course runs for less than an hour, and so I wasn’t expecting too much from it. It was too early in my learning to be looking at integrating Firebase with Flutter apps really, but it was worthwhile in so far as I now have a conceptual appreciation for the functionality, and I can always come back to the video when I am at a point where I need to integrate Firebase.

Learning Google Flutter for Mobile Developers

This course runs for less than 2 hours, so I didn’t expect to emerge from it with any level of expertise, but I was still left a little disappointed. While it was interesting, I didn’t find it particularly instructional. It did, however, give me a flavour of what to expect from Flutter, which was good, but I certainly didn’t feel equipped to start coding afterwards. Not to worry, this just the first of 5 courses that I have lined up…

.

Test Driving Flutter

Following last week’s in-depth research into development strategy options (which actually ran well into this week too), I’m keen to roll up my sleeves and get stuck into learning how to develop Android & iOS apps with Flutter.

I found 5 video tutorial courses:

  1. From Lynda: Learning Google Flutter for Mobile Developers
  2. From Lynda: Develop With Flutter And Firebase
  3. From Pluralsight: Flutter: Getting Started
  4. From Udemy: The Complete Flutter App Development Course for Android, iOS
  5. From Udacity: Build Native Mobile Apps with Flutter

I’m sure there will be a certain amount of commonality between them, but going over the same things a few times can only do me good in the long-run, and it will be interesting to see different perspectives, and whether there are alternative ways of doing things.

On the flip side, I am expecting each course to have at least some unique content, and so I think it will be highly beneficial for me to work my way through all of these courses, and more besides.

App Jam

This week is all about the app jam. This is my first experience of a jam and so it is a little daunting. But, in essence, it’s a very similar exercise to the creative piece in week 1. That went OK, and I learned a few lessons from it, so what’s the worst that can happen?

I do feel that this jam has come a little early for me though. As much as I would like to finish the 48 hour stint with a fully working app, I am currently but a few hours into my Flutter test drive, and so the hope of achieving a fully working app within 48 hours is somewhat optimistic, if not unrealistic.

Therefore, my plan for the jam will make allowances for this, and afford as much of the allotted time as possible to the building of the app. Will this be at the expense of the other phases of the process? Possibly, but I will just have to sharpen my focus throughout the earlier stages, making sure that I use my time as efficiently as possible, minimise wasted time, and reach decisions swiftly.

I am fully aware that I have a tendency to over analyse situations in the pursuit of an optimal outcome. This is not necessarily a bad thing in many circumstances, but time is of the essence here, and so I need to make a conscious effort to keep to milestone deadlines wherever possible, and to trust my intuition, if and when necessary, rather than spending too much time gathering supporting evidence.

If I should finish up with a fully working app within 48 hours, that’ll be great. However, that is a secondary concern for me. I am primarily focusing on what I can learn from the process of this jam, which will, in itself, reap rewards during subsequent similar circumstances.

Version Control With

I already had an awareness of Git through my studies with Udacity, and so my laptop is already set up with git and I have a GitHub account. However, as the old addage goes… a little knowledge is a dangerous thing. As part of my nanodegree studies, I was encouraged to use git and GitHub, but instruction provided was minimal and I consequently found myself getting into all sorts of problems with it, due to my ignorance. At the time, it seemed that the use of git and GitHub were primarily for sharing my projects and submitting them for assessment. I was more concerned with furthering my app development skills than learning the intricacies of git/GitHub, and so I abandoned it (to end my growing frustrations with it) and opted for the much simpler alternative of sharing my projects through Google Drive.

The introductory videos provided on this course have given me an appreciation for the importance of version control, and how git and GitHub are tools that I should embrace, for my own sake.

To date, I have only really used GitHub through Android Studio, as opposed to GitBash, and I now realise that I need to gain a greater understanding of how both methods work.

I decided that I needed to seek out some tutorials on the subject to improve my skills and knowledge in this area. I have so far found 2 free version control/git course with Udacity (ironically!) that I will start with, and see if I need further guidance after that:

How To Use Git & GitHub

Version Control With Git

ENDS

WordPress Tutorial

Having never blogged before, I followed my intuition to set up my critical reflective journal last week, as best I could. I knew what I wanted to do, but couldn’t figure out how to do it, without assistance. So, I thought it would be a good idea to invest some time in learning how to use WordPress properly this week.

I did search on Lynda and found the tutorial video series: “WordPress 5 Essential Training” with Morten Rand-Hendriksen

This was a great, and relatively short, introductory course, which quite quickly helped me to see that a WordPress post is built up using blocks. I had been trying to use it like a word processing packages and getting quite puzzled (and a little frustrated) when my text wasn’t behaving as I expected it to.

Following the guidance of the tutorial video series, I feel like I have now grasped the main concepts quite well, and have managed to publish a number of posts that are easily navigated through the menu, category and tag systems that I have in place.

As I work through the rest of the module I will continue to experiment and learn more of the capabilities of WordPress, in an effort to eventually achieve blog that serves me well and I am proud to present.

Evaluating My Strategic Options

The course videos provided a good starting point for investigating the wealth of development strategies that I could adopt. It is clear to me that my choice of strategy is a key decision at this point and I need to take the time to make the right decision.

My priority, when considering my options, is that I need to be confident that I am able to achieve my objective of developing mobile apps that are accessible for at least the majority of the market. So, my first step is to get a feel for the state of the market for operating system platforms to see who’s currently buying what:

The Mobile Device Market By Platform

I looked at the Statcounter website to get the latest available data. To start with, I pulled up the market share at a global level:


Worldwide: Android 75.4%, iOS 20.8%, other 3.2%

I was already aware that the market for mobile devices is essentially a duopolistic situation. However, I was surprised to learn that, globally, Android is the clear dominant force, claiming an average market share over the past year of 75.4% compared to that of iOS at 20.8%, and together, claim almost all of the market between them. All other operating systems combined make up only around 3.8% of the global market for mobile devices over that period.

So I thought it would be interesting to drill down to see how the market looks at a continent level:

Africa: Android 79.6%, iOS 7.5%, other 12.9%

Asia: Android 83.2%, iOS 11.8%, other 5.0%

Europe: Android 71.0%, iOS 27.3%, other 1.7%

North America: Android 49.3%, iOS 50.1%, other 0.6%
Oceania: Android 44.1%, iOS 54.6%, other 1.3%
South America: Android 86.8%, iOS 10.3%, other 2.9%

It’s interesting to see the differences between the continents. I would assume that the factors behind this largely revolve around price sensitivity, technological capability, and the breadth of app availability. Android is an open source platform, with many contributors to it’s development, whereas iOS has Apple in control. Android is therefore a far more flexible platform than iOS. The Open Handset Alliance is a group of 84 technology and mobile companies who have come together to accelerate innovation in mobile and offer consumers a richer, less expensive, and better overall mobile experience through the Android platform. This enables a broader range of device options across a much wider spectrum of price points, opening up the possibility of mobile device ownership, particularly so in the more price sensitive markets. The network effects of this, coupled with the relatively uncomplicated app market (compared to iOS) make it a more attractive platform for many 3rd party developers, which in turn leads to a greater breadth of app choice for Android consumers. Loyalty for both platforms is high, although slightly higher for Android.

I then went on to examine the data for several country level markets. I wont include them all here, but as the UK and the USA are probably my most relevant markets, here are the relative market share for these countries:




UK: Android 47.4%, iOS 50.9%, other 1.3%

USA: Android 44.4%, iOS 55.1%, other 0.5%

Even though I was certain that I need to develop for Android and iOS platforms, examining market data was a worthwhile exercise for 2 reasons: firstly, I have now confirmed that my assumptions were sound, and secondly, I had no idea whether or not I should also consider the need to develop for other platforms (I had Windows in mind in particular). The conclusion I draw from the market share data is that I definitely need to develop for both Android and iOS platforms in order to reach almost the entire market, but I don’t consider the other mobile platforms as being particularly significant for me. At least, not sufficiently significant to allow it to influence my choice of development strategy.

Strategic Options

Now that I know that I am targeting Android and iOS platforms, I need to consider the 3 high level routes :

  1. Native Development
  2. Progressive Web Apps
  3. Cross-Platform Development

Native Development

Built specifically for a single platform, native apps are written languages that the operating system is specifically designed to accept (Java or Kotlin for Android, and Objective-C or Swift for iOS. Native apps tend to offer a better user experience, superiority in terms of performance and they don’t necessarily require an internet connection (unless remote data storage reading/writing is required). The major setback is the need to develop a completely separate code base for each platform, which has a big impact on resource requirements (time, expertise, cost) across the entire development lifecycle.

Whilst it would be essential to be essential for me to develop an expertise in two languages and build and maintain two separate code bases, I do already have a certain amount of experience with Java for Android and so I consider native development to be a viable option for me.

Progressive Web Apps

Effectively, a mobile website built with JavaScript frameworks, designed to look, feel and work like a native app. This route provides a number of benefits, including
a single code source accessible to any platform with a browser, a fast responsive user interface and no need to go through an app store (this has it’s pros and cons). However, there are some drawbacks, which include: limitations on the accessibility of device hardware accessories (particularly on iOS), increased battery power requirement and limited access to plugins (such as Facebook login & verification facilities). Furthermore, from a personal point of view, I have no web development experience whatsoever and so I would be starting from scratch.

I feel that, for my purposes, the downsides outweigh the benefits, and so I’m dismissing progressive web apps as a viable way forward for me.

Cross-Platform Development

There is a mind-boggling wealth of framework tools that provide the capability of developing apps that run on both Android and iOS (and other operating systems in some cases). A single code base is written and maintained in language(s) specific to the chosen framework, which then employs a translation process (compiler, interpreter, virtual machine) to create compatibility with the target operating system.

The major benefit of adopting a cross-platform strategy is the efficiency of one code base serving both platforms is common to all of the framework tools. The common disadvantage is that they tend not to achieve the performance metrics that native apps do. Each framework has arguments for and against it’s adoption, which makes for an overwhelming compare and contrast exercise.

I have done a lot of reading around cross-platform frameworks this week, assessing the relative advantages and disadvantages of many of the more popular options (such as Reactive Native, Xamarin, Ionic and Apache Cordova, to name but a few). It’s not feasible for me to go into any depth of analysis, comparing and contrasting each against the others here, but I did find it difficult to find any one framework that offered a clear advantage for me.

Up until last week, I had no appreciation for the number of cross-platform tools that are available. However, I had come across Flutter, which I find to be an attractive proposition, and so I have been using this as a yardstick against which to compare the various framework options.

Flutter is Google’s free, open source mobile app SDK for crafting high-quality native experiences on iOS and Android in record time, using a single codebase .

Flutter uses Dart, a modern and concise, object-oriented language , which is compiled “ahead of time” (AOT) into native code for multiple platforms. This allows Flutter to communicate with the platform without going through a JavaScript bridge that does a context switch, achieving excellent app performance, and near instant app startup times, that outshine all other cross platform development methods. Additionally, the hot reload functionality (which uses a just in Time compilation model to compile in real-time) makes for a far more efficient development experience as there is no need to rebuild the entire code base every time – it just implement the changes. Dart being a relatively straightforward language to learn is also a big draw for me, as I still currently consider myself to be little more than a coding novice.

All things considered, Flutter remains a favourite option for me. However, I’m not without my reservations, chiefly due to it’s lack of maturity as a framework. That said, the risks are somewhat mitigated by the fact that Google is investing heavily in the development of Flutter (including compatibility with the web, as well as Google’s currently in development operating system, Fuschia), and it is currently widely considered to be the fastest growing SDK, with the fastest developing community (which appear to be incredibly enthusiastic, altruistic and loyal ).

In conclusion

I have decided to give Flutter a test drive to get a hands dirty insight into it’s potential. If that doesn’t work out for me, then I will revert to plan B, which is the native approach, where I pick up where I left off with Java for Android, and, then learn Swift for iOS, once my Java capabilities have been sufficiently developed.

I have identified a number of sources of tutorials, which I will engage with, in order to test my theory that Flutter is the future, and best choice of app development strategy for me.

Platforms & Tools

This week, we’re diving into the nuts and bolts of app development tools.

I see app development as being a talent that comprises of three major components (in order of my perceived importance):

  1. Technical skills
    • the ability to build a robust product that satisfies a brief, employing the most appropriate and effective tools.
  2. Business acumen
    • identifying opportunity in the needs and wants of the market and creating a business model to deliver a financially viable solution that the market is prepared to pay for
  3. Artistic flair
    • applying creativity and psychology to a product in order to provide an emotional and pleasurable user experience

In a team development environment, it’s important to get the right balance of these three components, by carefully selecting team members that possess the necessary skills and experience in at least one of these components. If career intentions lie in working within a development team, focusing on just one of these areas to cultivate a particularly marketable level of expertise, could be considered a good strategy.

However, my objectives for the creation of a startup venture, will see me operating as a lone developer (initially, at least). It is therefore vital that I strive to make significant progress with all of these competencies to maximise my opportunity to make a success of it.

This conceptual web diagram is a representation of where I see myself at this point:

Of course, this is a subjective assessment, purely based on my own perceived achievement to date, largely drawing on a comparison with my peers. It is merely a representation of where I feel I’m at, with no scientific quantification behind the scores at all.

My intention for this course is to develop my score in each of theses areas, to effectively increase the area of my triangle, representing my potential as an app developer.

Note that each of the scale ends have an arrow, pointing toward infinity, acknowledging my appreciation for endless learning opportunity and an ever changing world.

This week is where we get to work on developing my technical skills…

Practising critical reflection: a resource handbook

 Fook, Jan; Gardner, Fiona; ebrary, Inc (2007)

Being the first book on the reading list, I thought this might be a good starting point.  I read the preface and first two chapters.  It makes for a very dry read. Social work is used as a context for much of the illustrative examples.

I do intend to revisit this book and read the rest of it. However, there are nine other books for me to get through on the resource list and I feel that this one deserves a place nearer bottom of the priority list.

Comparing Performance Parameters of Mobile App Development Strategies

This paper compares the performance of ten of the most popular Cross Platform Tools (CPTs) for app development, relative to that of native tools.  The CPTs are tested on Android, iOS and Windows platforms (where possible) and are categorised as either:

  1. Javascript frameworks & web-to-native wrappers
  2. Runtimes
  3. Source Code translators

A fourth category of ‘App factories’ is acknowledged, but excluded from the comparison due to their limited and simplistic nature.

The performance criteria used for evaluation are:

  1. Response times
  2. CPU usage
  3. Memory usage
  4. Disk space requirements
  5. Battery usage

Generally, the overall findings show that the performance of native apps are superior to that of any of the CPTs.  The paper also goes on to acknowledge that the use of CPTs can have an impact on specific functional aspects of mobile applications, such as capability with complex algorithms and device resource accessibility.

Up until now, I have been considering pursuing the use of Flutter as a cross platform development tool.  This paper has suggested that I need to undertake further research into the performance and other capabilities (and limitations) of Flutter, and whether the benefits of developing a single app for both Android and iOS platforms outweigh the limitations that this approach might present.

I will also investigate some other CPTs, such as Xamarin and React Native, in order to gain wider perspective, and an appreciation for what options are available along with their relative pros and cons. At this point, I remain undecided.

Remote Paper Prototype Testing

Paper prototype testing is useful for testing your concept with a sample of intended users, at an early stage of development. 

It can be very helpful in establishing how well you have understood your market, their requirements from your app, and your alignment with their thought processes.  This can be a relatively straightforward exercise, however, certain situations can dictate that a face to face meeting is not an economically viable option, and so it could be useful to conduct the exercise remotely.

Some good examples would be when testing cultural differences, or where location/setting (that the developer doesn’t have easy access to) plays a significant role within your app. 

My “Breakout!” concept could be tested using a video link to a classroom, as this is where the app is intended to be used. Students would be in an environment that is familiar to them, eliminating any potential intimidation or nervousness ( which could skew prototype testing results) that an unfamiliar environment might present for them.

While doing some further reading around the subject of remote paper prototype testing, I came across “Morae“, a software tool that facilitates the process. The software basically captures the test session on video, and enables the tester to add notes on the session and the findings. The entire package can then be easily shared with other members of the development team and other stakeholders.

The paper also covers the use of Google glass, but I believe that glass is no longer in use.

Design an App with Android App Inventor

A screenshot of the App Inventor development environment

I like the relative simplicity of this app development tool, and I’m sure that it could do a decent job for:

  • building simpler app ideas
  • building prototypes – particularly useful for testing the flow of your app
  • teaching the basic principles of app development

However, I suspect that Android App Inventor would be considered incompetent beyond a certain level of complexity of requirement.

I spent 20 minutes or so playing with Android App Inventor, and downloaded the app to see my experiments appear on my phone.  Although it appears to be fairly simple to use, I will need to spend more time familiarising myself with it in order to use it for prototyping.

Google Lightning Talks

free background photos from pngtree.com

An interesting series of brief introductions to a variety of Google offerings from the 2017 Game Developers Conference.  Some of the topics were completely new to me (I grasped the concepts to varying degrees), while I had some semblance of familiarity with others.

I could utilise the Firebase database for my “Breakout!” app concept, and incorporate Google Analytics to gain valuable feedback which could be used to assist in the continuing evolution of the app.

The Play Commerce team had 3 useful recommendations for increasing income from your app:

  1. Collect usage data and experiment (Using Google Analytics)
  2. Implement a subscription model (market research would help to shape an appropriate model)
  3. Guard against refund abuse (Unlikely to be a concern with my “Breakout!” app, but worth noting)

I particularly appreciated a quote that one of the speakers used:

“I’ve learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.” — Maya Angelou

I found this to be very thought provoking.  Not only is it a good mantra to apply throughout my app development endeavours, it has a much broader application for general life.

Creative Piece – Design an App Concept

The brief:

We have been tasked with presenting a concept for an app that will create value and enrich communities.  The primary purpose of this task is to experience the process of rapid ideation – an exercise to help nurture creativity.  The app concept must also comply with the constraining theme provided:

“AS LONG AS WE HAVE EACH OTHER, WE WILL NEVER RUN OUT OF PROBLEMS“

My thought process:

I allowed the theme to stew in the back of my mind for a few days before actually doing anything with it.  Although the theme is intended to provide a constraint, it is wide open to interpretation, with a plethora of choice of avenues to pursue.  I found myself identifying numerous divergent paths relating to the theme without conscious effort over those few days. Then came the time to brainstorm.  I firstly identified the 2 key elements of the theme:

1. Having each other:

The first synonym that came to mind was ‘together’.  I then looked for the Oxford English Dictionary definition of together:

  • ADVERB
    1. With or in proximity to another person or people.
      • ‘together they climbed the dark stairs’
      • they stood together in the kitchen’
    2. So as to touch or combine.
      • So as to touch or combine.
      • mix together the soya sauce and sesame oil’
    3.  In combination; collectively.
      • taken together, these measures would significantly improve people’s chances of surviving a coach crash’
    4. Into companionship or close association.
      • ‘the experience has brought us together’
    5. (of a couple) married or in a sexual relationship.
      • they split up after ten years together’
    6. So as to be in agreement.
      • ‘he won the confidence of the government and the rebels, but could not bring the two sides together’
    7. At the same time.
      • they both spoke together’
    8. Without interruption; continuously.
      • ‘she sits for hours together in the lotus position’
  • ADJECTIVE
    1. informal 
      • Self-confident, level-headed, or well organized.
      • ‘she looks a very together young woman’

2. No end of problems

I then looked for the Oxford English Dictionary definition of problem:

  • NOUN
    1. A matter or situation regarded as unwelcome or harmful and needing to be dealt with and overcome.
      • ‘they have financial problems’
      • the problem of ageism in Hollywood’
    2. A thing that is difficult to achieve.
      • ‘motivation of staff can also be a problem’
    3. as modifier Denoting or relating to people whose behaviour causes difficulties to themselves and others.
      • ‘practitioners help families develop strategies for managing problem behaviour in teens’
      • ‘a problem family’
    4. Mathematics Physics 
      An inquiry starting from given conditions to investigate or demonstrate a fact, result, or law.
    5. Geometry A proposition in which something has to be constructed.
    6. Compare with theorem (in chess) an arrangement of pieces in which the solver has to achieve a specified result.

I then went on to randomly and rapidly generate unfiltered word associations for ‘together’ (represented in orange boxes, below) and types of ‘problems’ (represented in blue boxes, below) as two completely separate exercises.

Next, I carefully considered the possible links between the 2 key elements of ‘having each other’ and ‘no end of problems’ (represented in yellow boxes, below).  There is a cause and effect relationship between the two, and so I deduced that a dilemma is presented, the options being:

  1. Remain together
    • Through choice – the perceived benefits of remaining together outweigh the burden of dealing with the consequent persistent problems
    • By force – the entities are together against their will and gain very little or no benefit, while facing endless problems
  2. Separation
    • To bring the problems to an end (or at least reduce them) as it is perceived to be of greater benefit to those offered by having each other
    • To escape the force that is keeping them together against their will and end (or at least reduce) the endless problems.

This is my 1 page brainstorm:

I then used all of these ideas to think of situations that lend themselves to the scenario.  Although the theme offers itself to a whole world of possibilities for games nicely, this is not an area that interests me as a developer and so I dismissed those thoughts immediately. Following this, the most obvious option to me was a dating app.  So many people seem hell bent on finding a life partner, in spite of the inevitable problems that manifest as a result (call me cynical!).  However, I wasn’t totally sold on this way forward as it’s not something that particularly interests me, and I’m aware that the market is very well, if not overly, catered for, which would make it very difficult to identify a niche that isn’t already satisfied, or present originality to the saturated market.

I also liked the idea of pursuing ‘maths problems’ and ‘logic problems’, as I like numbers and logic puzzles (simple example – Tim is twice the age of Tom, who is 6, so how old will Tim be when Tom is 8?).  Coming up with a concept to fit the theme was the next challenge.  During this week’s tutorial, we were urged to consider a game concept, if we are not gamers (which I’m not).  This led me to thinking about how the gamification of end-of-topic testing for school children might help with their enjoyment of the subject and further their learning.

Apart from my own education, I have no experience of the school system (which I’m sure has moved on considerably since I left in 1988).  Had there been a requirement to pursue this concept further, I would have spent time researching the market beforehand.  But, for the purposes of the exercise, I have developed my concept based largely on my own assumptions. I did, however, confirm with a primary school Head Teacher friend that children do use tablet devices as part of their maths lessons.

Results:

I decided on the concept of “BREAKOUT!” – a database driven Android & iOS mobile/tablet app that enables the teacher to test student understanding of an area of study in a way that is far more fun and challenging for them than answering questions read out by the teacher, with a pen and paper in silence.

The premise of the game is that (avatars of) the students are chained together in a circle, with padlocks, each with a (teacher determined) number of locks.  Whilst they are chained together, they will be presented with ‘no end of problems’.  Alternate problems will reward a correct answer with a key to a lock to their left and right. Each time a student correctly solves a problem, they will unlock one of their locks.  The aim of the game is for the student to free themselves from the chains, so that they no longer have each other, and put an end to the problems they face.

Once I felt that the concept was sufficiently developed in my head, I drew up a process flow diagram to help me to determine the screens that were needed, and how they need to interact. Numbers in the top left corner of each box (mostly) correspond with the screen numbers:

I wasn’t aiming for perfection with this process flow diagram, and I know that there are some shortcomings here, but it gave me direction and served its purpose throughout the process of designing screen content.  I actually deviated from the plan on several occasions.  As I moved from designing one screen to the next, my thoughts developed, and further consideration as to the practicalities of using the app inspired some alterations to the flow.  I didn’t retrospectively update the process flow diagram to reflect those deviations.  What you see here is my original plan.

Screen 1 – Log In

The teacher will have access to student log in details to deal with the issue of students forgetting passwords.

Screen 2 – Account Details

Teachers will be issued with a verification code to enable them to set up a teacher account.

Screen 3 – Avatar Builder

Students will be able to build and edit an avatar that represents them during the game.  A selection of boy, girl and other (animals, aliens etc.) choices will be made available.  They will be able to go on to further customise their avatar’s hair style and colour, clothing and shoes, to inspire fun and creativity.

Screen 4 – Team Screen

From the student user’s perspective, the team screen acts as the home screen.  They will be returned here between problems where their progress will be updated and they can compare their status with that of other team members.

Screen 5 – Tutorial

Teacher can opt to provide a tutorial to refresh the subject matter for the students.  This can consist of a mixture of uploaded video, graphics and text, and will be shown to the students before the first problem is presented.

Screen 6 – Problem Screen

The student’s stopwatch is started when the problem screen is presented, and stopped when they submit an answer.

Screen 6a – Marking

The student is informed whether their answer was correct, or not.

Screen 7 – Solution Screen

If the student has answered a problem incorrectly, they will be shown the solution immediately afterwards.  The time taken with the solution will act as a penalty and be added to their score.  The teacher has some control over the magnitude of the penalty when setting the question.

Screen 8 – Leader Board

Students can see how they performed in comparison with other students in their team, and in their class, for each session, and cumulatively over all sessions to date.

Screen 9 – Session Builder

The teacher can build sessions to cover each of the topics on the syllabus.

Screen 10 – Tutorial builder

This is where the teacher builds the (optional) tutorial that acts as a brief refresher for students before starting the first problem of the game.  I have not gone into too much detail here as far as the controls are concerned, but I anticipate a drag and drop capability, with uploaded video and graphics files.

Screen 9a – Problem Builder

The system automatically reports the leader board after each session is complete, and allocates the students to groups according to their overall ranking and an optimised number of groups.  The teacher is able to override these allocations if they feel that students could benefit from being in another group.

Screen 11 – Problem List

The teacher is able to see the full list of problems in the database relating to the session, add new problems, or edit existing ones.

The teacher needs to build up a number of problems (all at a similar level of difficulty and complexity) well beyond the number of locks set on 2 padlocks.  This will allow for incorrect answers.  Students will be presented with problems in a random order, so that they are unable to collaborate.

11a – Problem Builder

This is where the teacher builds the problem screen.  I have not gone into too much detail, as far as the controls are concerned, but I anticipate a drag and drop capability, with uploaded video and graphics files

12 – Solution Builder

This is where the teacher builds the solution screen.  I have not gone into too much detail, as far as the controls are concerned, but I anticipate a drag and drop capability, with uploaded video and graphics files

13 – Start Session

This is the teacher’s control panel for running a game session.  The teacher can see when all the students are ready to commence (and which students aren’t), start the session, and see when students (and full teams) are freed

14 – Teacher Leader Board

This is where the teacher can analyse results of the session and the overall leader board standings.  From here, the teacher can drill down to analyse the performance of each student.

15 – Student Record

This screen shows the student’s overall performance at a session level.  The teacher can then click a session row within the table to view the student’s performance for each question within that session.

15a – Detailed Student Record

The teacher can get an insight into how the student performed within each problem that they were presented with.

Opportunities for further development:

  1. Animation could improve the user experience, particularly where younger children are concerned.
  2. The analytical tools could be enhanced to provide more useful reports for teachers, containing charts to aid performance comparison and progress monitoring.
  3. Different games could be added in order to provide some variation for the students.
  4. If I were to pursue this concept any further, I would invest significant time in market research and concept testing before taking it any further. I did do a search for ‘algebra’ on Google Play, which indicated that there might be a gap in the market for the concept. However, to minimise startup risk and maximise the potential for this concept to become a successful product, Among other things, I would need to know a lot more about:
    • how subject testing is performed in schools now (and the pros and cons of these methods)
    • what teachers and students (perhaps further segmented by age) want from a new product
    • what competitive offerings are currently available (I have since been informed of the existence of kahoot.com, which appears to have similarities with my concept)
    • Education Board approval process
  5. A centralised database (Firebase, for example) would enable results and progress to be compared against other classes and even other schools or countries, providing far greater opportunity for analysis.
  6. The app could be monetized with a structured subscription model. Market research would be required in order to get this right). A payments screen will need to be added.
  7. Teachers could buy and sell the tutorials, individual problems (with solutions) and even entire sessions that they have built. This could be done with subscription credits, or money.
  8. Using Google Analytics would provide useful user data that would contribute to the future evolution of the app.
  9. The concept of the game could be used for testing in subjects other than maths.
  10. The concept lends itself well to a platform situation, where a community of teachers interact to generate value for that community, with network effects providing feedback that will positively impact the product lifecycle.

What went well:

  • Overall, I was happy with my thought process and how it helped in achieving the results that it did.
  • I feel that I have achieved a fairly robust first draft concept that fulfils the requirements of the brief and has plenty of scope for further development.
  • With market research driven refinement, I believe that this concept could possibly have the potential to be moulded into a marketable product.

Lessons learned:

  • I spent far too long on this exercise.  While the ideation phase was completed fairly swiftly, I have probably gone into far too much detail for concept testing purposes.
  • Building screen mock ups was a very long process.  I might have gone into too much detail for each screen, but it is largely down to my choice to use Powerpoint. As I have no manual drawing ability whatsoever, Powerpoint seemed to be a good idea at the time, as I am quite familiar with it and I thought I would save some time over learning a new program for the task.
  • While Powerpoint is an adequate (if not the best) tool for brainstorming exercises, it is definitely not the best tool for process flow diagramming or for designing screen mock ups, as it is far too fiddly, slow and can get quite messy (particularly where process flow diagrams are concerned).  I will spend some time searching out and testing more appropriate tools for these jobs next week.

Journal System Setup

This is my first experience with blogging.  I’ve opted to use WordPress, as I’m aware of its popularity among bloggers and it’s free to use at the most basic level of subscription.  With no prior experience of WordPress, I’ve followed the setup wizards (and, to some extent, my intuition) and managed to establish a first attempt blog site, which should serve its purpose.

I do need to find some tutorial resources and develop my WordPress capabilities, but I think I’ve achieved an acceptable starting point from which the look and feel of my blog can, and will, evolve over the duration of the course.

Browsing a number of blogs created by students further along on the MACAD course, I see considerable variation of style and presentation.  I’ll continue to do this in order to get a feel for the elements that I particularly like, and those that I don’t.  This will be very useful in shaping my own site, over time, into one that best serves me.

Here We Go…


Photo by Angie from Pexels

The start of my 2 year journey through the MA Creative App Development (MACAD) online distance learning course with Falmouth University. 

If I start off with a few biographical highlights, it might help to give you a bit of context:

I graduated from Thames Valley University with a BA(Hons) in Accountancy in 1993, and spent the next 3 years working in marketing with The NatWest Group, in London. I also achieved The Chartered Institute of Marketing Diploma in 1995. I was fortunate enough to receive a redundancy payout. I spent some of it on a backpack and set off on a round-the-world ticket for 18 months. I settled in Brisbane, Australia for a year of that time. Initially, the closest I came to finding a “marketing job” was handing out flyers for an earlybird parking scheme, dressed in a chicken costume – which I politely declined (true story!) . Instead, I strategically re-worked the emphasis on my CV and quickly found work as a Management Accountant for a Telecoms company. I then spent a few years back in London doing contract work, which was mainly Microsoft Excel based management accounting, reporting and analytical projects. I taught myself VBA (Visual Basic for Applications) for Excel in that time. Then the opportunity arose for me to move back to my home city of Plymouth in 1999, and I became The Commercial Manager for The Plymouth & South West Co-operative Society. 3 years later, I set up as an independent consultant, providing Excel/VBA services (financial/business modelling and bespoke automated reporting systems ) to public and private organisations ranging from startups to multinationals and British Government Agencies. I covered a broad range of industries, including Retail and Defence.

For various reasons, it’s now time for a bit of a career change for me. I have been working on a plan to start a new business venture, and an app is the central asset. I have identified some personal development needs that need addressing before I can properly get going with it, and so I am embarking upon this course in order to fill many of the gaps.

Having been through the “Android Basics” and “Advanced Android App Development” Nanodegree programs from Udacity (on Google backed scholarships), I’m bringing a modicum of technical experience to this MA in Creative App Development, but I don’t feel that I have yet achieved any significant level of technical confidence or competence as yet. I fully intend to change that.

It’s been a long process just getting to this point.  From initially being made aware of the course, and right up to the point of an in-depth video chat with course co-ordinator, Al Parker, I was in two minds as to whether this course was the right path for me. Having gone through the course content in some detail with Al, I could see that the course offers a great opportunity for me to gain a much broader understanding of the wider spectrum of possibilities for developing apps, as well as affording the flexibility for me to focus on the areas that are directly relevant to my ultimate goals. 

They say that youth is wasted on the young. On reflection, I really didn’t make the most of the academic opportunity that my first degree offered – I just did what I needed to do to get through, and very narrowly missed out on a 2:1 (with hindsight, I really should have appealed – a bit too late now!). But anyway, it’s a lesson learned, and this time it’s a bit different – I’m older, wiser and and have long term objectives to drive me and so I fully intend to throw everything I have into achieving as much as I possibly can over the next 2 years. I have finished my consultancy business so that I can make the course my primary focus and I will be working on it full-time. I’m sure this MA will present me with a rollercoaster ride of challenges and achievement, but I’m strapped in and ready to go…

The Journey Begins…

This is my critical reflective journal, which will chart my progress throughout my studies on the MA in Creative App Development course with Falmouth Flexible, and is purely for educational purposes.

I’ve learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel. — Maya Angelou

post
Design a site like this with WordPress.com
Get started