Tuesday, September 29, 2015

SQL Updates - Tip of the Day

When you are typing SQL Update statements, start by typing the WHERE clause first !!
You never know when your muscle memory will trick you and you hit that F5 key . So it is better to be ready.

Almir
#SQL #Database #DB #programming 

Sunday, September 13, 2015

Node.js and Prototyping

How do you prototype something quickly, keep it simple and at the same time have it ready to be expanded into a real product?
During my last two-week vacation I spent a bit of time to learn Node.js. My goal was to learn it enough so that I can put together a little template for me in order to easily develop some prototypes with a bit of Web API via Node.js and HTML/Javascript on the client side.
I am glad that I spent time learning a bit of Node.js because when I came back from my vacation, I needed to develop a prototype for my team as part of our first sprint of a big project. I just spent last week some time to develop a prototype and I am ready to share it with my team members on Monday. 
The next thing for me in my personal time is to learn Node.js more so that I can apply it at the enterprise level when needed. All the error handling and robustness that comes naturally in C#, I need to develop that skill in Node.js.

Almir
- almirsCorner.com - 

#NodeJS #Javascript #HTML5 #programming #coding #code #programmer #SoftwareEngineering #SoftwareDevelopment #POC #prototype #WebAPI #API #RESTful


Thursday, August 20, 2015

Monterey Car Week - August 2015 - Quick summary with an album

I already posted a bunch of pictures on Google+ during the Monterey Car Week, but I will use this opportunity to share the full album with you.

It was a great week. Compared to last year, it seemed that the level of enthusiasm this year was much higher. For me the most fun part was watching the delivery trucks unload these amazing cars. The atmosphere around the town was also great. Some locals may not like this busy week, but overall it is a great thing for Monterey.

Here is the link to the album:
Monterey Car Week - Aug 2015 - ALBUM




- almirsCorner.com -

#cars #Monterey #MontereyCarWeek #CarEnthusiasts #CarCrazy #Porsche #Ferrari #Acura #Nissan #GTR #GT3 #Jaguar #AlfaRomeo

Saturday, August 8, 2015

With the trend of Javascript Frameworks comes more responsibility

With the trend of front-end Javascript frameworks, there is more and more logic pushed to the client side in the Javascript code. 

With all this comes more responsibility when we talk about security. It requires a lot of discipline. Front-end and back-end (API) developers need to work very closely together so that secure information is not revealed in the Javascript code. 


- almirsCorner.com - 


#tech #programming #programmer #softwareEngineering #softwareDevelopment #code #coding #Javascript #frameworks #RESTful #APIs 


Friday, July 24, 2015

Gmail as your task management tool (TODO) - Yes, I said Gmail! Sticking to basics is the solution.

I've tried at least a dozen of well-respected task management apps and none of them give me a complete solution.
Then I realized that a solution is in front of me every day. Don't look further than Gmail as your task management tool on your smartphone or desktop browser. Gmail app on iPhone is not like the regular email app that only keeps your emails for X number of weeks. All the emails are there and the searching is so easy. Labels/Folders are easy to use and it is easy move things around or apply different labels.

Don't get me wrong. I like my OneNote for all the work related items, but for simple tracking of my to-do personal items, I have been using Gmail app on my iPhone and Gmail in the web browser.

For example, I created two labels:
- TODO_Current
- TODO_Backlog

Before the beginning of the week, I review my backlog and put it under Current if I plan to work on it that week.

Then throughout the week, I review the Current list and I work on the items.

For regular bills I set up reoccurring meetings in Google Calendar and I set up reminders to get emails when I have to pay bills. Those would go under my Current list for the week. 

The two features that I really like are:
  • How conversations (email threads) work encourages you to easily use that the email thread and keep replying to yourself on tasks that take longer. Then you can just scroll through the email thread and see what you have done so far and continue working on it.
  • Copy and paste from other websites into Gmail keeps the HTML format perfectly. This is crucial when I read computer/coding article and I want to revisit it, I typically save the URL and also copy and paste contents of that page into Gmail for easy reference. 

With this system, I feel so organized. 

Yes, there are very good tools that I tried that do this much better on the mobile device, but I could not find one that does it great on both desktop and mobile. For example, I love OmniFocus app for iPhone, but I don't have anything for my PC at home or at work. I paid premium to to play around their iPhone app, but I decided that Gmail is the best all-around solution for me.


Almir



#GTD                


Friday, July 17, 2015

Are Tools ruining the Agility in “Agile” teams?


