Karatas, FERHAT
I would love to change the world, but they won't give me the source code!
What's next?
17.12.2007 13:40:05 - Filed under : S.Engineering
The year 2007 was a good one. The IT job market was stable. Mankind got an iPhone. While there were not any revolutionary changes in the way software was developed, I believe that this was a year of rich Internet applications and Web 2.0. YouTube became a part of the lives of millions of people around the world. A large portion of the population visits use MySpace and Facebook daily. What's next? What language/tool/technique to learn? What's the next big thing in IT? In my opinionÖ

1. Java will remain strong in large enterprises, but will continue  losing ground as a development platform for small businesses.  J2EE is way too heavy, and scripting languages and frameworks offer an alternative and productive way of software development  when the cost of development is more important than performance and scalability. The LAMP platform will remain a preferable way to develop applications for small to medium businesses.

2. AJAX popularity may  go downhill. Since the first day this acronym was created Iíve been writing that it's not a good choice for developing enterprise applications. But the vast majority of the software world was (and still is) marching the AJAX way. This time itís more of a hope than a prediction that in 2008 people will realize that AJAX should serve the same goal as JavaScript Ė making your Web pages a little prettier. Expect to see the re-branding of some of the AJAX frameworks into RIA or Web 2.0 solutions.

3. Speaking of Web 2.0Ö Even though Web 2.0 was not officially defined, I think itís all about giving more control to the users of the Web sites. The more interactive a Web site is, the higher the number people will put in front of the zero Ė 3.0, 4.0, and so on. Some people say that Web 3.0 is about Semantic Web. If you bought a grill on Amazon.com, they can guess with high probability that you might be shopping for rib-eye steaks. Check it out the next time you visit the site. Itís all about control. From the userís side and from the vendorís side. Weíll see more and more interactive sites next year. While some people are planning to write next-generation sophisticated software, others will come up with a very simple, easy-to-implement  but appealing business idea, and the next 20-year billionaire is born. 

4. Flash Player will remain the best deployment platform for rich Internet applications. While Microsoft is trying to come up with a competitive delivering platform for RIA, itís not going to happen in 2008. Silverlight 1.0 is a good start, the next version (1.1) will be even better, but itíll take time to release a product that can do more than streaming multimedia.

5. Ruby on Rails will take a small share of the market of small non-mission-critical Web applications. Convention over configuration. Speed of development over performance. While Ruby on Rails will not become a framework of choice, it has achieved a very positive result Ė people have started to realize that not every project has to be developed in either Java or .NET. Besides, RoR is a well-designed framework that will become a good design sample for the new frameworks of the future.
6. Internet video will be booming and Iím not talking about YouTube. Internet Video will start being a part of a number of enterprise applications. This process wonít be fast, and  you have an opportunity to be among the early adopters in this sector.

7. Outsourcing will gain more and more ground despite the fact that itís very expensive and the project failure rate is high. The reason is that the U.S. has almost stopped producing software engineers. Itís just a matter of time before everyone gets used to the fact that business software is made in India, just like we all know that all toys (with or without lead) are made in China. But innovation in software will still be happening in America. I guess, thereís something in the air here. Re-read an old but valid article by Paul Graham about why Silicon Valley canít be exported.

8. Apple - next year Iíll finally purchase a MacBook Pro for myselfÖ if my Sony Vaio will die. Even if it wonít die, having a two-year-old machine is a good excuse for submitting  a purchase order to my wife for approval. Peer pressure, a cool design and the ability to run Windows (plan B),will force me to ignore the high price.

9. Adobe Flex and AIR - Flex will become the #1 tool for developing enterprise rich Internet applications, and Iíll be seeing 10% fewer raised hands when asking an audience, ďRaise your hand if you do not know what Flex is?Ē Adobe AIRís adoption will be slow though. Or course, the shops that are already sold on Flex will use it, and some AJAX developers will realize that it may become a lifesaver for their applications, but thatís about it. While being a well-designed and very promising technology  (Flex, Flash Player, HTML, JavaScript, PDF, SQLLite DBMS, an ability to work in a disconnected mode,  and full access to your PCís resources), it may be perceived as yet another  Web browser, which is a tough sell in the enterprises.  At least, become an early adopter. I will.

10. Telephony. If 2007 was the year of Skype, weíll see some interesting development in this area. Skype is a great product, but it requires you to download and install software. In the era of RIA, things can be done without it. Watch the Ribbit phone software that will allow you to make calls and receive e-mails just from your Web browser.

