 Hello, my name is Kyle Johnson. I'm all those things minus the wizard ninja I don't know how you become a wizard Yeah, anyway, right, so Like I said, my name is Kyle Johnson work for Saturday Drive. I've been a special projects developer So the main product for Saturday Drive is Ninja Forms drag-and-drop four miller for WordPress Since then I've worked on a project called ninja mail, which is a email solution for four ninja forms And most recently I started working on ninja shop, which if anyone's familiar with iThemes Exchange became exchange WP We've picked up that we're doing a rebrand on that e-commerce solution for WordPress and we're currently iterating To get that out the door All right So knowing what you want a short story The two people I work with James and Kevin Have a background of cowboy coding and they consider themselves sculptors when it when it comes to html When it comes to building products If you ask them what they want they say, I don't know go build it and I'll tell you if it's right or not so The way we end up building things is here's this idea. Let's get something started. Let's let's work on it from there We found we don't always know what needs to be built But we have an idea something we want to try we try it and we move on from there an example of this is when we Ninja forums recently went through a rebuild in a version 3 release Which was a inch introduced breaking changes in the code base which required Rewriting a lot of the add-ons. So one of the add-ons when I first joined the company was to Recreate the PayPal express integration with the form builder I was given the task. It took a week. I planned it out So they said here's the features go do this and I built it out and said okay. Here it is Here's how you set it up. I pulled it up on the projector and started I clicked install and I clicked the setting screen and My one co-worker Zach said this is all wrong Now it's like well hang on just tell me no no no it's all wrong. It shouldn't do this. This is wrong That's wrong and I just pulled up the setting screen and I just stopped talking I didn't present any more I didn't actually get through anything the product did or how it worked because it was all wrong So went through took suggestions built it again came back And he's like no no this is still wrong. We forgot this other thing And so I built it yet again for a third time and now we have a much more stable integration That introduces pain points of building the wrong thing and taking too much time to do that And so part of delivering value continuously is focusing on the small pieces and getting the small pieces right in iterations And not expecting to be able to predict the future and what you need there Also things change in projects all the time So it's important to focus on the small pieces Deliver value when you can because you never know when something's going to change and we only need to start over on something an example of this is Chris Edwards that gave a talk earlier introducing Google data studio And one thing he mentioned was that he was working on an ad words piece for a client And in the middle of his a sprint of that project they rebranded as Google ads They rebranded the site they retooled the site everything was different Middle of this project he'd actually stop and restart and throw it and throw all that up at the door Whereas in in theory at least if you focus on small iterations, you can see these things work over time And you don't get hit with that one big. Oh, no, it's all wrong And so typically what we try to do is focus on the core value of a product and iterate from there and so thinking of the the Focus the focal point of a product is the core value the thing that it has to have I'm reading through Jason Fried's book the found one of the founders of base camp his book rework He talks about the focal point of a product and everything outside of that is is blurry You don't need to see those details yet because you're not there So you start with a core value of the product the one thing that the product has to have or it's not that product anymore So you start with the core value of the product then you move on to adding edge cases You start adding new features and then you get into the more specific requirements of what you want the product to become And so focusing that core value allows you to quickly deliver value and determine Is this product something I want to deliver is this product going in the right direction and Oftentimes more importantly does this product need to shift now and get ahead of that curve before things change on us When I talk about core values and core value in edge cases One thing I'm not saying is putting off things like accessibility or putting things off like tested code Those things are very important. It's not Delivering value quickly is not excused to not be accessible Delivering value quickly is not excused to deliver bad products. These are all things that are still very important On a side note when talking about edge cases of things to factor in a better term might be stress cases Because your users your customers aren't you don't want to think about them on the edge of your products But it might be stressing the limits or trying to do something at s knots Naturally provided now that you want to get to but those things are very much important to consider and doing something quickly Is not an excuse to do something poorly as oftentimes the example we see with Silicon Valley One term I get stoned around you stoned around a lot is agile software developments There is the agile capital a methodology, but it's also the agile lowercase a Software manifesto doing things quickly iterations focusing on small pieces getting things done and delivering value A little story on agile developments and was introduced Lockheed Martin had put in Budgeted for a product a project they put in millions of dollars Software project they brought in this huge team and they gave it a time budget and a money budget It was X number of years and wide number of millions of dollars and they got to the deadline It wasn't done they pushed it back pushed it back pushed it back and never got the project finished And so one of the proponents of agile back in the day came in and said we're gonna fix this for you brought him in To fix the project he looked at the project and said okay, well We'll do it in half the time of the original Budget we'll do it for half the the cost of the original project Not only that we'll do it with a half of the original size of the team in the project and they laughed at him Said you can't do it, but using an agile methodology He's able to deliver small pieces quickly over and over and over again and actually get the project done under time under budget with a smaller crew Likewise, there's a story of working on a government project to where they had hired typical Typical development team with a waterfall development cycle where they try to plant everything up front and it just takes forever Nothing ever really gets done in time. And so the way this a the new agency came in and said Here's the budget for the project is what we think it will cost how long we'll think it will take But we'll make a deal with you. We'll deliver every other week We'll meet on Friday show you what we've done so far and if any point in time You think we've done enough and you're happy with what we've delivered then If you can buy the contract at half of the recurring of the remaining cost So you actually we'll get it done faster and we'll get it under budget and of course they say that's ridiculous not gonna work But hey, there's a chance let's try it And so they actually deliver the project within a number of months not years for a fraction of the original cost But the development team is able to get it done get their work done faster and actually make more money by doing These quickly as opposed to wasting years of their time building something could have done previously and just kind of dragging it along Speaking of agile part of the agile manifesto of the way These developers right software is that the highest priority is to satisfy the customer through early and continuous delivery of valuable software Key word there all or not in bulk would be valuable is because if you're not delivery delivering valuable Products then you're focusing on the wrong thing On that note delivery the customer can also be a stakeholder Delivering doesn't necessarily mean publishing live It can be showing to the person who is in charge of making that final decision Could be the boss stakeholders on a project It can all be internal and you can also you can continue to deliver value internally even if you're doing a big launch down the road Another another piece the agile manifesto is responding to change over following a plan Not to say that plans are not important But responding in change responding to change in terms of agile development is more important than the plan itself Spike and stabilize when looking through how to build a software faster better came across a talk by Dan North I gave a talk at the go-to conference until software faster And he talks about methodologies for building software faster and one of those methodologies he introduces He calls spike and stabilize He tells a story of a team of developers a four-person product team Who works really well together and does the work of 40 person software teams? And when working on a project they had a bunch of stakeholders in a room And they're trying to there's this idea thing that this thing they want to build and they're all sitting in a room Had trying to hash it out trying to build a master plan And so he steps out of the room and pulls up his laptop and he starts just kind of Building an idea of what it would look like and starts doing that kind of demo And so he brings it back to the stakeholders By the end of the day and they're still like halfway through the meeting and everyone wanting to go home And they don't they can't decide on the button colors and how things were arranged He said how about this and pushes laptop forward and Actually had a working demo of the first round of what they were wanting to build So be all sitting down and focusing on delivering that value as opposed to hashing out a master plan He was able to deliver something literally by the end of the day Whereas a team of people a committee of people were still in the middle of a planning meeting that was going to go on forever Often times when we're building materials we talk about measure twice cut once But a big part of this is because when you're working with a physical medium those materials are Limited if you if you measure a board and cut it wrong You have to buy another board and then recut it will be at a right the next time But with software oftentimes we can measure once and cut it again and again and again and again Because with software it's not as limited of a resource and we can literally iterate and try things try something scrap it try something Scrap it and the financial overhead is a lot lower in those materials So in terms of software often times we find we can Measure once cut again again and again, but then we measure and see if we're on track We don't have to be limited to the building material say of woodworking there So oftentimes when talking about Delivering value there's often often times come across this image in my research the concept of the minimal viable product And so if you're the example in this illustration is your if someone's ordering a car And they once and you want to build them pieces You don't start by giving them a tire and then a chassis and say here's the chassis No, your car is not ready yet Look, hey, we made a chassis and then trying to build a body and then add the engine and doors and then finally as a product Every piece of that step while delivering is not usable And so with the concept of delivering a car while this exact UK So it's the real world if your goal is not the car but transportation The first iteration of transportation to be a skateboard that it could be a little push scooter and a bicycle and you're getting up to that traveling faster Farther distances with lower resources lower amounts of energy So if the goal in the end is quick transportation of long distances, then you end up at the car But you might start out with something like a skateboard to see if that's at if that's actually the goal they're wanting to achieve I've also I think a better example of this kind of delivering value we see in comic books and illustrations Disney animated films storyboarding kind of a thing And so when you work on laying out a comic book page You typically start with layouts and thumbnails and it's very fuzzy. It's a very Low fidelity you can't really make out the details are not necessarily facial expressions But you're sizing the frames the characters in the in the scene to fit the page And then the illustrator works for the author to see if that's what they're wanting So you start with pencil sketches and they say no, that's not quite right So you rearrange this if you're doing full inked and colored pages and then find out the layouts wrong You have to scrap all that work. That's now wasted but in the in the case of comic books to Continuously deliver value you start with layouts and thumbnails and you get that right once that's right You then move on to pencils with a higher fidelity facial expressions Communicate interactions between characters and from there you ink it once the pencils are right and once you ink it Only then do you start adding color to really finalize that product at the full value of the product? through all that work and so a Bad example of how I've tried to deliver value. I was with the when we did the the relaunch and inch forms as version 3 It was a year-long rewrite that we expected to take a few months And we didn't we were focused on how we deliver the value value quickly We this grand plan of how to rewrite this thing I'm very proud of where we got with the products. It is very stable now But in the beginning it took way longer than we anticipated because we weren't focused on what we were wanting to really improve with it We had this previous version of plug-in all these features and we put it on ourselves to build all those features Into this product out the gates and we told ourselves it can't release until all this is out there and the two three month Build ends up taking us a year or more to get all those features in there when we could deliver value within the first month of the new builder user user interface The new builder user experience But instead we limited ourselves to requiring all those extra features that weren't necessary at first Had we started with the smaller pieces? We could have iterated around that idea faster and got into a better user experience sooner and not had to wait for user feedback after everything is delivered a Better example would be maybe some of the ways Gutenberg is delivering right now to where they have the beta feature the beta plug-in And they they build and release and then user testing the build and release. They have a long-term goal They're getting to but they're not trying to hide Some pieces they're not intentionally trying to hide all of Gutenberg and the one day say hey version 5 Look at this new thing you didn't know about they're releasing over time and so In the recent year I have some better examples How particularly my the team I work with is has delivered value more quickly One of those examples we just forms is the add-on manager And so we identified the pain point of the add-on model being that you would have to make a purchase You would then have to go to the downloads page download the zip file copy the license key go over your client site Upload the file paste your license key activate and you do that for every single site And so we didn't find that pain point We tried we put together some brains from how we want to solve that and we started iterating from there what result it was a one month turnaround beta of our add-on manager Which is a one-click installation of add-ons we make the purchase you click install and install as they're the add-on remotely There's no downloads. There's no license keys. It all happens seamlessly and With that we started out with using easy digital downloads to sell the product We first said okay, if this is an add-on manager the key feature here is remotely delivering these add-on Plug-in files. So how do we do that? So I went to my office. I did some research I built a thing that you could hit an endpoint and it remotely delivers that file It doesn't authenticate. It doesn't copy license keys. It doesn't activate anything. It installs it in WordPress And I said okay team here's this his this URL that delivers is this am I still on track? They said yeah, that looks great. Keep going from there. I add in the Authentication so do we have this purchase made and said okay. Here's how this workflow is you go to the site you click here If you're then authenticated it installs it. Okay, that's great. Then I add in license keys Okay, we install it as license key so now automatic updates also work with the system and and we keep adding features adding features So that's we always had something core that worked every time I delivered We had something working that we could stand on and I could present the team and say am I on track? Is this the thing we want to do? We didn't necessarily release publicly every step of that feature But we did have a solid beta to release that was relatively stable Minus like hosting conflicts and so we're able to get that turnaround really quickly had we focused too much on the details up Fronts we would have not realized all the hosting conflicts were after the fact and we would have decided ourselves that we had this thing Working it's perfect and launched live to a million plus active installs on WordPress and then we would have found out about hosting issues and then we've had a million people submitting support Retickets because there is some security feature on this host that this host doesn't have and that blocks downloads and by focusing on getting that delivery Right and then testing that other hosts. We can say early on here are the blockers if the core features remote delivery and That doesn't work on hosts that support WordPress It doesn't matter how we authenticate doesn't matter how we handle license keys It doesn't matter how we do logging in the background if that doesn't work the product doesn't work So focusing on that early on us to find those barriers get over them now and then we can build the product out from there More recently is the ninja mail product we built to solve email issues in in form notifications Things like that and so the idea there was how do we do something quickly? And so we were able to launch a new service within one month's time. We had had not built a service We hadn't actually done a whole lot with the OAuth authentication and all that the API connections So we started out with I built an endpoint on a staging site that says you send data to this URL It sends an email and one of the team and said, okay, I had this set up Here's it's integrates with our transactional email provider when you hit this URL it sends the email and then I said, okay Now here's ninja forms submitting a form hits the API end point and delivers the email at that point in time The product team for Ninja forum said, okay, that looks good But we're off on this piece because it doesn't integrate with the form quite properly And we're able to identify that now before we make too many decisions down the road that make that more difficult Identifying those core functionality issues up front We're able to then build on a more solid platform which results in a one-month turnaround As opposed to multiple months where we then release it then find these issues out of the fact There's particular a lot of stakeholders because where's the there's the owners of the company There's the ninja forms team and support team support teams have to be able to support the product And if they don't get eyes on early, then we're going to build some that are on direction that they have a hard time supporting and Integrating them into that process ultimately build a better tool And so once we launched it it wasn't as robust as we want it to be so we then added more features on there Oh, one of those things was a debugging tool that we we didn't realize How it needed to work out how we needed at the time and so we built it launched it We got some report requests and we realized here's where these problems are in these people's websites Here's how we introduced this new feature. We built it released it and we spent maybe two more days on it And we didn't try to get all it up front because we don't necessarily know what all those hurdles are going to be but we delivered an API integration for delivering for Transaction that transactional email through ninja forms in a very quick manner A lot of us allowed us to then get user feedback on how the product works till we can then make it better And so now we're finding the point one month after that initial launch of it being a Very stable product at this point in time. We've identified that the key Or that the most frequent possible issues We can educate support team on how these things might go wrong and how we address it as a team I'm able to make those iterations very quickly I'm continuing to use this kind of quick deliverability And as an example We're talking with some people one of the previous talks about the we're talking about photography and stock photos And I had the idea of what if there's a community driven stock photo site where WordPress? Community photographers could take photos Upload them to a site and then WordPress bloggers can then pull us into their site. So unsplash has that integration. They showed off Maybe been Jacob soccer. He showed that we can drag and drop stock photos into your site But one of the problems with stock photography is that However, we talk about how much we talk about trying to kill stock photos or death of stock photos as a service name Which really just a stock photo service They're trying to disrupt an industry, but really just trying to replace it with themselves A lot like uber and taxis and Airbnb in hotels. They're recreating the same thing over and over again Instead so the problem with stock photography is really the same photos over and over again no matter what service you use And so the idea was what they were unique photos community members take photos upload them They're claimed one by one well on one-to-one relationship from bloggers So they're unique and so I think it's interesting But before investing a lot of money in a potential platform or service What are other people think the problem with telling people giving people ideas Oh, what do you think about this idea? They don't always see it the way you see it and they might be interested But there's nothing to show them and so in between talks before this talk while eating the fancy popsicle outside Very good for my popsicles and down. I sat down and I put together a first iteration what that would look like And so I have on a demo site now locally at least A system where you can put in a photo title upload a photo post it And it creates a custom post it attaches the photo as the featured image Displays it on the front and then redirect you to that page So I now have a system to where photographers can upload photos to a community site So then people can go and start downloading them And so the core functionality of that at least a start is the ability to upload photos in a way That's publicly viewable. And so now I have that working I can go to photographers in the WordPress community and say here's my idea Here's how this works. So you can take a photo and upload it for use by the community And then from there I can work on how do we limit one-to-one downloads or so and we'll point out Hey, these would be more usable if they were had tags in them if you could tag the photo and so Okay, I can do that I can integrate adding attached to photo at the time of the upload But it doesn't necessarily affect the core functionality of uploading the photo that's un publicly viewable so I can iterate that on that over time and then I can add in functionality of like what if they're one-to-one and How do we do potential reimbursements for community members? Are they all free or maybe we do some kind of like micro payment option? But if you start dreaming too much up front all the possibilities You can get weighed down on what you can do and then not build anything of use And so if I were I think the interesting idea is adding like credits and one-to-one downloads But you don't build that first because the value is not there Someone else has that value, but the value here is a community driven photo uploading site And so if I start with how do I do payments and what do I integrate and how do bank accounts? Connect and how you transfer funds then you're not actually focused on the core value the product that you can then iterate on show people So if I talk about this idea of community photo blog and then show them like a micro payment service That doesn't mean anything to them and I've actually missed the point of the core feature there so Yeah, so over the past few years I've been trying to build these new products a lot of new products recently I've found this deliver continuously delivering the value quickly. It's very beneficial. It's it's kept me on track It's kept me delivering the things I need to be it's keeping focused on features that are important and probably most importantly It keeps me off the features that aren't important Most recently working on the ninja shop project There's a lot of features we need to add before we can release it publicly in this full-fledged idea We have but in thinking about all those ideas There's too many things to if you try to think of all the possible features at once Personally, so I get Overburden with all the possibilities and so I started building this feature here But I was like an idea for another feature one of here start building that feature Then I realized I had spent like two days of dev time and had nothing to show for it So I said I know what to do here focus on value. What's the most important thing this feature? I built this out Then by lunch that day I said hey boss. Here's how this works. What do you think? This is what we got working for the base of iterating on this project And so I went from spending two days of dev time with nothing to show for it to buy lunch had something to actually show Which I think is Very valuable for internally releasing a project, but also we can get into delivering products publicly your customers get more value out of the product sooner from there and That's all I have a few has any has any questions. I'll be around for us today This is a team photo the ninja forms team after a year long release of three I don't normally we don't normally jump in the air and scream and celebrate But when you spend that long doing something you have to be excited about it all that nervous energy So ideally you should be able to iterate faster and not necessarily have this much excitement. We need to deliver value So that's all I have. I appreciate you being here. You can get chance to speak with y'all today. You have any questions? I'll be around