Manifesto and the role of tools within the world of Agile Software Development?

Part 1 of the manifesto: “Individuals and interactions over processes and tools
Are the tools we use to support our Agile Software Development ruining the actual agility on day-to-day basis? Are these tools affecting the chemistry of the team?
Are the companies that sell these tools feeling the pressure to innovate and to keep owners and stockholders happy? Then the innovation turns out to be tipping the manifesto statements to the right side (contradicting the manifesto) because the decision makers in companies who buy these tools want the tools that are all about tracking, measurements, and reporting.
I am putting a lot of questions in this post and I am not going to necessarily give you answers to these questions. This post is more about having you think about these things and realizing whether you as a software developer are already impacted by these tools or specific features of these tools. Are you asked to use certain features of these tools and you think that these features cross the line and tip the weight to the right side of the manifesto which really means contradict the manifesto itself?

Over the years I used many different tools that supported waterfall and agile development. Some of the more recent tools for agile development have been:
  • Rally
  • PivotalTracker
  • Trello
  • Jira (some exposure)
  • Asana (not necessirily build for agile but for overall task management)
  • OneNote (yes, I said OneNote)
I am not going to praise or criticize specifically any of these tools. Some of them are simple and get the job done without forcing you to do it certain way. Some of them are more complex because they have all kinds of features for measuring and reporting and this generally looks attractive to managers who see this as an opportunity to closely track the work that the team is performing.
The question becomes, who is supposed to pick the tool? Are the members of the development team supposed to recommend a tool that helps them get the job done the best way, or is the management team supposed pick the tool that works better for them?
What did we do before the age of tools? Yes, we used Post-it notes !
A simple board with Post-it notes divided in a few columns did the job for a team in one location. It was a very simple approach. The tools should also keep things simple. They should just take it one step further without negatively impacting the progress, the creativity and agility of the team. On the other hand, if you go one step too far with the tools, the team will know if their agility is impacted and if the fun-factor is gone. We all know that if you take the fun-factor and agility out of the team, then the team members are not operating on their own terms any more; the authenticity slowly goes away.
Almir M. (almirsCorner.com)
#agile #AgileMethodology #scrum #team #teamwork #softwaredevelopment #programming #coding #tools #manifesto

Friday, July 3, 2015

Why I switched from ChromeOS to Mac OS !

This is about your household computers and which type of computer is used 90–95% of the time. I am a software engineer and I still need to use a Windows laptop if I want to do some development at home after a long day at work.
As for most used household computers, we switched from Windows to ChromeOS when the original Chromebook Samsung 11" came out in 2011. Then we switched to HP Chromebook 14" and that made the experience even more consistent and enjoyable.
All this time we were using LastPass for password management. I like how LastPass approaches their security but recent hacks scared me a bit and I started thinking about one basket with all the eggs in it and all of this being in the cloud with LastPass (no offense LastPass). Then I decided that my wife and I should switch to a total opposite approach for password management and use 1Password desktop software without keeping any password management data in the cloud. That resulted in getting a Macbook Air 13" as I wanted a full OS with less maintenance. We have been enjoying the Macbook Air, but I am still appreciating the consistency of any Chromebook and 100% productivity. Mac OS is very consistent and it just works but when I compare it directly to ChromeOS, it still has some unexpected performance behaviors which are not worth mentioning if I compare it to Windows.
If ChromeOS had a built-in way of zipping and unzipping AES 256bit files or something built-in along a lighter version of TrueCrypt, then I would use ChromeOS again anytime. Maybe LastPass and Google can work together to produce a truly native LastPass app for ChromeOS. That would allow me to occasionally take that encrypted file from one Chromebook to another and still have access to my password management information. As for everything else, I have nothing to hide and I embrace the cloud as much as possible.
I am excited to see where ChromeOS team at Google will take ChromeOS over next few years.
Let me know if you are facing similar dilemmas with your household computers and if you have any recommendations for me on ChromeOS could solve my problems at this time.
Until next post,
Almir Mustafic (almirsCorner.com)

#Chromebook #ChromeOS #MacOS #Macbook #MacbookAir #Windows #PasswordManagement #LastPass #1Password #Encryption #security #Cloud #CloudComputing 



Saturday, June 27, 2015

Estimating Projects the traditional way and running them using “Agile” methodology

