I was wondering if anyone who has experience in working with Solidity/decentralized applications, could share their development cycle in contrast with normal web/app development?

Normally, we would 1) write code, 1.2) test, 2) deploy to server. I know there are certain parts of the process is similar obviously on the coding part. But what can a new dapp developer expect when building a decentralized applications in terms of the development lifecycle?

I'm pretty new at this. I came from Android and web development background. Noticed some difference on the testing part which requires a lot of migrate (I'm using truffle). I understand we do use migrate when it comes to something related to database on the normal web/app development. Are there more to expect from this?

For those who are working as a blockchain or dapp developer, could you share your day to day workflow?


Disclaimer: I don't do full-time dapp development - only as a hobby and some freelance jobs. Also, some may argue that this question is too much opinion-based but I believe it is still beneficial to give an answer - even if it's just my own opinion.

The biggest difference isn't actually the development cycle I'd say. It's the amount of understanding from the client's end. In this field the client typically has either very little or no understanding at all of what is possible and what is feasible. So most of the time is actually spent on consulting the client and not in writing the actual code and running tests for it.

So, in my case, the cycle is something like this:

1) Consult the client and figure out what they want and what can be done.

2) Write code and tests. Test locally

3) Deploy to a testnet. Ropsten and/or Rinkeby. Test yourself and get the client to test.

4) Deploy to mainnet

I'm unsure why you would need a lot of migrate when testing. Most of the testing should be performed with a local blockchain (such as Ganache).

You know you have failed in the initial screening/consultation when the product is in mainnet and the client asks "oh, this is working great, but can we add this one small thing to the existing product?". Too late to explain to them (again) that it's not possible.

Not the answer you're looking for? Browse other questions tagged or ask your own question.