Business Startup Work

21 Tips to Improve Your Development Process Pt1

21 Tips to Improve Your Development Process Pt1

Are you in product development working on some cool things? You probably know how long and painful the whole process can get. Wouldn’t it be amazing to use some nifty tricks and tips to improve it, accelerate it and reach the finish line faster? Well, your dreams are about to come true. In this post you will find the firs 12 tips and tricks to speed up your development process while also getting much better results. What are you waiting for?

First 12 tips are in part 2.

No.1: Build Less

When you start building something, whether it’s a product or service, you almost immediately think about all the features and fancy stuff you want to implement. If you want to accelerate your development process, you should forget this idea and focus on essentials. You have to understand that by implementing every idea that comes to your mind your product will end up cluttered and, at best, good to use. On the other hand, you can build half a product that will be great.

This does not mean you have to abandon all your ideas forever. These good ideas you have can be archived and implemented later. You can also use some of them for development of different product. For the product you have now in development, you should take all the features your product should have and cut it in half. Seriously, in order to get it out there as soon as possible, you have to strip down the features until you are left with only the most essential ones.

Remember, the question is not if it would be nice to have these things. The real question is about whether they are essential. You have to ask yourself, “Do these features really matter?” In most cases, the answer will be negative and that is why you will get rid of them. There is one secret the best designers and the best programmers know. Wanna know it? OK. The most important thing is not if you have the best skills or if you can do magic with Photoshop. The real secret to their success is that these people are the ones that know what doesn’t matter. This is where the crowd is split to amateurs and professionals.

What most people don’t recognize, or are not willing to admit, is they waste huge amount of their time on things that just don’t matter. Don’t make the same mistake. If you can focus on essentials and cut out the work and thinking that just don’t matter, you will achieve productivity you’ve never imagined. Simply said, don’t be a yes-man.

No.2: Have an Enemy

Do you know the song “Know Your Enemy” by Green Day? Well, that is not important. The gist is that picking up some enemy can benefit your development process in many ways. The first benefit of having an enemy is that you know what your app should be and also what it shouldn’t be. You can use your enemy to know what features and even aesthetics you want to include in development of your product and what you want to avoid.

For example, let’s say you want to create a better and simpler word processor. The easiest way to understand what you should or should not implement is to take a look at other products on the market. In case of word processors, the most obvious alternatives are Microsoft Office, LibreOffice, OpenOffice and Google Docs. By taking a look at current competitors’ offering, you can quickly list all the features you don’t like and use and move closer to your dream product.

Another bonus you get from having an enemy is a very clear marketing message. How is so? Well, with a chosen enemy, you’re feeding people a story they want to hear. You can use your enemy to compare him with your product and show all the reasons why people should use your product instead. You will also position yourself as an underdog, create the idea of “David versus Goliath”.

No.3: Use Fixed Time and Budget

What I mean by using a fixed time and budget is that you should never throw more time or money into the development to solve a problem. What you should do instead is to scale back the scope. Understand, launching something great that’s a little smaller in scope than planned is far better than launching mediocre product full of glitches because you had to hit some magical time and budget. In order to fully utilize this, you have to, first, figure out what’s really important.

Second, you need to set expectations. Forget about being vague and saying that you will deliver something. Let me ask you: Is “something” what you really want to deliver? No, you want to deliver great product and experience. Be precise in your description and set the expectations high. That being said, don’t let yourself or your product become rigid. Flexibility is key to successful product development. Remember Flickr? That was initially a game!

Again, when some problem appear and you will feel the need to extend the time or raise your budget, please, resist this temptation. Scope your project down. Keep in mind that it’s better to make a smaller product than mediocre one.

No.4: Stay lean

This tip follows the “Build Less”. You should keep your development process as lean as possible. Meaning, you don’t need to have dozens of people working for you to achieve your goals. You can embrace multi-tasking and focus on bringing people with bigger variety of skills. The same applies to you as well. The more you and your people know, the more you can do in a smaller number of people for smaller amount of money. In other words, hire slow and use what you have.