Estimating project is not easy if you don’t have a right approach. You can be in MS Project land trying to figure out little details, but those details change and then you are stuck maintaining schedules in MS Project.
A lot of companies are trying to change to use “Agile” methodology and I am putting the word Agile in quotes because there is no company out there that is following exactly what you are taught in ScrumMaster courses and SAFe courses. That means that companies sooner or later end up doing what works for them and that could be an approach that belongs somewhere on the line between Waterfall and Agile; for some companies closer to Agile and for companies closer to Waterfall.
For example a lot of companies get a list of projects that need to be estimated, prioritized and approved by a board before projects can be worked on. Then when they are approved, you are asked to provide project schedules with milestones and deadlines with very high-level requirements. Then some of these organizations say “let’s run these projects using agile methodologies”. What does that really mean?
What does that really mean if you have already broken down the project into a list of tasks and you estimated it all?
Can the agile team take these requirements and start assigning points to user stories and deciding how much to handle in a given week? In the meantime based on estimates, you already know how much needs to be handled in order to even have a chance to deliver the project?
Is that really fooling the members of the team believing that they will set the velocity based on how much the team can handle and in the meantime the estimates have been already committed?
Let me explain how I approach this. Let me first step back to the point when the estimates are being provided. What works for for me is reading the requirements document and breaking down the project into a list of features and sub-features. Then if the requirements document is written in such a way that it lists the user stories, you can easily distribute these user stories into the appropriate sub-features. If the requirements document does not explicitly list the user stories, then I would put a product owner hat on and extrapolate the user stories out of the requirements document.
Now that I have all the user stories under each sub-feature, I can do some high-level estimating on each story and the unit for estimation is the number of days. It is not some virtual story points and it is not hours; it is the number of day and you will see why later in this article.
After estimating each user story under each sub-feature, you can add up the estimates and have the list of sub-features and numbers for each sub-feature.
Now that you have the list of sub-features and estimate for each sub-feature, it is all fun after this point. It is fun because I like using Trello website to pre-plan all the sprints and ultimately produce the deadline (production launch date), because that’s what business expects from us. NOTE: I don’t do sprint planning at the user story level; I do this exercise of sprint pre-planning at the sub-feature level in order to produce that deadline and to have a rough idea how each sub-feature needs to be worked on throughout the project.
What are the steps to be taken before playing the drag-and-drop game in Trello?
  • Decide on the duration of the sprint (let’s say 4 weeks)
  • Take the list of sub-features and estimates and break down each sub-feature into multiple sub-feature parts that are each 5 days worth of work. For example, if you have a sub-feature that has the estimate of 20 days, then you would break that sub-feature into Sub-Feature A part 1, Sub-Feature A part 2, Sub-Feature A part 3, and Sub-Feature part 4.
  • Now you are ready plug this all into Trello backlog list and then the game of dragging and dropping starts :)
Here is how it could look like in the backlog list when you start:



Now that you have all the sub-feature parts in the backlog, it is time to gauge what the optimal number of resources is. Let’s do some simple math.
  • 6 resources
  • 4 week sprints (20 working days)
  • if everybody is a robot, then the team should be able to chunk away 120 days (6x20) out of the estimates. Yeah right !!! With all the meetings and interactions between teammates, a reasonable number to achieve in each sprint would be 60–80 days worth of work. If each part of the given sub-feature is equivalent to 5 days worth of work from the estimates, then you should be able to drag and drop 10+ of those parts into a given user sprint.
You as the technical lead and technical project manager know best how each sub-feature is related to each other and you are deciding those things as you are loading each sprint with the list of sub-feature parts.
Here is how it may look after going through this exercise. It looks like the duration of the project would be around 14 weeks (3.5 months). If you know what the start date is, then you can easily calculate the production launch date. You also know when you need to start each sub-feature and when each sub-feature is supposed to be completed. That can help you point out some major milestones to your senior management team.



You are done. Provide your boss the duration of the project, major milestones and the production launch date that you can achieve based on these high-level estimates.
What’s next?
Well, now you need to share this with the team and help out the team do proper sprint planning at the user story level by using this sub-feature plan. I happened to use Trello just for the purposes of “sub-feature” planning, but when it comes to sprint planning at the user-story level, your team will need to use whatever tool your company approved.
Good luck and have fun.

Almir M (almirsCorner.com)
#Agile #AgileMethodology #ProjectManagement #ProjectPlanning #SoftwareEngineering #SoftwareDevelopment #Scrum #Planning #Trello #SAFe 



Thursday, June 18, 2015

Detect errors on time to gauge the success of your launch — Simple concepts, huge benefits!

