Home > Uncategorized > 12 skill yg dibutuhkan untuk membangun aplikasi yang baik

12 skill yg dibutuhkan untuk membangun aplikasi yang baik

So you know how to build a web app? Agile methodologies all talk about “cross functional teams” yet if you look at the vast majority of agile teams they probably have the following “roles”: Developer Tester Analyst Every once in a while a graphic designer is thrown in to the mix. While cross funct

 

So you know how to build a web app?

Agile methodologies all talk about “cross functional teams” yet if you look at the vast majority of agile teams they probably have the following “roles”:

  • Developer
  • Tester
  • Analyst

Every once in a while a graphic designer is thrown in to the mix. While cross functional skills are the right idea we tend to leave some critical skills out of the mix.

Skills like:

Infrastructure Automation

If you build a web app it you should run it.

Infrastructure automation and administration should live inside the team. This allows you to feel how easy or hard your app is to live with.

Key responsibilities

  • Automated app deployment (yes even for mobile)
  • Self healing infrastructure
  • Test driven infrastructure
  • 12 Faktor yg dibutuhkan, yaitu :
  • Codebase

One codebase tracked in revision control, many deploys

  • Dependencies

Explicitly declare and isolate dependencies

  • Config

Store config in the environment

  • Backing Services

Treat backing services as attached resources

  • Build, release, run

Strictly separate build and run stages

  • Processes

Execute the app as one or more stateless processes

  • Port binding

Export services via port binding

  • Concurrency

Scale out via the process model

  • Disposability

Maximize robustness with fast startup and graceful shutdown

  • Dev/prod parity

Keep development, staging, and production as similar as possible

  • Logs

Treat logs as event streams

  • Admin processes

Run admin/management tasks as one-off processes

Community Building

If you don’t know who your clients are, or even worse if you don’t have any yet, how do you know you are building the right app?

You should start building a dialog with your community before you start writing a single line of code.

Key responsibilities

  • Knowing where your users are
  • Understanding your users
  • Understanding why you do what you do
  • Articulating why you do what you do to your users.
  • Giving users something of value first
  • Developing and executing a launch strategy for your app

Programming

This is an obvious one. I will say that developers need to focus more on principles and not technologies. You should also constantly be working on gaining perspective.

Key responsibilities

  • Build the simplest responsible solution.
  • Pick technologies that serve the users needs.
  • Have a strategic outlook on the architecture.
  • Understand that you will probably build the wrong app initially.
  • Write great code!

Copywriting

Text is still one of the most important mediums for communication when building mobile and web apps. You should craft the sentences in your product with as much care as you craft the code.

Key responsibilities

  • Speak your customers language
  • Tell your story
  • Why is more important than what
  • Be concise
  • Be clear

Data visualisation

The visual system is by far the highest bandwidth information channel available to humans. Good data visualisation optimises this channel. Using 3D pie charts clogs it with junk data.

Which would you rather do?

Key responsibilities

  • Understanding the data in your web application.
  • Understanding the insights your users need to have.
  • Applying data visualisation theory to turn data into insight.

User Experience

Just because you like the way it looks doesn’t mean it’s the best way for a web app to work. Designs are only good if they are useful, usable and delightful.  If you would like to know more I wrote a resource guide on ways to learn user experience design

The only way to know how something works in the real world is to watch people using it.

Key responsibilities

  • Paper prototyping.
  • Usability testing.
  • A/B test to improve existing features. (this is harder on mobile apps)
  • Use metrics to make informed decisions.

Business

In order to optimise impact and revenue you need to understand where the money comes from and where it goes. How much does it cost to get a new user, how long do they need to keep using your app to earn that money back?

Where is your major cost, are you optimising the right part of your app to limit costs and maximise revenue. Each web app is different and you need to understand how yours is unique.

Key responsibilities

  • Knowing how your business makes money
  • Prioritisation of features
  • Knowing where costs come from
  • Understand what competitors are doing
  • Finding innovative ways to maximise revenue and minimise costs.

Innovation

Innovate or die!

That is the silicon valley mantra. If you want your web app to compete on the global scene you need to live by it.

Key responsibilities

  • Reduce cost of failure
  • Challenge traditional thinking
  • Broaden the scope of possible solutions

Analysis

Another of the more traditional roles. You need to get into the nitty gritty of how things work. Understand the users needs back to front and think about all those edge cases.

Key responsibilities

  • Understand and optimise business processes
  • Understand and optimise customer workflows
  • Legal requirements

Design

Are you putting your best foot forward?

People make snap judgements on the quality of your web app. You need to be damn sure they make a good first impression.  Luckily there is a wealth of information available on line that can help you learn web design.

Design every interaction, think about the whole experience.

Key responsibilities

  • Make the app pretty
  • Design for target devices and user needs
  • Design is how the app works not just how it looks
  • Design the whole system
  • Make the small things matter

Testing

Is your product a smooth ride or do the wheels come off on a regular basis?

You need to make sure you have a solid testing framework. This includes unit, acceptance, infrastructure, performance and load testing. All automated, all repeatable.

Key responsibilities

  • Automate!
  • Find errors as soon as possible
  • Identify root causes
  • Test the infrastructure

Domain Knowledge

I left this one for last since it is the one that varies the most from project to project. If you are building medical software you best know about medicine. Make sure you know what you are talking about!

Key responsibilities

  • Challenge existing industry thinking.
  • Understand the latest research in your field.
  • Become an expert.

While having all these skills is by no means a recipe for success it definitely gives you a massive advantage over people who don’t.

Even if you think you aren’t doing all these things you are, you might just be doing them badly. None of them should be an after thought.

Does your team have what it takes?

sumber :

http://www.codeproject.com/Article.aspx?tag=198374992151885476&_z=1857650

http://12factor.net/

Categories: Uncategorized
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: