OutSystems BlogDev Zone

7 Tips to Boost Web Application Development

What’s every manager’s dream, after finding buried pirate gold, starting a unicorn ranch and marrying a beautiful globetrotting supermodel?  Why, improving  web application development productivity, of course!

clock10.jpg

Unlike the gold, mythical creatures and supermodel, this goal can be achieved. You can do it in small steps and realize slight improvements in team productivity. But if you’re aiming at order of magnitude improvements, some deeper changes need to be made (it’s still not as hard as starting a unicorn ranch).
When starting this process, it’s important to consider the fact that both building new web applications and maintaining existing apps must be optimized. After all, the lion’s share of a web application’s cost comes after the first move to production!
With this in mind, I have pulled together seven tips to help boost web application development:
1. Automate deployment
Moving a web app to production needs to be as simple and as fast as possible. To be truly Agile and keep up with the business, deploying to production must occur frequently, or delays will stack up across the development cycle. If it takes two days to place new versions in production, your productivity will suffer.
2. Reduce complexity
The more complex an application grows, the harder it is to change and adapt. The solution? Split the system into smaller parts when it starts getting too big. To do this, however, requires a technology that helps make sense of complex systems, as well as helping the development team split the system into more manageable components.
3. Aim for production, from day one
It’s tempting to hack out a quick solution for an immediate business problem, and later clean the application up to make it production-ready. This may seem like Agile, but in reality, it’s vital to not neglect things like monitoring, scalability, logging, user management and so on. The ideal solution is to build on top of a platform that let’s you take these requirements for granted.
4. Impact analysis
To change quickly, the team needs to be certain that the changes will not break what’s already working. This problem can be greatly minimized through three stages: First, use impact analysis tools during the development process: if a change to the database breaks the business logic, it needs to be immediately obvious. Second, use regression testing. Finally, make sure that the impact of changes can be measured, especially when placed in the production server with production data.
5. Invest on Knowledge Transfer
Employee turn-around, different teams for development and maintenance, or the need to reallocate teams to different projects are all good reasons to invest in knowledge transfer. But don’t put the burden of knowledge transfer on the developers. The documentation will never meet requirements and walking through code is slow and difficult. Use Domain Specific Languages or visual languages and relegate this work to the tools.
6. Flexible Control
The advantages of having a 10 second deploy process are lost in the face of a two day bureaucratic process to approve a move to production.  To have true flexibility, two things are needed: full accountability – to know who to ask for help if trouble occurs, and; most importantly, the ability to rollback a not-so-successful move to production.
7. Collaboration with stakeholders
The sooner feedback pours in from stakeholders, the sooner web app development will start moving in the right direction. There’s no point in developing quickly if it’s going the wrong way. With this in mind, it’s highly important that stakeholders can easily provide feedback on what they would like to see improved.
Looks like a lot of work…
Correct – these aren’t quick and easy steps (but it’s still easier than that unicorn ranch)! But in following these tips, development teams can dramatically improve productivity.
As a case study for this, consider the Agile Platform. It was designed and implemented with all these factors in mind, and a recent study, based on function points, proved that teams using the Agile Platform are 10.9x more productive than using standard technologies.
What other tips would you add to this list? How would you make your team more productive by an order of magnitude?

About the author

Mike Jones

Mike is a professed 'hater' of complexity. He has been in the IT industry since the mid 80's where he learned his technical skills at EDS and Texas Instruments. He believes there is a simpler way for IT professionals to deliver business value that requires a pragmatic mix of agile methods and application development tools.

Comments

Chi Wai Yiu

Agree, agree, agree! We’ve taken the ‘7 Steps’ even further, automating some of our programming. This streamlines application architecture. We’re using SQL and a tool called IronSpeed. We also strongly believe in collaboration (#7). Once the CRUD app is created, it’s really easy to run a quick round of customizations in Visual Studio and ship a prototype to the user. Saves time and prevents extra work.

gk

More research needed on items #1 and #6. They appear to be correlated.

Actually, managing the relationship with your customers should be tip number one.
Not only because it’s the most important (specially if we are using an Agile method) but also because most of the other problems are caused by bad customer relationship. For example, complexity can be reduced a lot if this relationship is well managed. The same goes for impact analysis.
And it’s easier to solve the root of the problems (and eliminate those problems forever) than create permanent workarounds to deal with the same problems over and over again…

Gray

Thanks for sharing these tips to boost web application development. It will help developers to build apps that offer better user experience and make it easy for a company to deliver customized solutions for end users.

Nice tips to boost web application development. Thanks for sharing this article.

Leave Your Comment