When you develop your applications, do you put thought into a proper logging mechanism? In a perfect world, there should be no errors in the logs, but we all know that’s not the case in reality. Then how do you know that the project you just launched to a production environment is not introducing new errors or new types of errors on top of already existing errors that your triage team has been investigating?
Maybe on day 1 of your launch, you don’t see customer complaints, but in reality your systems are hurting or bleeding slowly. Yes, a network operations team could be checking the high-level health of the systems through a list of dashboards, but what are we software developers going to do to introduce a new level of detection? This all starts from the enterprise architecture and frameworks you build. Let’s assume you have a very robust logging mechanism and that this mechanism allows you to log the happy path. Let’s also assume that you have very clean guidelines for error and exception handling and utilizing the logging framework where necessary.
Now that you have all of the above in place, at the beginning of your project that is implementing business requirements within the existing framework, you have ability to cleanly define the top 20 cases to measure the success of the new code/features. Each developer can use this top-20 list as a guideline while developing the code and logging happy/negative cases. Let’s say your code is now in production and you are scanning through the logs manually and detecting the top-20 cases. Is this efficient? Are you supposed to do this on daily basis manually?
My recommendation is that you develop a lightweight solution that will be able to automatically do the following for you:
  • * Scan the logs on daily/hourly basis and produce the count of the top-20 scenarios and display the results in a table on some internal dashboard website
  • * Have ability to detect if the number of errors in each category increases by more than X% (daily comparison of errors per Y units of work and units of work could be somehow defined and tied to the traffic on your website).
  • * Have ability to detect if new types of errors and exceptions that start happening so that the team can manually assess the situation and then add each new type of error to the top-20 list and start tracking it on daily basis.
If you have all of this automated, then there is no manual work needed when you launch something to production. You will be able to tell if your new code is hurting the numbers on existing top-20 categories and you will also be able to tell if you started introducing new types of errors that hurt the revenue of your company. Let’s assume that your production deployment involves deploying to a smaller/secondary data center first and then later to the rest of your data centers. Then this type of mechanisms can help you decide whether you continue deploying to the rest of data centers after deploying to that smaller data center.
These are all simple concepts. You can spend minimal efforts in building it yourself or maybe decide to buy a solution. The importang thing is to always take the “keep it simple” approach in decision making.

Conclusion:

Start by tracking top-20 errors on daily/hourly basis and use the percent of change as the gauge for the success of your code being pushed to production environments. Detect the newly introduced low-level engineering errors in production on time to gauge the success of your launch. Don’t over-design this! Keep it simple!
Almir Mustafic (almirsCorner.com)

#softwareengineering   #softwaredevelopment   #code   #coding  #programming   #software   #errors   #ExceptionHandling   #NOC  #monitoring  

Tuesday, June 2, 2015

Study to pass school (aka get credentials) or Study to Learn?

After interviewing a lot of candidates for software development jobs, I am starting to remember the days when I went to school and I am wondering about the following question:

Should students study to pass college or should they study to learn?


This question comes from my concerns that I have about candidates from both great and average universities. There is no direct relation between your skills and your credentials; it is really up to individuals and how they approached studying. When I attended the University of Toronto in mid-90s, I studied Computer/Electrical engineering. This university was considered to be one of the top three universities for computer/electrical engineering program in Canada, and also among the top 10 when compared to big players in US. My parents were willing to pay for me to go to this school even though I had a full scholarship offer with another average university.
Did I make the right choice attending the better school? Are you making right choices now?
Right choices? It all depends on how I approached my studying. If I had studied to only pass and get good credentials from University of Toronto, then my parents’ money was not invested properly. I studied to learn and if that meant that it would actually affect my grade in a negative way, that’s how I approached it. This may not make sense, but we all remember the days from our college when exams had things that you would never apply in real life and in the meantime the courses were also teaching things that were very applicable in real life. If you studied to learn things for long term, then a lot of times you would get in trouble. Don’t misunderstand me here. Yes, there are things that are taught in courses for which you can’t see applications in real life in that given moment, but you need to plow through it and you will see answers to these doubts at the end.
I have also seen the opposite effects. I am talking about schools diving into real life examples too soon without teaching students good fundamentals in that area. If every student approached this, then nobody would be inventing new things; it would just be a game of putting components together. There has to be some golden balance.
Going back to interviews that I mentioned at the beginning of this article. Regardless of your school credentials, you need to have very strong fundamentals and you need to be able to apply those fundamentals at the right time. For example, software engineering is a very wide field these days and it is impossible to have expertise in all the areas. This is where the fundamental knowledge kicks in. When you jump from field to field in software engineering industry, you will not know everything but you will need to apply those fundamentals and learn quickly. That’s where you separate yourself from others.
In conclusion:
Put the credentials of your university aside and use the great things from your school to learn.
Almir (almirsCorner.com)
#school #college #university #study #credentials #tech #softwareengineering #computerscience #programming #coding

