Podcast Search

Developing Perspective

#210: Polymaths.

Select a time to play from there. The line being spoken is highlighted as the audio plays.

0:00:00Hello, and welcome to Developing Perspective. Developing Perspective is a podcast discussing

0:00:04news of note, iOS development, Apple, and the like. I'm your host, David Smith. I'm

0:00:08an independent iOS developer based in Herne, Virginia. This is show number 210. Today is

0:00:14Friday, January 30. Developing Perspective is never long within 15 minutes. So let's get started.

0:00:19Okay, so the term I'm going to be using a lot in today's episode, or at least I'm going to start

0:00:24off by talking about, is a term called polymath, which is not a word I'm a huge fan of. It

0:00:32kind of sounds a little pretentious. But unfortunately, sometimes the best word to describe something

0:00:38is kind of pretentious. And so I'm just going to roll with it. So polymath, or probably

0:00:43polymaths, if you're British, is a term for somebody who has skill and experience in a

0:00:50variety of areas and subjects. And so it's, you know, someone who can do a lot of all things,

0:00:54maybe the less pretentious version, which maybe even is better, is jack of all trades. It's

0:00:59somebody who has a lot of experience and can do a lot of different things at the same time.

0:01:03And I was struck this week, by the number of different tasks that I had to accomplish,

0:01:09that one of the core parts of running a business sort of principally by yourself

0:01:15is the number of tasks and skills that you have to develop.

0:01:18And while by no means master, by no means become an expert in,

0:01:22nevertheless be competent and reasonably familiar with.

0:01:27And so I wanted to on today's episode kind of walk through

0:01:31what some of these areas are and think about it in terms of,

0:01:35hopefully, if you're thinking about going out on your own,

0:01:38or even just want to have a deeper appreciation of the benefits of having like a traditional JOB

0:01:45job? What, what's going on? Like, what is it for all the different things that all have

0:01:50to come together to actually have a successful, sustainable business in the long term? And

0:01:56so that's kind of what I'm going to do. And hopefully, it's useful and interesting. So

0:02:00first, the thing that we first just initially, there's kind of like general development skills

0:02:05and tasks. And these are like the fundamental underpinnings of like the software development

0:02:09lifecycle or process, whatever you want to call it, like, there's basic software engineering

0:02:13stuff like understanding how to architect software in a reasonable maintainable way.

0:02:19These are the things that you would typically learn if you did a degree in, say, computer

0:02:23science or software engineering or computer engineering or something like that. It's the

0:02:26kind of the basics of understanding object oriented programming, understanding design

0:02:30patterns and algorithms and things, most of which you don't necessarily specifically apply

0:02:37in your day to day development. I don't implement a lot of design patterns or algorithms. I'm

0:02:42I'm not writing quicksort anymore.

0:02:44But the fundamentals that those kind of things teach you

0:02:48are tremendously valuable in terms

0:02:50of allowing you to build quality software that you're

0:02:54going to be able to maintain in the long run.

0:02:56So there's this basic underpinning.

0:02:59Then on top of that, you're going

0:03:01to have to combine a bunch of skills around product design,

0:03:05release planning, and bug tracking.

0:03:08So these are kind of the-- at a high level,

0:03:11The things that go on around the, okay, I have something I want to build.

0:03:15How do I take that idea and turn it into an actual product?

0:03:19And these are the kind of the process that you'll go through.

0:03:22You kind of have the product design side of it, which is kind of thinking about how would

0:03:25this benefit a user?

0:03:26How would I, you know, how would I lay this out?

0:03:28How would I structure it?

0:03:30And then doing some release planning kind of stuff around that in terms of like, well,

0:03:33how would I take the functionality and the feature set that I'm thinking about and turn

0:03:36it into a releasable product, what would the roadmap be for that, all those kinds of things.

0:03:42And then obviously once you've released, then you have the sort of the bug tracking issue management

0:03:47side of that of when the inputs to your software are no longer just your own thoughts, they're

0:03:53actually inputs coming in from customers and from crash reporting and those types of things,

