#210: Polymaths.
00:00:00
◼
►
Hello, and welcome to Developing Perspective. Developing Perspective is a podcast discussing
00:00:04
◼
►
news of note, iOS development, Apple, and the like. I'm your host, David Smith. I'm
00:00:08
◼
►
an independent iOS developer based in Herne, Virginia. This is show number 210. Today is
00:00:14
◼
►
Friday, January 30. Developing Perspective is never long within 15 minutes. So let's get started.
00:00:19
◼
►
Okay, so the term I'm going to be using a lot in today's episode, or at least I'm going to start
00:00:24
◼
►
off by talking about, is a term called polymath, which is not a word I'm a huge fan of. It
00:00:32
◼
►
kind of sounds a little pretentious. But unfortunately, sometimes the best word to describe something
00:00:38
◼
►
is kind of pretentious. And so I'm just going to roll with it. So polymath, or probably
00:00:43
◼
►
polymaths, if you're British, is a term for somebody who has skill and experience in a
00:00:50
◼
►
variety of areas and subjects. And so it's, you know, someone who can do a lot of all things,
00:00:54
◼
►
maybe the less pretentious version, which maybe even is better, is jack of all trades. It's
00:00:59
◼
►
somebody who has a lot of experience and can do a lot of different things at the same time.
00:01:03
◼
►
And I was struck this week, by the number of different tasks that I had to accomplish,
00:01:09
◼
►
that one of the core parts of running a business sort of principally by yourself
00:01:15
◼
►
is the number of tasks and skills that you have to develop.
00:01:18
◼
►
And while by no means master, by no means become an expert in,
00:01:22
◼
►
nevertheless be competent and reasonably familiar with.
00:01:27
◼
►
And so I wanted to on today's episode kind of walk through
00:01:31
◼
►
what some of these areas are and think about it in terms of,
00:01:35
◼
►
hopefully, if you're thinking about going out on your own,
00:01:38
◼
►
or even just want to have a deeper appreciation of the benefits of having like a traditional JOB
00:01:45
◼
►
job? What, what's going on? Like, what is it for all the different things that all have
00:01:50
◼
►
to come together to actually have a successful, sustainable business in the long term? And
00:01:56
◼
►
so that's kind of what I'm going to do. And hopefully, it's useful and interesting. So
00:02:00
◼
►
first, the thing that we first just initially, there's kind of like general development skills
00:02:05
◼
►
and tasks. And these are like the fundamental underpinnings of like the software development
00:02:09
◼
►
lifecycle or process, whatever you want to call it, like, there's basic software engineering
00:02:13
◼
►
stuff like understanding how to architect software in a reasonable maintainable way.
00:02:19
◼
►
These are the things that you would typically learn if you did a degree in, say, computer
00:02:23
◼
►
science or software engineering or computer engineering or something like that. It's the
00:02:26
◼
►
kind of the basics of understanding object oriented programming, understanding design
00:02:30
◼
►
patterns and algorithms and things, most of which you don't necessarily specifically apply
00:02:37
◼
►
in your day to day development. I don't implement a lot of design patterns or algorithms. I'm
00:02:42
◼
►
I'm not writing quicksort anymore.
00:02:44
◼
►
But the fundamentals that those kind of things teach you
00:02:48
◼
►
are tremendously valuable in terms
00:02:50
◼
►
of allowing you to build quality software that you're
00:02:54
◼
►
going to be able to maintain in the long run.
00:02:56
◼
►
So there's this basic underpinning.
00:02:59
◼
►
Then on top of that, you're going
00:03:01
◼
►
to have to combine a bunch of skills around product design,
00:03:05
◼
►
release planning, and bug tracking.
00:03:08
◼
►
So these are kind of the-- at a high level,
00:03:11
◼
►
The things that go on around the, okay, I have something I want to build.
00:03:15
◼
►
How do I take that idea and turn it into an actual product?
00:03:19
◼
►
And these are the kind of the process that you'll go through.
00:03:22
◼
►
You kind of have the product design side of it, which is kind of thinking about how would
00:03:25
◼
►
this benefit a user?
00:03:26
◼
►
How would I, you know, how would I lay this out?
00:03:28
◼
►
How would I structure it?
00:03:30
◼
►
And then doing some release planning kind of stuff around that in terms of like, well,
00:03:33
◼
►
how would I take the functionality and the feature set that I'm thinking about and turn
00:03:36
◼
►
it into a releasable product, what would the roadmap be for that, all those kinds of things.
00:03:42
◼
►
And then obviously once you've released, then you have the sort of the bug tracking issue management
00:03:47
◼
►
side of that of when the inputs to your software are no longer just your own thoughts, they're
00:03:53
◼
►
actually inputs coming in from customers and from crash reporting and those types of things,
00:03:57
◼
►
understanding and managing that process. And all those go into the actual planning of the work to
00:04:02
◼
►
be done. Of course, there's also the customer support side of that, which in some ways is
00:04:07
◼
►
an operational thing, but in many ways is integrated into the general development process
00:04:12
◼
►
too, because it helps you gather and understand how your software is actually performing in
00:04:17
◼
►
the real world. To that you'll also have things like version control, which is a basic skill
00:04:24
◼
►
or a basic sort of process that you have to have in place in order to be actually to be
00:04:28
◼
►
be able to reasonably manage developing software, which is nevertheless kind of an important
00:04:34
◼
►
And then if you're doing iOS development, understanding the way iTunes Connect works
00:04:38
◼
►
and that submission lifecycle in terms of creating a new app, entering all the metadata,
00:04:43
◼
►
a whole lot of metadata, putting all that in and then taking that and doing a build
00:04:49
◼
►
in Xcode and getting it into there, working through the review process, handling updates
00:04:54
◼
►
and pricing and those kinds of things.
00:04:56
◼
►
There's a certain amount of just on the development side,
00:04:59
◼
►
things, steps that are necessary to get an app into the store.
00:05:03
◼
►
All right, next, iOS development.
00:05:06
◼
►
So if you're specifically building an app,
00:05:07
◼
►
there's a whole bunch of skills and things
00:05:09
◼
►
you have to think about there.
00:05:10
◼
►
You have to be somewhat more competent, either Objective-C
00:05:12
◼
►
or Swift developer, familiar with Xcode and Interface
00:05:16
◼
►
You're probably going to have to have
00:05:17
◼
►
a pretty good understanding of the various device and iOS
00:05:20
◼
►
versions over time and how that will impact the development
00:05:23
◼
►
of your application.
00:05:25
◼
►
Even if you only support iOS 8, for example, you still have to support the iPhone 4s, 5,
00:05:30
◼
►
5s, 6, 6 Plus, the 5th gen iPod touch, and say if you're a universal app, then you have
00:05:38
◼
►
the iPad versions from iPad 2, iPad 3, iPad 4, iPad Air, iPad Air 2, iPad Mini, Retina
00:05:46
◼
►
Mini, and then Retina Mini 2.
00:05:49
◼
►
Those are all the devices that you have to kind of understand and understand the differences
00:05:53
◼
►
between them and how that might impact your actual development.
00:05:56
◼
►
You have to be somewhat competent in something
00:05:58
◼
►
on a graphical side, probably, something like Photoshop
00:06:01
◼
►
or Paint Code or some kind of tool
00:06:04
◼
►
for creating visual assets.
00:06:05
◼
►
It's very unlikely that you're going
00:06:07
◼
►
to be able to build an app with none of that.
00:06:09
◼
►
The degree to which you have to lean on that
00:06:11
◼
►
is obviously going to be dependent on the application
00:06:13
◼
►
you're building.
00:06:14
◼
►
But nevertheless, it's something you're
00:06:16
◼
►
going to have to think about.
00:06:17
◼
►
Then, of course, the testing and QA lifecycle, too,
00:06:20
◼
►
is an important part of iOS development,
00:06:21
◼
►
or just any development, but the process of you build something,
00:06:24
◼
►
you put it onto a phone, you put it onto an iPad,
00:06:26
◼
►
you run it in the simulator, and finding bugs,
00:06:29
◼
►
working through that process, how you track those
00:06:31
◼
►
and think about them.
00:06:32
◼
►
And it's probably worth saying, I
00:06:34
◼
►
have all of these kind of areas just listed out
00:06:36
◼
►
in the show notes for today's episode.
00:06:38
◼
►
So if you just want to follow along there,
00:06:40
◼
►
don't feel like you have to be keeping
00:06:42
◼
►
track of these in your mind.
00:06:43
◼
►
These are just-- I'm just kind of pushing them all out there,
00:06:46
◼
►
and then hopefully we'll have a few conclusions at the end.
00:06:49
◼
►
Next, something that I-- you don't necessarily
00:06:51
◼
►
have to have this, but you probably
00:06:53
◼
►
will if you're building any kind of, I would say,
00:06:56
◼
►
probably most productivity applications or things
00:06:59
◼
►
along those lines.
00:06:59
◼
►
There's a good chance you're going
00:07:01
◼
►
to need some kind of server development.
00:07:03
◼
►
I say not a requirement, but often the case.
00:07:06
◼
►
This is going to be something like some kind
00:07:08
◼
►
of modern-ish web language.
00:07:10
◼
►
So I do all my stuff in Ruby on Rails.
00:07:12
◼
►
You could do it in a million other things.
00:07:16
◼
►
But you're going to need some kind of familiarity
00:07:17
◼
►
with a server architecture, some kind of database scheme probably.
00:07:22
◼
►
I use Postgres just because I'm familiar with it.
00:07:25
◼
►
MySQL or any of the other variety of database systems are fine.
00:07:29
◼
►
You can probably get into things like understanding how memcached works,
00:07:33
◼
►
Nginx, Apache, those kinds of web services, Redis, and related key value
00:07:38
◼
►
store stuff, maybe a queuing system.
00:07:40
◼
►
I use Sidekiq for mine in a lot of my applications.
00:07:44
◼
►
And then on top of that, even just getting into Linux system
00:07:47
◼
►
administration, backup, security updates,
00:07:50
◼
►
there's a lot going on if you want to just set up a server
00:07:52
◼
►
and deploy it.
00:07:53
◼
►
And obviously, you can kind of get away
00:07:55
◼
►
with avoiding some of that.
00:07:56
◼
►
If you offset it into something else,
00:07:59
◼
►
you say you use Parse or you use Heroku,
00:08:01
◼
►
so you don't have to worry about the system administration
00:08:03
◼
►
or whatever.
00:08:03
◼
►
Like, there's always trade-offs and things
00:08:05
◼
►
that you can do there.
00:08:06
◼
►
But it's something you may have to have some understanding of.
00:08:09
◼
►
Next is the operational side of a business.
00:08:12
◼
►
This is the actual business part of the business.
00:08:15
◼
►
So in terms of understanding the accounting and taxes
00:08:18
◼
►
and banking side of it.
00:08:19
◼
►
Like, ultimately, a business is just a business.
00:08:21
◼
►
It's only a business, really, if it's income and its expenses
00:08:25
◼
►
balance out in a good way, hopefully in a positive way.
00:08:28
◼
►
But there's a lot of accounting and stuff
00:08:30
◼
►
that you have to manage there, as well as a separate set
00:08:33
◼
►
of taxes to file, or at the very least,
00:08:35
◼
►
a separate schedule on your normal taxes to file.
00:08:38
◼
►
Something else to keep track of.
00:08:39
◼
►
a set of books separate from your own personal financing.
00:08:43
◼
►
And obviously, same thing with banking
00:08:44
◼
►
and all these other kind of things that go into that.
00:08:47
◼
►
You're obviously going to have to deal
00:08:49
◼
►
with the budgeting of your business,
00:08:50
◼
►
understanding how much money do I have,
00:08:52
◼
►
how much money do I think I'll have,
00:08:53
◼
►
what can I reasonably spend, what can I afford.
00:08:56
◼
►
Oh, look, the new retina for the 5K iMac came out.
00:08:58
◼
►
Can I afford one?
00:08:59
◼
►
Those kinds of questions are things
00:09:01
◼
►
you're going to have to be able to wrestle with and manage
00:09:04
◼
►
if you run your own business.
00:09:06
◼
►
Compliance-- and this is the thing that can sometimes
00:09:09
◼
►
drive 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
00:09:39
◼
►
government, just to do my in order for the business to exist as an entity. And all of
00:09:45
◼
►
that takes time, energy and kind of an understanding of what's involved. I manage my own benefits.
00:09:51
◼
►
So you know, things like short term disability, long term disability, medical insurance, dental
00:09:56
◼
►
insurance, all these kinds of things that would often typically be managed by your employer
00:10:01
◼
►
now you're responsible for. And obviously, if you're living in a lot of Western European
00:10:05
◼
►
countries or places this might be taken care of might not be that different, but in the
00:10:10
◼
►
US especially, it is a wildly different thing to have to manage all this yourself.
00:10:15
◼
►
You also have to manage some of the kind of the contracts and payments and stuff like
00:10:20
◼
►
do a lot of work, like understanding what's going on in iTunes Connect, how and when you're
00:10:23
◼
►
going to get paid.
00:10:24
◼
►
That's very, very vital in terms of your operational effectiveness and being able to actually, you
00:10:29
◼
►
know, be a viable business with positive cash flow and that kind of thing.
00:10:34
◼
►
And lastly, on the operational side,
00:10:36
◼
►
there's a lot of just general kind of stuff,
00:10:38
◼
►
like hosting and email and registering domains
00:10:42
◼
►
and these kinds of things that are just
00:10:44
◼
►
part of running a business.
00:10:45
◼
►
You have to work out where you're going to put your email.
00:10:47
◼
►
Are you going to have email?
00:10:49
◼
►
What is your company name going to look like?
00:10:51
◼
►
Those kinds of things.
00:10:52
◼
►
And just kind of the day-to-day management
00:10:54
◼
►
of the kind of basic logistics, like all the things
00:10:57
◼
►
that your IT department at a bigger company
00:10:59
◼
►
would be responsible for, now you're responsible for.
00:11:02
◼
►
You are the system administrator.
00:11:04
◼
►
are the IT department.
00:11:05
◼
►
And then lastly-- and this list is by all means not expected
00:11:08
◼
►
to be exhaustive.
00:11:09
◼
►
These are just the things that I sat down for 20 minutes,
00:11:11
◼
►
and this is what I came up with.
00:11:14
◼
►
There's the marketing side of things.
00:11:15
◼
►
So in order for a business to typically succeed,
00:11:18
◼
►
your people are going to have to know about it.
00:11:19
◼
►
So at least you're going to have to give some thought
00:11:22
◼
►
to marketing.
00:11:22
◼
►
And the degree to which you do this will vary wildly.
00:11:24
◼
►
It's not something I'm a tremendous expert at,
00:11:26
◼
►
but it's something that I do somewhat.
00:11:29
◼
►
And so you're going to have to think about building websites
00:11:31
◼
►
for your business, for your products, things like that.
00:11:34
◼
►
You're going to have to think about your brand,
00:11:36
◼
►
both your personal brand and otherwise,
00:11:38
◼
►
and the relationship and interplay between them.
00:11:41
◼
►
What do you want people to know about you?
00:11:42
◼
►
How many people do you want to know about you?
00:11:44
◼
►
Who should know about you?
00:11:45
◼
►
How much of the things that you do--
00:11:48
◼
►
is your life online personally, part of your company,
00:11:52
◼
►
or is it the two separate?
00:11:54
◼
►
All these are things you have to think about.
00:11:56
◼
►
Marketing is also probably going to get
00:11:57
◼
►
into a little bit of graphic and visual design stuff,
00:11:59
◼
►
Photoshop, understanding how do I make things visually appealing, CSS, HTML, like for your
00:12:05
◼
►
website potentially, that kind of stuff.
00:12:07
◼
►
Understanding just basic marketing concepts and ideas, understanding different aspects
00:12:12
◼
►
and life cycles of marketing, how do you build buzz for something, how do you reach out to
00:12:16
◼
►
the press, all these kinds of things.
00:12:19
◼
►
And then in a weird way, you even have to sort of understand things like microeconomics
00:12:23
◼
►
in terms of understanding pricing and understanding
00:12:26
◼
►
competitiveness and marginal utility
00:12:30
◼
►
and all these kind of crazy terms that are things
00:12:32
◼
►
that I vaguely remember studying in school
00:12:34
◼
►
and never really thought would be particularly
00:12:36
◼
►
applicable to my life.
00:12:37
◼
►
But when I started a business and I started selling products
00:12:42
◼
►
and started competing with other people,
00:12:43
◼
►
all of these kind of very sort of at the time
00:12:47
◼
►
felt theoretical terms in microeconomics
00:12:50
◼
►
started to become very tangible and very important for me
00:12:53
◼
►
to understand how it is that I can compete in a marketplace.
00:12:59
◼
►
And so that's quite a long list.
00:13:00
◼
►
Like I said, it's not exhaustive.
00:13:01
◼
►
I'm sure if I sat down, I could come up
00:13:03
◼
►
with a bunch more things.
00:13:04
◼
►
But those are all the kind of things that I do probably--
00:13:08
◼
►
in a given month, I probably do at least one
00:13:11
◼
►
of all of those things.
00:13:12
◼
►
And some of them I get help with.
00:13:16
◼
►
I have someone who helps me with Help Desk.
00:13:18
◼
►
I have someone who does my bookkeeping and compliance
00:13:20
◼
►
stuff who helps me a bit with that.
00:13:22
◼
►
I try and focus on the things that I'm uniquely
00:13:25
◼
►
valuable in, in terms of the programming and the product
00:13:28
◼
►
design and those types of things.
00:13:30
◼
►
But it's a lot to do, and it's a lot to manage.
00:13:33
◼
►
And if you're somebody who is thinking about starting out,
00:13:37
◼
►
so start going out on your own or heading down this path,
00:13:40
◼
►
I would strongly encourage you to make sure
00:13:42
◼
►
that you are thinking in these terms,
00:13:44
◼
►
that you're not just focused on the part of the business that
00:13:47
◼
►
is perhaps the most easy and obvious to focus on,
00:13:49
◼
►
like building an app or designing an app.
00:13:53
◼
►
That is the easy part in terms of you're
00:13:56
◼
►
trying to build this as a business
00:13:57
◼
►
that you're going to run in the long term.
00:14:00
◼
►
The building the app part is probably--
00:14:02
◼
►
there's only a very small fraction
00:14:04
◼
►
of what actually goes into building a bigger, broader,
00:14:07
◼
►
sustainable business.
00:14:08
◼
►
And if you don't come into it with that in mind,
00:14:10
◼
►
that you have to think about operations and marketing,
00:14:13
◼
►
perhaps server development and just general software lifecycle
00:14:16
◼
►
It's going to be very hard for you to probably build a sustainable business.
00:14:20
◼
►
So keep that in mind. And if you don't, if you want to just keep working at a big company,
00:14:24
◼
►
hopefully thinking about all these different things that that company is likely doing for you
00:14:28
◼
►
maybe gives you a bigger, better appreciation of what your IT department is doing,
00:14:32
◼
►
what your HR department is doing, what your managers are doing, things that allow you to do your job.
00:14:36
◼
►
Alright, that's it for today's show. As always, if you have questions, comments, concerns, or complaints,
00:14:40
◼
►
I'm on Twitter @_DavidSmith, David@DevelopingPerspective.com.
00:14:44
◼
►
Otherwise, I hope you have a great week, happy coding, and I'll talk to you later.