Monday, May 25, 2015

Wheel Alignment — Yes, my car needed it ! Does your car need it?

If you lower your car, make sure you do the wheel alignment. I managed to avoid this with previous cars, but the alignment on my Honda Fit got affected drastically after putting H&R Sport springs and new shocks/struts. I knew I should have done the alignment right away, but instead I learned the hard way by fully running through a pair of Bridgestone summer performance tires in just 4,000 miles.
Here is a picture of a front tire that got worn out and a rear tire that stayed perfectly fine. Since I put a few thousand of miles in a few months, I was not expecting my tires to be in this condition. Just when I was thinking about doing the tire rotation, I realized what’s going on.
So what did I learn from this? I learned that I should not try to take the cheaper route which in reality ends up more expensive ☺. Most of you don’t lower the suspension on your cars, but the alignment can still change. We all need to check the tires regularly for uneven wear and for super fast wear. For the car nerds out there, both the toe and camber were off. The toe being bad caused the tires to wear out very quickly. The camber caused the uneven tire wear.


















Have fun driving and be safe.
Almir (almirsCorner.com)
#cars #suspension #wheels #wheelAlignment #HRsprings #shocks #lowered #lowering #tires #performance #summertires 

Buying a new car — Crazy Great Deal?

5,000 off of MSRP price of a new car. Yes, that’s the deal I got on a new Honda Pilot.
Here is how you can do it.
TrueCar.com
Choose the car you want and see what deal they give you. If you like the deal, print out the certificate for the dealer that is willing to honor that deal. Check the inventory of that dealer and drive there. Show them the certificate and test drive the car.
When you sit down to do the paperwork, make sure that they don’t include dealer-installed accessories unless you want them. Also, don’t negotiate on the monthly payments. Do all the paperwork on the actual price of the car. Once you sign on the price of the car with taxes. Then make sure they give you a monthly payment that matches with the total price. There are plenty of car loan calculator apps that you can get for your smartphone to help you out.
TrueCar changes the deals on hourly and daily basis. The day after I got the $5,000 deal, TrueCar lowered the deal discount to $2,200. This is kind of similar to buying airplane tickets.
For example if you are looking for a new Prius, they were having a discount of $4,900. For a new GTI, a discount of $2,500. Click here to see some deals from yesterday.
Have fun shopping if you are looking for a new car and never go to a dealer alone as you need extra pair of eyes while doing the paperwork.
Have fun driving and be safe.
Almir (almirsCorner.com)
#cars #CarPurchase #Buy #Deals #TrueCar

Sunday, May 10, 2015

Google becoming Amazon. Amazon becoming Google. Is the word “amazon” going to be become a verb?

Now that Google is introducing a “buy” button in the search results, they will be slowly cutting into the market share that Amazon.com owns. I have a prime membership with Amazon and I love it, but if Google makes things easy with a “buy” button within search results, I am not promising that I will not use it. Is Google becoming Amazon? Will Amazon need to become Google in this segment to protect this line of business.
I never really thought of Google and Amazon as director competitors, but as these companies try to figure out ways of making more money and keeping their shareholders happy, their business models are becoming very similar and the competition is heating up. As a consumer, it is interesting to stand on the side lines and use these services as most of them really make our busy lives simpler. I am a big user of Gmail, Google Drive, Google Play, Hangouts, and Amazon Prime. These products make me more productive and save me trips to local stores which in turn give me more time with my family.
The recent move by Google to get into the market of selling items through their search results might pressure Amazon to expand and become an alternative search engine to protect their business line. That would be my long-term prediction.
Am I totally off? Is the word “amazon” going to be become a verb in our daily conversations?
- almirsCorner.com - 

#tech #technology #Google #Amazon #products #ProductManagement 



Prototype — Turning it into Final Product quickly in order to see innovation in action !