0:03:57understanding and managing that process. And all those go into the actual planning of the work to

0:04:02be done. Of course, there's also the customer support side of that, which in some ways is

0:04:07an operational thing, but in many ways is integrated into the general development process

0:04:12too, because it helps you gather and understand how your software is actually performing in

0:04:17the real world. To that you'll also have things like version control, which is a basic skill

0:04:24or a basic sort of process that you have to have in place in order to be actually to be

0:04:28be able to reasonably manage developing software, which is nevertheless kind of an important

0:04:33thing.

0:04:34And then if you're doing iOS development, understanding the way iTunes Connect works

0:04:38and that submission lifecycle in terms of creating a new app, entering all the metadata,

0:04:43a whole lot of metadata, putting all that in and then taking that and doing a build

0:04:49in Xcode and getting it into there, working through the review process, handling updates

0:04:54and pricing and those kinds of things.

0:04:56There's a certain amount of just on the development side,

0:04:59things, steps that are necessary to get an app into the store.

0:05:03All right, next, iOS development.

0:05:06So if you're specifically building an app,

0:05:07there's a whole bunch of skills and things

0:05:09you have to think about there.

0:05:10You have to be somewhat more competent, either Objective-C

0:05:12or Swift developer, familiar with Xcode and Interface

0:05:15Builder.

0:05:16You're probably going to have to have

0:05:17a pretty good understanding of the various device and iOS

0:05:20versions over time and how that will impact the development

0:05:23of your application.

0:05:25Even if you only support iOS 8, for example, you still have to support the iPhone 4s, 5,

0:05:305s, 6, 6 Plus, the 5th gen iPod touch, and say if you're a universal app, then you have

0:05:38the iPad versions from iPad 2, iPad 3, iPad 4, iPad Air, iPad Air 2, iPad Mini, Retina

0:05:46Mini, and then Retina Mini 2.

0:05:49Those are all the devices that you have to kind of understand and understand the differences

0:05:53between them and how that might impact your actual development.

0:05:56You have to be somewhat competent in something

0:05:58on a graphical side, probably, something like Photoshop

0:06:01or Paint Code or some kind of tool

0:06:04for creating visual assets.

0:06:05It's very unlikely that you're going

0:06:07to be able to build an app with none of that.

0:06:09The degree to which you have to lean on that

0:06:11is obviously going to be dependent on the application

0:06:13you're building.

0:06:14But nevertheless, it's something you're

0:06:16going to have to think about.

0:06:17Then, of course, the testing and QA lifecycle, too,

0:06:20is an important part of iOS development,

0:06:21or just any development, but the process of you build something,

0:06:24you put it onto a phone, you put it onto an iPad,

0:06:26you run it in the simulator, and finding bugs,

0:06:29working through that process, how you track those

0:06:31and think about them.

0:06:32And it's probably worth saying, I

0:06:34have all of these kind of areas just listed out

0:06:36in the show notes for today's episode.

0:06:38So if you just want to follow along there,

0:06:40don't feel like you have to be keeping

0:06:42track of these in your mind.

0:06:43These are just-- I'm just kind of pushing them all out there,

0:06:46and then hopefully we'll have a few conclusions at the end.

0:06:49Next, something that I-- you don't necessarily

0:06:51have to have this, but you probably

0:06:53will if you're building any kind of, I would say,

0:06:56probably most productivity applications or things

0:06:59along those lines.

0:06:59There's a good chance you're going

0:07:01to need some kind of server development.

0:07:03I say not a requirement, but often the case.

0:07:06This is going to be something like some kind

0:07:08of modern-ish web language.

0:07:10So I do all my stuff in Ruby on Rails.

0:07:12You could do it in a million other things.

0:07:16But you're going to need some kind of familiarity

0:07:17with a server architecture, some kind of database scheme probably.

0:07:22I use Postgres just because I'm familiar with it.

0:07:25MySQL or any of the other variety of database systems are fine.

0:07:29You can probably get into things like understanding how memcached works,

0:07:33Nginx, Apache, those kinds of web services, Redis, and related key value

0:07:38store stuff, maybe a queuing system.