No.5: Ignore Details Early On

Devil is in the details, right? That can be truth, but there you can also find stagnation, disagreement and delays. It is the details that can kill morale and lower your chances of success. If you are in the development for a longer time, think about how often have you found yourself stuck on a single design or line of code element for a whole day? How often have you realized that you made no progress while you spend hours on something? This happens when you focus your attention on details too early in the process.

Remember that there will be plenty of time to be a perfectionist in the future. Don’t worry about positioning every pixel or setting the right size of text in the first stage of development. All you need is to get the content on the page for now and make sure it works. You can adjust and perfect it all the details later. Also, don’t be afraid of forgetting about what you wanted to improve. Details will reveal themselves as you will use the product you are building. Along the way you will see what needs more attention, what is missing and what should be fixed.

No.6: Focus on Problems You Have

Many entrepreneurs and people in product development start to worry about how to scale their product or business to thousands of users. Some of them will then start to count how many people they have to hire to handle all that. The thing is that people often spend too much time up front trying to solve problems they don’t even have yet. This is a sure path to get stuck and never ship your product. To avoid this, you should never sweat stuff until you actually must.

Think about hiring more people only when your current team or you are not able to get everything done and it damages your product. Increase the number of servers you are running only when your current cannot handle the current brunt. If your work is slower, be honest and explain to your customers you’re experiencing some pains related to growing your company. They will appreciate your honesty and transparency.

No.7: Scale Later

This tip is closely related to the previous one. Everyone building a business, creating a product or service rushes to scale as soon as possible. I understand. You want to build a billion dollar company with millions of users and yesterday was too late, but you know what? Wait with all that until that actually happens, until you will get all these users overloading your system and crashing servers.

The harsh truth is the overwhelming majority of startups, products and small business are never going to reach that stage. And even if you will get into such a situation, you will usually have time to adjust and respond to the problem. What’s more, you will have much more real-world data after you launch that you can use to figure out all the areas that deserve your focus. So, in the beginning, focus on building a core product instead of obsessing over its scalability.

Create a great product and only then worry about what to do once it become wildly successful and people will tear it out of your hands. Otherwise, you will waste your energy, time and money obsessing over something that never even happens. Like it or not, the problem is not scaling, it is getting to the point where you have to scale.

No.8: Encourage Users’ Creativity

When building a product focus your development process on general concepts and leave the rest of fun to the users. What the hell does this mean? Instead of forcing people to follow specific convention, encourage them to create their own solutions. If you want to make your product or business mainstream (and not only that), you should make it so general so everyone can find their own solution. Your goal is to give people just enough tools and space to solve their own problems in their own unique way.

Meaning, do the best job you can with the root of the problem then step aside. People will find their own solutions and conventions your general framework. For example, do you know the “Remainders” app on iOS? It is basically a to-do list with couple cool features. You can create multiple lists set with different color, set a date for task, create repeatable tasks and so on. It is good, yet there is a tone of stuff not available–nested tasks, better list management, teams, etc.

I could give you more suggestions of what this app can do and you could implement it, but that is not the point. The gist is that at the current state, the app is so general and universal everyone can use it. Think about it, just because you want to use feature x doesn’t mean other people will want to use it as well. To them, it will be only clutter and waste of space. If I want nested tasks, I can use the description. If I want to create teams, I can create new list for that team.

In other words, if I or you want some of the things mentioned, we have two options. We can either use our creativity end exploit the features available or download different app. Nothing more and nothing less. Follow the same approach in your development. Give people the most general concept and let them be creative.

No.9: Skip Unnecessary Steps