I have a saying “There is nothing more final than a POC/Prototype”.
Sadly a lot of times an unpolished prototype just becomes your production version of software. 
On the other hand, we have cases where prototypes fully become a throw-away work. How do we take a prototype into a final product quickly to see the fruits of your innovations with minimal effort and at the same time not have a drastic difference between the design of a prototype and the design of the final product? In other words, how do we introduce agility and flexibility?
What’s on the table. You have the following in the picture regardless of the type of architecture:
  • Product owners and innovative ideas
  • Front-End development
  • Web-tier (server-side) development
  • Business logic development in some forms of web services or APIs.
When you develop prototypes, you can take the Business-Logic component out of the equation most of the time and for the purposes of this article, I will not focus on that part. My focus will be strictly on the Front-End development and Web-tier (server-side) development. In order to get to some recommendations, I will need to take a quick trip in the history of web development. I will mostly talk about role of Microsoft technologies in web development as go quickly go through the history.
In the old days, the web development was done via classic ASP and it was somewhat friendly for front-end developers because the control was within the front-end code (ASP files). Then Microsoft went in the direction where the control shifted towards the server-side development and the HTML code ended being a collection of .NET user controls being invoked; this took away power and creativity from front-end developers as they relied heavily on software engineers like me ☺. Then Microsoft introduced MVC via Razor syntax giving back the capabilities, flexibility and creativity to front-end developers. If you and your team made architecture guidelines to only use Razor syntax for IF conditions and FOR LOOPS without cheating and calling C# methods, then the Razor syntax (CSHTML) files were very close to HTML files. Taking aside the MVC concepts, I would say that Razor syntax in CSHTML files is very close to PHP. To some degree we could say that front-end developers could go in a dark room and implement all the plain HTML5/CSS3/Javascript code and then quickly integrate it with the MVC/Razor syntax and have the web application fully working. This could be true if you stayed away from using a lot of Html helpers in Razor, but we know that’s not the case most of the time and this requires a lot of discipline.
So what can we do to keep this integration as simple as possible?
We need to develop the prototype within the front-end code in such a way that it just plugs into the web-tier (server-side) code with almost zero impact. So the web-tier (server-side) code in a way becomes a harness for your front end code. If you think of it as a harness while designing the front-end prototype code, then it really means that you don’t need the web-tier (server-side) developed at all for the purposes of your prototype. However, you need the mocked version of this harness that returns back to the front-end code some meaningful test data.
The important thing is to define the clean interface between your HTML/Javascript code and your web-tier (server-side) code; the person coordinating this effort should be the front end developers who have the full understanding of the product and product features that need to be built. I am really talking about the JSON objects as the signatures. You really need to define what type of data should go back to the client from server and define all the JSON format. You just need to be very careful from the security point of view so that you do not reveal something in the JSON that was typically handled in the backend before and now you are sending that information back to the client giving hackers power within Javascript execution. Then you need to define what type of data needs to flow from client to the server and cleanly specify the JSON format. If you don’t pick an existing Javascript framework, then you need to define your own Javascript controller code that will contain the mechanism of passing the JSON information between HTML code and server-side code via AJAX calls or as people call it API calls these days.
Once you have all this defined, then the front-end developers can go with full speed developing the HTML and Javascript code without needing to have the web-tier (server-side) code implemented. You would just need to develop some simple version of the server-side code that would be able to receive and return some sample JSON information in order to test different permutations.
After reading all of the above, one might say “why don’t you just use NodeJS”. My answer is: My article is not about recommending the type of technology that you would use; it is about the concepts that you could apply even using your existing technologies if you don’t have the luxury of switching to a different technology. You could achieve the goals of this prototype by using NodeJS, .NET Web APIs, PHP web service, Django Python web service and many other technologies.
In conclusion, the front-end prototype code really becomes iteration #1(following the architecture of the full solution) for a potential project if the prototype or POC gets approved. The prototype does not have to be thrown away and built in another/real framework from scratch because it IS already in the real framework. It can be just continued as part of an approved project and during that project there should be no surprizes; it is just a matter of fine-tuning the front-end code and having the server-side test harness code replaced with the full functionality.
In a nutshell, this means that product owners / innovators can work closely with the front-end developers (aka product developers) and be one step ahead of the game when that project gets finally approved.
Who wins here? Product owners win. Developers win. Your company wins and the most importantly your customers win.
- almirsCorner.com - 

#Tech #Technology #innovation #disrupt #prototype #SoftwareArchitecture #programming #code #coding #HTML5 #Javascript #WebAPI #NodeJS #Django #Python #PHP #JSON #Csharp #DotNet