0:07:40I use Sidekiq for mine in a lot of my applications.

0:07:44And then on top of that, even just getting into Linux system

0:07:47administration, backup, security updates,

0:07:50there's a lot going on if you want to just set up a server

0:07:52and deploy it.

0:07:53And obviously, you can kind of get away

0:07:55with avoiding some of that.

0:07:56If you offset it into something else,

0:07:59you say you use Parse or you use Heroku,

0:08:01so you don't have to worry about the system administration

0:08:03or whatever.

0:08:03Like, there's always trade-offs and things

0:08:05that you can do there.

0:08:06But it's something you may have to have some understanding of.

0:08:09Next is the operational side of a business.

0:08:12This is the actual business part of the business.

0:08:15So in terms of understanding the accounting and taxes

0:08:18and banking side of it.

0:08:19Like, ultimately, a business is just a business.

0:08:21It's only a business, really, if it's income and its expenses

0:08:25balance out in a good way, hopefully in a positive way.

0:08:28But there's a lot of accounting and stuff

0:08:30that you have to manage there, as well as a separate set

0:08:33of taxes to file, or at the very least,

0:08:35a separate schedule on your normal taxes to file.

0:08:38Something else to keep track of.

0:08:39a set of books separate from your own personal financing.

0:08:43And obviously, same thing with banking

0:08:44and all these other kind of things that go into that.

0:08:47You're obviously going to have to deal

0:08:49with the budgeting of your business,

0:08:50understanding how much money do I have,

0:08:52how much money do I think I'll have,

0:08:53what can I reasonably spend, what can I afford.

0:08:56Oh, look, the new retina for the 5K iMac came out.

0:08:58Can I afford one?

0:08:59Those kinds of questions are things

0:09:01you're going to have to be able to wrestle with and manage

0:09:04if you run your own business.

0:09:06Compliance-- and this is the thing that can sometimes

0:09:09drive me crazy. And, you know, there are tremendous, you don't really understand until you start your own business, the sheer volume of requirements that are probably placed upon you. So at the local level, at the state level, at the federal level, obviously, this is from a US bent, but I'm sure anywhere in the world, they probably have similar kind of things where at different levels, everyone needs different forms and different licensing and different requirements for in order to just be a business and exist. You know, I have to file things with the state, I have to file things with my county, I file things with the federal

0:09:39government, just to do my in order for the business to exist as an entity. And all of

0:09:45that takes time, energy and kind of an understanding of what's involved. I manage my own benefits.

0:09:51So you know, things like short term disability, long term disability, medical insurance, dental

0:09:56insurance, all these kinds of things that would often typically be managed by your employer

0:10:01now you're responsible for. And obviously, if you're living in a lot of Western European

0:10:05countries or places this might be taken care of might not be that different, but in the

0:10:10US especially, it is a wildly different thing to have to manage all this yourself.

0:10:15You also have to manage some of the kind of the contracts and payments and stuff like

0:10:20do a lot of work, like understanding what's going on in iTunes Connect, how and when you're

0:10:23going to get paid.

0:10:24That's very, very vital in terms of your operational effectiveness and being able to actually, you

0:10:29know, be a viable business with positive cash flow and that kind of thing.

0:10:34And lastly, on the operational side,

0:10:36there's a lot of just general kind of stuff,

0:10:38like hosting and email and registering domains

0:10:42and these kinds of things that are just

0:10:44part of running a business.

0:10:45You have to work out where you're going to put your email.

0:10:47Are you going to have email?

0:10:49What is your company name going to look like?

0:10:51Those kinds of things.

0:10:52And just kind of the day-to-day management

0:10:54of the kind of basic logistics, like all the things

0:10:57that your IT department at a bigger company

0:10:59would be responsible for, now you're responsible for.

0:11:02You are the system administrator.

0:11:04are the IT department.

0:11:05And then lastly-- and this list is by all means not expected

0:11:08to be exhaustive.

0:11:09These are just the things that I sat down for 20 minutes,

0:11:11and this is what I came up with.

0:11:14There's the marketing side of things.