Don’t be afraid to streamline your development process. It is OK to do less, skip details and take shortcuts in your process if means you will reach your goals and ship your product faster. For example, many people in product development will start with simple stories, then continue to wireframes, even following with mockups and only after that going into prototype stage. Most of these steps are just a comedy. It does not matter how many stories, wireframes or mockups will you come up. Only when you will develop real prototype you will know how do you stand.

Remember that there is a big difference between what your wireframes says and what will people do with your prototype. Wireframes and sketches are in many cases only places for heated arguments over meaningless details that will not matter anyway. Only in the end you realize that parts you thought were crucial were trivial. You have to understand that only real things lead to real reactions. So, start with brainstorming to get as many ideas for development as possible.

Remember, that this stage is not about details. This is about big questions and the big problem you want to solve. Questions to ask are: “What does the app need to do? How will we know when it’s useful? What exactly are we going to make?” The rest can wait. Next create some simple sketches. Draw how the stuff should look like, but keep it simple. This step is all about experimentation. After that, create an MVP or prototype. Your goal is to have something that demonstrates enough of the necessary functionality. During this process remember to stay flexible and expect iterations.

No.10: Development in Iterations

When talking about iterations … You should never expect to get it right the first time. It is natural that your product will grow and evolve through the development stages. Don’t try to stop it. Let it morph and change itself. Remember, there’s no need to ship perfection. Don’t be afraid to play with your designs and prototypes. Instead of insisting on getting everything right on the first try, these iterations will let you make informed decisions as you go.

What’s more, you will get functional version of your product up and running sooner since you’re not striving for perfection. As a result, you will get real feedback and real guidance on what requires your attention. Again, you don’t need to aim for perfection on the first try if you know it’s just going to be done again later anyway. Knowing that you’re going to revisit issues is a great motivator to just get ideas out there to see if they will fly.

No.11: Done and Move On

Do you know why “done” is such a magical word? When you get to done it means something’s been accomplished. You made a decision and now you can move on. Done also means you are building momentum. Even if you screw something up and the decision was wrong, nothing is lost. This is not the end of the world or a rocket science. Remember that you are working in iterations and you will review features and ideas multiple times during the development process anyway. You have to understand that you are likely to make some bad decisions.

Take it as a part of the process and don’t get discouraged by it. Also, avoid falling into analysis paralysis. This will only slow your progress and diminish your morale. Instead, focus on the importance of moving forward. Get in the rhythm of making quick and simple decisions. If some of these decisions will not work, go back and change it. Accept that decisions are temporary and that mistakes will happen. It is not a not big deal. You can always correct them quickly.

No.12: Test in the Real World

No matter how many simulations will you go through, there is no substitute for testing your product with real people. Only through testing in the field you will get real data and real feedback you can rely on. Then, analyze all the data you gathered and use them to improve your product.

Some of you may argue that you can use formal usability testing in lab settings or focus groups. Or that in the worst case, personas will cover your ass. That is nonsense. Laboratory conditions and setting don’t reflect reality. Do you remember the times when you were at school writing some test? How did you feel when teacher stand over your shoulder? It was probably not comfortable at all. The same thing applies to lab testing and focus groups as well.

Like it or not, people generally don’t perform well in front of a camera or when someone else is watching them directly. In such a situation, people are especially careful to follow instructions and avoid making any mistakes. Unfortunately, these mistakes are exactly what you’re looking for. The solution is simple. Instead of following these lab-like practices select a group of your current users and let them use the beta features you are working on. Doing this, you will expose these features to real people and that is the place where you will get the results you want.

If you want to move this practice a step further, get rid of beta versions and stop tracking release versions completely. Sounds crazy? Great! Do it immediately. From now on the beta version and current (stable) version will be the same. This way, beta features will get the full workout.

Closing thoughts on improving your development process

Let’s close it here today. You’ve learned a lot already and I don’t want to overwhelm you. Now it is time for you to digest all the information, apply it to your development process and see the results. Only then you will believe that all of the things we discussed are possible.

If you liked this article, then please consider subscribing.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.