11. IT job market in the USA.  While weíve enjoyed a stable demand for IT professionals in 2007, it wonít last and next year weíll see project freezes and even layoffs. The reason is the burst of the real estate bubble. This will affect not only those simple people who were brainwashed and decided that they could have afforded an American dream.  CEOs of major Wall Street corporations are being fired after drowning their companies by getting into bad mortgage debt. Among other things, the IT budget will be severely cut. As you know, today on Wall Street, is tomorrow on Main street. Use the training budget of your employer now if itís not too late. Keep your skills up to date.

12. The hottest IT skills of 2008. When the job market is tight, recruiters immediately increase the list of skill requirements for job opennings. Youíll see job postings that expect you to know a number of programming languages ranging from Cobol to C++. Knowing just one hot tool does not cut it anymore. But if you have limited time and need money, start by learning tools for developing rich Internet applications. The skillset of a highly paid Web developer, at a minimum, has to include the following skills: HTML,CSS, JavaScript, J2EE or.NET, Flex or Silverlight, AJAX, and good communication skills. You do not have to really learn AJAX, but must add AJAX keyword to your resume, otherwise you may not even get a job interview.

13. The next big thing. Software development will change to a wider use of code generators. Forget about heavy frameworks, regardless of what programming language you use.  In a simple case, use some XML style sheets combined with the metadata that describes your application objects to automatically generate the code for these objects. On a larger scale, the entire application may be described using metadata and XML, and an appropriate code generator will do the job. So programming will change from writing tedious code that requires lots of coders to describing the metadata and writing custom code generators.

Happy New Year!

http://flex.sys-con.com/read/471820.htm

About Yakov Fain :
Yakov Fain, editor-in-chief of Flex Developer's Journal (http://flex.sys-con.com), is a managing principal of Farata Systems, consulting, training and product company. He has authored several Java books, dozens of technical articles. SYS-CON Books released his latest book, "Rich Internet Applications with Adobe Flex and Java: Secrets of the Masters" in Spring 2007. Sun Microsystems has nominated and awarded Yakov with the title Java Champion. He leads the Princeton Java Users Group. Yakov teaches Java and Flex 2 part time at New York University. He is an Adobe Certified Flex Instructor.

Keywords : Next language/tool/technique
with 0 comments

Design Debt
23.01.2007 16:50:21 - Filed under : S.Engineering
Software development is a big investment, requiring a minimum of six figures and often far more. So why do so many companies throw away their investment? Why do they trash existing software and rewrite it from scratch? Why do they retire useful products?

Companies often make these painful decisions because their software has become too expensive to maintain. Over time, changes become more costly. Eventually, the cost is too high: the company has to retire the product or rewrite it.

Most teams don't think in terms of design debt and don't even try to pay back principle. If you have a project with an aggressive deadline, your team has almost certainly taken on design debt. It's already slowing them down, and in order to avoid missing deadlines, they'll take on more debt. The compound interest will eventually kill your investment.
Avoid the temptation to stop work and refactor for several weeks. Even the most disciplined team inadvertently takes on design debt, so eliminating debt needs to be an ongoing activity. Have your team get used to refactoring as part of their daily work.

Design debt is like credit card debt: it's easy, tempting, and leads to ruin if not paid off. Nearly every team can go faster by reducing design debt. Demand continuous design improvement from your teams. Support it by reducing schedule pressure and training your teams in advanced code-quality practices. The extra effort now will safeguard your investment for the future

http://www.jamesshore.com/Articles/Business/
Software%20Profitability%20Newsletter/Design%20Debt.html

Related Terminology : Design debt, successful sofware

with 0 comments

To start Extreme Programming (XP)
4.10.2006 10:05:13 - Filed under : S.Engineering
The most obvious way to start extreme programming (XP) is with a new project. Start out collecting user stories and conducting spike solutions for things that seem risky. Spend only a few weeks doing this. Then schedule a release planning meeting. Invite customers, developers, and managers to create a schedule that everyone agrees on. Begin your iterative development with an iteration planning meeting. Now you're started.

Usually projects come looking for a new methodology like XP only after the project is in trouble. In this case the best way to start XP is to take a good long look at your current software methodology and figure out what is slowing you down. Add XP to this problem first.

For example, if you find that 25% of the way through your development process your requirements specification becomes completely useless, then get together with your customers and write user stories instead.

If you are having a chronic problem with changing requirements causing you to frequently recreate your schedule, then try a simpler and easier release planning meeting every few iterations. (You will need user stories first though.) Try an iterative style of development and the just in time style of planning of programming tasks.
If your biggest problem is the number of bugs in production, then try automated acceptance tests. Use this test suite for regression and validation testing.
If your biggest problem is integration bugs then try automated unit tests. Require all unit tests to pass (100%) before any new code is released into the code repository.

Related Terminology : Agile methodologies, XP
with 0 comments

Previous | Next
Current Page: 1