0:11:15So in order for a business to typically succeed,

0:11:18your people are going to have to know about it.

0:11:19So at least you're going to have to give some thought

0:11:22to marketing.

0:11:22And the degree to which you do this will vary wildly.

0:11:24It's not something I'm a tremendous expert at,

0:11:26but it's something that I do somewhat.

0:11:29And so you're going to have to think about building websites

0:11:31for your business, for your products, things like that.

0:11:34You're going to have to think about your brand,

0:11:36both your personal brand and otherwise,

0:11:38and the relationship and interplay between them.

0:11:41What do you want people to know about you?

0:11:42How many people do you want to know about you?

0:11:44Who should know about you?

0:11:45How much of the things that you do--

0:11:48is your life online personally, part of your company,

0:11:52or is it the two separate?

0:11:54All these are things you have to think about.

0:11:56Marketing is also probably going to get

0:11:57into a little bit of graphic and visual design stuff,

0:11:59Photoshop, understanding how do I make things visually appealing, CSS, HTML, like for your

0:12:05website potentially, that kind of stuff.

0:12:07Understanding just basic marketing concepts and ideas, understanding different aspects

0:12:12and life cycles of marketing, how do you build buzz for something, how do you reach out to

0:12:16the press, all these kinds of things.

0:12:19And then in a weird way, you even have to sort of understand things like microeconomics

0:12:23in terms of understanding pricing and understanding

0:12:26competitiveness and marginal utility

0:12:30and all these kind of crazy terms that are things

0:12:32that I vaguely remember studying in school

0:12:34and never really thought would be particularly

0:12:36applicable to my life.

0:12:37But when I started a business and I started selling products

0:12:42and started competing with other people,

0:12:43all of these kind of very sort of at the time

0:12:47felt theoretical terms in microeconomics

0:12:50started to become very tangible and very important for me

0:12:53to understand how it is that I can compete in a marketplace.

0:12:59And so that's quite a long list.

0:13:00Like I said, it's not exhaustive.

0:13:01I'm sure if I sat down, I could come up

0:13:03with a bunch more things.

0:13:04But those are all the kind of things that I do probably--

0:13:08in a given month, I probably do at least one

0:13:11of all of those things.

0:13:12And some of them I get help with.

0:13:16I have someone who helps me with Help Desk.

0:13:18I have someone who does my bookkeeping and compliance

0:13:20stuff who helps me a bit with that.

0:13:22I try and focus on the things that I'm uniquely

0:13:25valuable in, in terms of the programming and the product

0:13:28design and those types of things.

0:13:30But it's a lot to do, and it's a lot to manage.

0:13:33And if you're somebody who is thinking about starting out,

0:13:37so start going out on your own or heading down this path,

0:13:40I would strongly encourage you to make sure

0:13:42that you are thinking in these terms,

0:13:44that you're not just focused on the part of the business that

0:13:47is perhaps the most easy and obvious to focus on,

0:13:49like building an app or designing an app.

0:13:53That is the easy part in terms of you're

0:13:56trying to build this as a business

0:13:57that you're going to run in the long term.

0:14:00The building the app part is probably--

0:14:02there's only a very small fraction

0:14:04of what actually goes into building a bigger, broader,

0:14:07sustainable business.

0:14:08And if you don't come into it with that in mind,

0:14:10that you have to think about operations and marketing,

0:14:13perhaps server development and just general software lifecycle

0:14:16It's going to be very hard for you to probably build a sustainable business.

0:14:20So keep that in mind. And if you don't, if you want to just keep working at a big company,

0:14:24hopefully thinking about all these different things that that company is likely doing for you

0:14:28maybe gives you a bigger, better appreciation of what your IT department is doing,

0:14:32what your HR department is doing, what your managers are doing, things that allow you to do your job.

0:14:36Alright, that's it for today's show. As always, if you have questions, comments, concerns, or complaints,

0:14:40I'm on Twitter @_DavidSmith, David@DevelopingPerspective.com.

0:14:44Otherwise, I hope you have a great week, happy coding, and I'll talk to you later.