A developer wrote to me: “I work for a company that develops e-commerce software and websites for several medium sized companies. We need to do thing fast so “code and ship” is the only technique that we used. My manager said that we do not need software engineering and all the processes that you mentioned in your website. What do you think? Please advice.
Answer: There is a misconception to treat e-commerce software and web development as different from other software products. Some managers encourage developers to ignore software engineering techniques and jump into the “Code first, fix it later” attitude. These managers are more concern about schedule rather than quality and it is bad for company business.
First e-commerce software is still a software product that requires certain quality because of its unique requirements such as high performance; high traffic; high reliability for all transactions; and most important data security. Without following a process, you may compromise these requirements which may lead to a risky product. Imagine of an online e-commerce website that run very slow and customers are losing patient then with just one click they can switch to another website. Imagine that a customer types in their information to buy something and it gets lost due to some unknown bug; imagine some important data can be stolen by hackers because the website is not well secured.
Second, e-commerce software needs to be built and shipped quickly to meet customers’ demand; any problem or delay could make customers very unhappy. By following a process, it can ensure high quality product within schedule and cost. Of course, you can code fast and ship quickly but what happen if it has a lot of bugs? It means more fixing and it requires more time which delay the business of customers. A website that constantly goes down with errors means developers are unskilled, managers are doing a poor jobs and it reflects on the company as poorly managed and untrustworthy. Who are going to do business with a company like that?
Third, the nature of e-commerce software is it always need update and must be usable in different platforms. A software product without good design and well defined architecture is often a nightmare for update and maintenance. “Sloppy code” often leads to more bugs that needed to be fixed which is costly and takes much longer.
E-commerce software and web development may not need a robust process and strong disciplines as other software but it does not mean you can do it without a process or an undisciplined way. I often recommend using agile approach for most e-commerce and web development projects as they can be achieved with less cost and risk. Agile approach such as Scrum method are very good for this type of software but you cannot say that Scrum does not have a process or does not follow a software engineering discipline.
I have managed many e-commerce projects using Scrum, and they were very successful. I do not believe in the “Code and Ship then Fix later” approach where managers push developers to work fast then hope for the best. I think we all need to make sure that whatever we build must be high quality and meet or exceed customer’s expectation. By having a well defined process and strict discipline, you still can develop any type of software within schedule and cost. Whether you are building e-commerce products or something else, you do have certain quality goals to meet. You can do it right for the first time and not worry about it or you can choose to do it fast then worry about fixing it later. It is your choice.
- Blogs of Prof. John Vu, Carnegie Mellon University