官术网_书友最值得收藏!

Timeboxed programming

For each iteration, you need to decide how long it will take and what features will come with it. As you have seen in Chapter 4, An Agile Workflow in a Nutshell, a typical sprint takes 2 to 3 weeks. Although this may be difficult at first, you will learn soon enough what you and your team members can accomplish during such a sprint. Sometimes you will have no clue how long the development of a feature will take. In that case, a timeboxed approach can help you as well. Before you start working on that feature, you allocate a particular amount of time. Afterwards, you can determine what you have accomplished and you can decide whether the feature can be released as it is. Even if it is not completely functional, as long as it contains no (severe) bugs, it can help you to get early feedback.

Keep things simple and develop only the features that you actually need for that particular iteration. You should ask yourself what it is that you want to prove and what feedback you need in order to proceed. Again, it is important to realize how relevant that feedback is when you look at your app's current phase. For example, you should not be focusing too much on the development of In-App Purchase functionality if the base functionality of your app has not been completed yet.

"You Aren't Gonna Need It", also known as the YAGNI acronym, is one of the ideas behind Agile development and extreme programming (XP), but it does apply here as well.

The goal should always be to achieve maximum learning with the least amount of effort. Also, keep it simple and solve one problem at a time for one product and for one type of customer. As a developer, you will often foresee scenarios that need to be supported, the so-called unhappy flows, but who cares about them if the happy flow is not ready yet?

Consider the scenario where the idea of timeboxing involves the focus more on the time spent instead of the tasks done. So, instead of thinking of features that should be done in a particular amount of time, think of a particular amount of time and what features you can implement given that amount of time. To maximize learning, the changes that come with each new release of your app should be as small as possible while still delivering relevant business value. Timeboxed programming is essential to make sure resources are delivered in a particular amount of time. Determine deliverables and a deadline for each timeboxed iteration. Using this methodology, your productivity will be improved and you can keep the promises to your customers.

In general, get to know your (potential) customers. Learn more about their problem. It is the problem your app needs to solve. This may sound like a job for your more business-oriented cofounder, but a better understanding of this also makes you a better developer. Ask questions and find out what the common problems are for all of your customers.

主站蜘蛛池模板: 柘荣县| 陵川县| 高阳县| 镇远县| 阿拉善左旗| 太白县| 梅河口市| 长垣县| 上杭县| 莱阳市| 亳州市| 韶关市| 上饶市| 民乐县| 西乌珠穆沁旗| 孟津县| 河间市| 法库县| 普宁市| 定州市| 湖北省| 枣强县| 竹溪县| 镇巴县| 巴中市| 陇川县| 建平县| 达拉特旗| 铜梁县| 禹城市| 潜山县| 岫岩| 琼海市| 柘荣县| 定南县| 海丰县| 栖霞市| 长白| 车致| 九龙坡区| 沁水县|