TalentSprint, in association with Vishnu Educational Society and Microsoft IDC, has launched a programme to groom 1,000 women software engineers in advanced technical skills by 2018.

The initiative, Women in Software Engineering (WISE), is a boot camp style programme based on experimental and self-learning spread across five learning modules, Santanu Paul, Co-founder and CEO of TalentSprint, told newspersons at a press conference held here on Friday.

The first batch of the programme was launched in 2013 at BVRIT for Women in Hyderabad and Sri Vishnu Engineering College for Women in Bhimavaram, Andhra Pradesh.

“Out of 250 WISE graduates of the first batch, over 220 have already secured offers from major IT companies,” Paul said.

K Vishnu Raju, Chairman, Vishnu Educational Society, said the aim of the programme was to provide ‘world-class’ software education to women engineering students of his college.

Credits: Gamasutra

Credits: Gamasutra

 

Farnborough, UK – 16 th November 2016 – nDreams Ltd., the UK’s largest independent developer/publisher solely focused on virtual reality (VR) entertainment software, today announced that it has received an investment of £2.0 million, the first of a two-stage round. Mercia Technologies PLC, the technology-focused investment business who has invested £4.1 million into nDreams previously, funded £1.0 million of the latest round. The rest of the investment comes from a group of angel investors.

 

The nDreams investment follows the recent launch of the award-winning The Assembly ( view trailer ) on Sony’s PlayStation®VR, coming after its number one debut on Oculus Rift and successful release on HTC Vive. nDreams also recently released Danger Goat ( view trailer), its first title for the Daydream, Google’s new high-quality mobile VR platform that launched on 10 November 2016.

 

Patrick O’Luanaigh, nDreams’ CEO and Founder, said:

“We’re delighted that Mercia are continuing to support our growth by taking part in this investment, which is the first of a two-stage round. We’re also very pleased to welcome a number of private investors, all of whom have hugely successful business backgrounds and a wealth of knowledge and experience. I’m so proud of the team that we have assembled here at nDreams. This investment allows us to continue building on the momentum we have achieved, and to develop VR games and experiences of the very highest quality.”

 

Mike Hayes, Mercia’s Investment Director, Digital & Digital Entertainment:

“The continued progress of nDreams is an example of Mercia’s success in investing and mentoring UK technology businesses. We congratulate the nDreams team and believe that the Company has an exceptionally exciting future ahead, operating at the forefront of the VR content development.”

 

nDreams was one of the first game studios in the world to focus on VR software, and has been working on virtual reality since 2013. The company has also launched Gunner and Perfect Beach on the Samsung Gear VR and has several VR games and experiences in development.

 

About nDreams

nDreams was formed in 2006 by former Codemasters and Eidos Creative Director, Patrick O’Luanaigh (Tomb Raider: Legend, Hitman: Blood Money, Conflict: Desert Storm, Micro Machines V3) with a focus on virtual worlds. Since 2013, the company has exclusively dedicated its talents to developing remarkable virtual reality games and experiences. The studio has already worked on multiple successful VR titles – including SkyDIEving, Gunner, Perfect Beach, Danger Goat and the award winning The Assembly – and continues to develop multiple unannounced projects.

 

About Mercia Technologies PLC

Mercia is a national investment group focused on the creation, funding and scaling of innovative businesses with high growth potential from the UK regions. Mercia benefits from 18 university partnerships and six offices across the Midlands, the North of England and Scotland providing it with access to high quality, regional deal flow. Mercia Technologies PLC is quoted on AIM with the epic “MERC”.

 

Mercia’s ‘Complete Capital Solution’ initially nurtures businesses via its third party funds (with more than £228.0million under management) and then over time Mercia can provide further funding to its ‘Emerging Stars’ by deploying direct investment follow-on capital from its own balance sheet.

 

Since its IPO in December 2014, the Company has invested over £30.0million directly across its portfolio of Emerging Stars.

Credits: Itweb

Credits: Itweb

German engineering group Siemens has agreed to buy US-based Mentor Graphics in a $4.5 billion deal that will bolster its industrial software operations and help it keep pace with changes to manufacturing technology.

Siemens will pay Mentor Graphics shareholders $37.25 per share, a 21% premium to Friday’s closing price, and expects to fund the deal from cash reserves, it said yesterday.

Siemens chief executive Joe Kaeser has set out to reshape the group, a household name in Germany, to make it more profitable and agile by selling off non-core businesses and investing in areas such as software that promise faster growth and fatter margins.

Kaeser has so far managed to reassure investors that he will improve on his predecessor Peter Loescher’s weak track record on making acquisitions pay off in the longer run.

Mentor Graphics makes software that helps semiconductor companies design and test their chips before they manufacture them and represents Siemens’ biggest deal in the industrial software sector since it bought UGS for $3.5 billion in 2007.

 

Siemens said it now had all the software its customers needed to develop complex electronic machinery such as aeroplanes, trains and cars.

“Our customers are driving a paradigm shift toward more and more complex and smart connected products such as autonomous vehicles,” Siemens finance chief Ralf Thomas told analysts and journalists during a conference call.

“This acquisition is our answer to this development,” he added.

Baader Helvea analyst Guenther Hollfelder, who has a “buy” recommendation on Siemens shares, said the acquisition did not appear overly expensive at a valuation of 18.5 times operating profit.

Activist shareholder support

Shares in Mentor Graphics jumped 18.5% to $36.37 in early US trading, while Siemens was 1.1% higher by 1435 GMT.

Mentor Graphics has been under pressure since activist hedge fund Elliott Management reported an 8.1% stake in the company in September and said its shares were deeply undervalued.

Elliott said on Monday it supported the deal and saw it as “great outcome” for Mentor Graphics’ shareholders and customers.

People familiar with the matter had flagged the planned deal to Reuters, saying Siemens would pay $4.5 billion to $4.6 billion for Mentor Graphics, which competes with Synopsys and Cadence.

Siemens said last week that it planned a public listing of its $15 billion healthcare business, which pushed its shares to a 16-year high as investors hoped for an injection of capital to boost its valuation while funding new investments.

Siemens said it expected the acquisition to add to its earnings per share within three years and to lift earnings before interest and tax by more than €100 million within four years.

About half of the earnings boost will come from revenue synergies and the other half from lower costs, including from some job cuts, Siemens CFO Thomas said.

The deal will boost its software revenue by about a third from €3.3 billion, to around 6% of group revenue.

Credits: Techfeatured

Credits: Techfeatured

Business – small or large – now flourishes online. This has called for website development that can offer a dynamic interface. To stay on the top in search engine ranks, websites have to change their content (graphics, videos, text and more) frequently. From static to dynamic, websites have now come of age, thanks to PHP web development services offered by PHP developers and programmers.

PHP first appeared in 1995 and since then, it has garnered tremendous popularity. Probably the fact that Harvard University and Facebook have been developed on PHP has shot up its popularity and credibility. A PHP development company prefers this server-side scripting language because websites can be maintained easily.

Let us now check why business owners should opt for PHP web development services for their websites.

1. It is FREE!

This is the biggest advantage for any business. PHP is an open source. All you need to do is hire web developers, who possess extraordinary skill in languages like C and Java. They can do wonders for your website and consequently, your business.

2. Better Returns

Any businessman would expect high returns on investment. In a highly competitive business environment, you need to capture the attention of visitors; once they regularly visit your websites, you need to convert them from visitors to customers. Since PHP offers dynamic website creation, you get more visitors on your website. This means high returns on your investment.

3. Huge Supply

There is a striking balance between demand and supply of PHP web developers. PHP web development is in great demand so is the supply of PHP developers. If you want to hire web developers, who are expert in PHP, you can easily hire them from a large community. Similarly, for PHP developers, there is huge opportunity to get hired or work as a freelancer.

4. Quick Development

A website developed on PHP doesn’t prove a burden on the server. Since PHP uses its own memory space, it reduces the loading time. It processes everything fast and therefore, web applications like e-commerce, CRM, CMS, and forums are developed on PHP.

5. Measurable Results

You can easily measure results of your marketing campaigns with multiple extensions offered by PHP. Your PHP developer can show you results, which are measurable. You can easily calculate your ROI, which gives you an edge over your competitors.

6. Support

If you have a basic knowledge of PHP, you can easily enhance your knowledge with the help of guidelines and references available online. Have a chat with support groups, ask questions on forums and contact PHP support teams on the Internet. Moreover, you have full access to the online library to gain more knowledge on PHP web development services. And remember, this support is available in different languages.

7. Security

The online world has one major drawback: virus and malware. PHP gives you multiple layers of security for your website so you can easily protect your website against malicious attacks and virus threats.

8. Tried, Tested, and Trusted

As mentioned earlier, PHP has been used since 1995 and thousands of websites have been developed on this platform. And the biggest testimony can come from Mark Zuckerberg. You can blindly trust this platform if you are hiring any PHP Development Company.

9. Supports All Major Web Browsers

There can be millions of users browsing your website, and they may be using different web browsers. PHP supports all major web browsers like Windows, MacOS, Linux or UNIX.

The above-mentioned reasons are enough to convince any businessman that s/he go for PHP web development services for his/her new or established business.

Credits: Groundreport

Credits: Groundreport

For programming, you need to know some programming language. Since the world does not rely on only one programming language, you have a huge number of programming languages to choose from. The biggest challenge for a new programmer is which programming language he/she should pick. You don’t really know which programming language you should pick because you don’t have the answer to the “why”. When you ask the experts, they will often ask you to pick the language that they are experts of. Since they have been playing around with their programming language, it always looks easy to them.

The first thing you need to know as an aspiring programmer is that you can’t pick a language based only on how easy it is. Of course, you will be recommended to pick an easy-to-learn language first, but it does not mean you will base your career on that language. Easy programming languages are often recommended only to encourage you to be a programmer. When the starting path is easy, it is more encouraging for newcomers to go forward and learn more. No matter how easy your first programming language is, you will have to learn the advanced and more difficult programming languages later on.

Now, there are many ways to pick your first programming language. One of the biggest reasons of picking a language is salary. You want to be a programmer because you want to make good money. There are certain languages that will pay you more than others. Some of the most recommended programming languages when it comes to high salary are Python, Java, C# etc. If you are good at programming using these languages, you can literally enter the 6-digit figure with your yearly earnings. With programming in Java you can easily make close to $80,000 every year.

Another way of picking a language for programming is based on the application of the language. You have to realize that different programming languages have different strong points. Java is perfect for making mobile applications but when it comes to creating web applications and web development, you will always be recommended to learn PHP and JavaScript. Note here that JavaScript is not Java and they are not connected to each other in any possible way. C++ and Python pare pretty strong when you are interested in creating gaming applications. If your interest is in big data and its analysis, Matlab is the language for you.

You would also want to pick a language based on your geography. Yes, your geography can have a great impact on your earnings as a programmer. For example, if you are an expert with Python and Ruby, the best place for you to find work is California. This is the state with the highest demand for the programmers in Ruby and Python. You will not be demanded as much if you are in New York or Virginia. The programming language that stays equally popular in all the states mentioned above is Java. In short, you can’t go wrong with Java.

It would benefit you to know that certain languages are becoming more popular with time and future might belong to them. Python is another language alongside Java that you might want to learn if you want to be a future proof programmer. Keep in mind that giants like Facebook and Google are using Python for most of their works. Among C++, PHP and Java, Java remains the only language that has maintained good popularity for decades. Lastly, you can learn multiple languages if you have passion for programming and you don’t mind spending time learning new languages.

JFrog Artifactory Extends The Universe with PHP Support for Developers

Credits: Prnewswire

 

SUNNYVALE, Calif., Oct. 20, 2016 /PRNewswire/ — JFrog announced its support for PHP package management in today’s release.  JFrog Artifactory, the Universal Repository Manager, is an all inclusive package solution and supports all binary artifacts including Maven, Docker, npm, PyPi, Nuget, YUM, Debian and many other packaging formats.

With this new support, PHP developers can easily store their local PHP Composer packages in Artifactory, and also proxy other PHP repositories like Packagist. PHP Developers can also utilize the full strength of what JFrog Artifactory has to offer, including the ‘universal’ ability to use PHP along with other package types in one system of record.  JFrog Artifactory also provides support for rich metadata around an artifact, and PHP developers can leverage the Artifactory Query Language (AQL) to query this data and uncover information around each of these artifacts.

“JFrog believes in providing freedom of choice to our developers,” said Dror Bereznitsky, VP of Product at JFrog. “Our universal support in JFrog products dramatically speeds up the development process by enabling users to manage all binary artifacts equally well, regardless of the programming language, technology or CI server used to build them. Combined with our open APIs, our products integrate seamlessly into the developer’s continuous integration environments.”

JFrog will continue to expand its universal support with more releases planned for this year.

More information about JFrog Artifactory PHP support can be found on the JFrog Wiki.

Resources

About JFrog
More than 3000 paying customers, 60,000 installations and millions of developers globally rely on JFrog’s world-class infrastructure for software management and distribution. Customers include some of the world’s top brands, such as Amazon, Google, LinkedIn, MasterCard, Netflix, Tesla, Barclays, Cisco, Oracle, Adobe and VMware. JFrog Artifactory, the Universal Artifact Repository, JFrog Bintray, the Universal Distribution Platform, JFrog Mission Control, for Universal Repository Management, and JFrog Xray, Universal Component Analyser, are used by millions of developers and DevOps engineers around the world and available as open-source, on-premise and SaaS cloud solutions.  The company is privately held and operated from California, France and Israel. More information can be found at www.jfrog.com.

Alarm bell and programming iconsPHP is one of the most common languages on the web, so as a developer, it helps to have it in your tool kit. You don’t have to know it perfectly to dive into the language—PHP is similar to C and Java in some ways, so if you know these two languages, you can jump into it more easily. However, when learning any new language, chances are you’ll make some mistakes as you’re getting up to speed. Here’s a list of the most common mistakes PHP developers may face and ways to help avoid them.

1. Not Securing SQL Code

Some of the top cyber attacks on the web are SQL injections. In a SQL injection attack, a hacker will insert SQL code you haven’t authorized into your database, causing it to execute commands like leaking, altering, or deleting data. However, there are ways that better PHP programming can minimize the risk of SQL injection attacks.

PHP is the backbone for several out-of-the-box solutions such as WordPress. When writing new extensions and plugins for WordPress sites, developers will likely create inline SQL statements. These statements are built from the front-end and sent back to the SQL database. If these statements are malformed, you run the risk of leaving your site open to SQL injection.

There are two ways to avoid this. The first way (and the most preferred) is by using prepared statements. The second is by using parameterized queries.

The following statement builds on user input from a form:

$stmt = ("SELECT * FROM users WHERE firstname = '".$firstname."';");

This might leave your site vulnerable since it leaves your site open to SQL injection. A safer bet is to use parameterized and prepared statements like the following:

$stmt = $dbConnection->prepare('SELECT * FROM users WHERE firstname = ?');

$stmt->bind_param('s', $firstname);
$stmt->execute();

These are better methods because the tick mark the opens and closes a string value in SQL is processed as a literal and not an opening or terminating character.

2. Suppressing Errors

PHP has different error levels, but you can manually suppress them in your code. This is useful if you have errors that aren’t critical and don’t cause any serious effects. For instance, you could suppress warning messages regarding PHP versions.

The “@” symbol is used to suppress errors when you don’t need them, but use it with caution— it can sometimes cause some unforeseen issues. Suppose you have an include file that isn’t necessary when running the application. It could be optional for users who only have a specific component in their browser. In that case, you could use the following code in your PHP file:

(@include("animation.php"))

In the above code, even if the animation.php file has errors, they will not be displayed or logged. This error suppression should be used sparingly as you can have errors that aren’t being logged and won’t be found until something critical occurs in the application. In the long run, it’s better to handle errors rather than suppress them for convenience.

3. Printing Data Directly from User Input

This mistake is somewhat directly related to the first mistake we listed. The first mistake—not securing SQL code—can lead to SQL injection security flaws. This mistake references cross-site scripting (XSS) security flaws that can occur when the developer prints data directly from a user.

Suppose you have a form input text box named “firstname.” You want your script to display “Hello, $firstname” to the viewer. You can do this using the following code:

Welcome <?php echo $_POST["firstname"]; ?>

However, what happens if a user inputs “<script>alert('hello');</script>“? This might seem like a minor, insignificant annoyance that no one would bother doing, but the problem is that you’re allowing JavaScript to run indiscriminately in the browser. When JavaScript can run on the browser from user input, an attacker can use XSS to perform any number of events such as stealing passwords and sessions. A hacker could get very creative with the script and perform a number of attacks including session hijacking, phishing, and sneaky redirects.

Instead of printing user input, make sure you scrub any HTML tags out of the output, especially script tags. This will prevent rogue JavaScript code from running on your user’s computer. This type of attack is called an XSS attack, and it allows the attacker to run JS code that could potentially put the entire application at risk.

4. Don’t Forget to Remove Development Configurations

It’s important for any developer to have a development environment—a staging environment that mimics the production environment, which houses the live code. In some cases, a developer might be rushed and forget to remove development variables and configurations, then upload these by accident to the production environment. This can be a disaster for a live application.

Many new developers try to skip the staging environment and go straight from development to production in an effort to save time. This is a mistake because staging can help you identify problems that you didn’t catch in development (remember, staging mimics production). If you accidentally forget to remove configurations or don’t find bugs until staging, you can still catch them before they hit the production environment.

Always have a staging environment, and use it even if you’re just making minimal changes. It’s also a good idea to have QA testers test the code in staging before it’s moved to production.

5. Accidentally Using the Assignment Operator Rather Than the Comparison for a Condition

It’s easy to accidentally use the wrong operator when writing condition statements. After all, developers can spend several hours assigning values to variables. However, if you accidentally use the assignment operator instead of the conditional comparison, you run the risk of introducing bugs.

Take this code for example:

if ($condition = 'value')
//do something

In the above code, the developer mistakenly assigns the value “value” to the $condition variable. The condition should read like this:

if ($condition == 'value')
//do something

To avoid this type of mistake, some developers prefer to use “yoda syntax.” Yoda syntax switches the order of the condition and value. This is what the above code would look like in yoda syntax:

if ('value' == $condition)
//do something

Now, if you accidentally use the assignment operator instead of a comparison, the compiler will give you an error and you can correct it.

6. Forgetting to Run Backups

It might seem like an easy step, but many developers have poor backup practices. You don’t need to back up every hour, but you should run backups each day if you do significant work on a project. Just remember that your backups save you hours of recoding should you lose your data in the event your drive fails.

If you have a difficult time figuring out a problem in your code, back up the system so you don’t lose the solution—and hours of work—and have to recode it. A backup can also save you from missing a deadline if something happens to go awry.

You should also create backups for your clients in the rare case that a client has a critical failure and no backup. It’s a nice gesture, and you can help your client out of a potentially sticky situation.

Conclusion

Many developers encounter these common mistakes when learning PHP. It’s part of the learning process when learning a new language. Like with anything, practice makes perfect. Once you make a mistake, you can learn from it and take a course of action to avoid making the same mistake again in your future applications. Some will be critical while others will be minor, but this list can help you avoid some of the more common ones.

Read more at http://www.business2community.com/brandviews/upwork/6-common-mistakes-php-developers-avoid-01705208#ul2zYCx1oTkp3sPW.99

Credits: Gamasutra

Credits: Gamasutra

Game Design Deep Dive is an ongoing Gamasutra series with the goal of shedding light on specific design features or mechanics within a video game, in order to show how seemingly simple, fundamental design decisions aren’t really that simple at all.

Check out earlier installments, including the action-based RPG battles in Undertaleusing a real human skull for the audio of Inside, and the challenge of creating a VR FPS in Space Pirate Trainer

Who: Brooke Condolora

I’m Brooke Condolora of husband-and-wife team Brain&Brain, and I acted as artist, writer, and designer on our latest project, Burly Men at Sea.

Before games, I was a freelance graphic designer and web developer. My husband David and I did occasional creative projects together, like short films, until we finally stumbled onto the idea of making a game. We started developing our first, a tiny point-and-click adventure called Doggins, in 2012.

While working on Doggins, we gradually began to realize just how young and still undiscovered this medium is, and that through it storytelling could be pushed in so many new ways. That excitement carried us into a second project, Burly Men at Sea, which we released just over a month ago.

What: A branching folktale

Burly Men at Sea is constructed as a story-building game. In it, branching scenes combine to form a variable tale with a single, overarching theme. With each session, the player returns from one journey to set sail again, uncovering new paths for a series of kindred but distinct adventures.

Of the many elements of folklore that helped to establish what we describe as a “folktale adventure,” three contributed most to the design of Burly Men at Sea: length, tone, and moral. Designing for folktale length gave us a branching narrative with a short play cycle. Designing for folktale tone put the player in the role of storyteller, one step removed from our protagonists. But here we ran into a complication: how could the game present a cohesive moral tale when the tale itself is of the player’s choosing?

Our solution was to structure the story in a way that both beginning and end were consistent, with the player’s influence shaping all events in the middle of the story in a way that developed a single theme.

Why: Adventure for adventure’s sake 

Burly Men at Sea was always a game about adventure, but it took us about a year and a large-scale adventure of our own to learn what exactly we wanted to say about it—or, ultimately, what it wanted to say to us. One of my earliest notes on the game, dated a full year before we even began development, describes it as “a type of interactive adventure with a moral, drawing from Scandinavian folklore.” While this is a perfectly accurate description of the game in its final state, we continued to explore what form that would take for the next two years.

We began with a far more traditional branching narrative in mind. Dialogue choices would carry the player through a series of trials and back, culminating in a lesson about choices made along the way. But we soon abandoned this direction, drawn more to the idea of using playful interaction to advance the narrative, with a sort of Windosill-like aspect of discovery that would set events into motion. With this in mind, we began to view the player character as another of the folkloric creatures in the game: an unseen being with limited influence. As such, a player could direct the protagonists’ attention by interacting with the environment or changing their perspective. The characters might then react to this situational change in a way that moves the story forward.

Once we’d established this framework, we began to work out what sort of story we wanted to tell within it. We had chosen early on to set the story in early 20th-century Scandinavia, so I began to research the folklore of that region and consider what sort of moral tale we wanted to tell.

But I soon learned that each time I held too rigidly to a chosen theme, the resulting narrative felt forced. I tried to write a story to change minds, in which the player was always wrong. I tried to write a story that pretended to be what it wasn’t. And finally, it occurred to me that it’s actually not fun to be “taught a lesson.” What makes an ending satisfying is that it neatly puts into words something nameless you’d already begun to discover for yourself. So I began to write instead with the loose idea to explore the nature of adventure myself, rather than approach it as the knowledgeable party. Looking back, this does seem the obvious route for a story about the unknown, but letting go of intent is a scary to do.

Having set theme aside for the moment, I soon had the rough concept for a journey involving encounters with various creatures from Scandinavian folklore, all taking place at sea. My attention returned to gameplay. How would this journey unfold for the player? I began to develop the village where our characters would set out on their adventure, working from a Norwegian museum’s historical account of life in a local fishing village. As I worked and reworked the location and its inhabitants, it slowly dawned on me that this was not Burly Men at Sea. I hadn’t even begun to develop the setting that made up half of the game’s title—and worse: I dreaded it. Reflecting, I realized that in every seafaring game I’ve played, the least interesting aspect of sea travel is the sea travel. Discovery is interesting. Islands are interesting. Even battles and races are interesting. But endless water and sky quickly become tedious.

The best way to keep our journey engaging, I felt, would be to focus on the encounters as self-contained nodes, with only brief moments of actual travel between. Each node would involve a new creature encounter and, for visual interest, a change in environment (time of day, weather, surface or underwater, island or cave).

Another early choice we made while designing the narrative: there would no wrong answers to choices made in the game. We felt that any story about adventure would be best supported by a world that encouraged exploration and a willingness to take chances, and to that end, no path in the game should leave the player feeling that they should’ve taken a different route.

While we did look to a few other games for reference, the strongest influences on the design of Burly Men at Sea actually came from more traditional media. One that ultimately became the best reference for a branching story with a single ending was O. Henry’s short story “Roads of Destiny.” This was an old favorite of mine that tells the story of a man who comes to a literal fork in the road and chooses one of three ways: right, left, or to return the way he’d come. The story goes on to follow each of these branches to their conclusion, each of which result in different combinations of the same events with ultimately the same fate. It was this method of weaving the same elements into wildly different variations of a single story that guided the shape of our narrative.

After working my way through nearly forty branching variations, I settled on what became the final structure of our story. We’d begin with an intro location that would also serve as a return point (the fishing village), and the story would branch three times during the course of a single journey before meeting again at the end. Each play through would take place over the course of a day and would be designed to be completed in a single sitting.

It was then that I stumbled onto what became the most pivotal piece of the game’s design: the viewport. Inspired equally by the masking ability of fog and by vignette illustrations found in old books, this viewport could be dragged or stretched by the player to direct the characters’ attention and so affect their movement. I immediately began to brainstorm variations on shape and usage: a house shape for building interiors, a flickering ring of firelight, an arched room. These began to combine with a secondary idea of using vignettes to style our narrative scenes like the pages of a book, further pushing the game’s folktale feel. And from this new direction, a more complete narrative theme began to emerge. Our story and gameplay had begun to feel like a cohesive experience.

But the change wasn’t entirely seamless. We had, after all, just attached an entirely new mechanic nearly a year into development. I now had a structural tangle to work through, worried that the game’s use of interaction had become extraneous. Of even greater concern was the possibility that when the viewport mechanic’s novelty wore off, it would become tedious. Somehow, we had to push it further, continue to surprise the player. I sketched out a rough idea for how the viewport might evolve in later scenes, but this only further scrambled my grasp of the structure.

Then, I came across an interview with Nintendo’s Koichi Hayashida, discussing their use of the concept of kishōtenketsu, or four-act structure. In it, an idea is developed over the first two stages, then suddenly goes an unexpected direction before leading into the conclusion. That was it! I hadn’t broken the game: I’d simply lacked the framework needed to contain it.

Equipped with this new lens, I could see how each stage of the game might make the best use of both mechanics, developing gameplay alongside theme. We would use the third act to alter the player’s perception of the viewport and their relationship to the story. Finally, I was able to begin designing the third stage of encounters that would offer that twist, probably one of the most difficult and enjoyable parts of the process. Balance was the first challenge: did the branches in each stage match up in encounter type, level of interaction, use of mechanic, and length? How would each branch connect to the next stage? And ultimately, was it possible for all branches with their player-determined outcomes to join up again at our return point? Would we achieve that elusive through line?


Final narrative structure for Burly Men at Sea, as prototyped in Twine.

Result:

As I tackled these challenges over the following year and saw the narrative gradually take a final form, I took a fresh look at the design and story as a whole to see what themes had emerged. To my surprise and enormous relief, I found that what the game itself had to say about adventure was better than anything I had thought I wanted to say. It was about adventure for adventure’s sake, about following impulse down an unknown path. Incredibly, or maybe not, even our development process had reflected this discovered theme. We tried a lot of strange ideas that managed to bind together into an honest little tale that taught us how to both tell and live a better story.

 

Credits: Venturebeat

Credits: Venturebeat

Successful software development today requires the right people as much as the best code. I like to say that great people, who form great teams, have a shot at creating great software. And great companies are increasingly those that make great software, no matter what sector they’re in.

How, then, do you form a high-functioning, highly-effective modern software development team? What does this team look like? Who are the people you want to recruit? And how should they work together in the name of accelerated, scalable, and sustained innovation?

To help answer these questions, I offer five simple axioms from my experience about what makes for successful, modern software development:

1. Attitude is everything. Hiring software developers with the right disposition matters a lot. Software is a reflection of the people who develop it; personality, as much as technical acumen, is key. Hire jerks, and your software is more likely to be difficult to use, and you will lose customers. On the other hand, engineers who are nice people are motivated to create humane systems they themselves would use. They will build great software for your users because they have empathy for them as human beings. You also have a considerable advantage if your engineering team understands and internalizes the full business context in which it is operating. Any engineer who refuses to learn at least a little about product design, marketing, and distribution channels and says, “Just tell me what to build” is not going to make software that cares about your users’ needs.

2. Collaboration is essential. While you want friendly, welcoming engineers who can empathize with both their coworkers and customers, it’s clearly impossible for engineers to know everything about all areas. Engineers who see themselves as specialists are the ones who will excel and help build great companies. In other words, shared experiences and friendly communities, rather than solitary coding, increases software innovation, despite tech media’s lionization of technology giants like Steve Jobs. Jobs was brilliant, but he simply could not have delivered Apple’s stunning record of innovation without a strong team.

Engineers have to work well together, and with the rest of the company, in order to successfully innovate. We need to view software development like a Hollywood film — movie productions require the coordinated efforts of a producer, director, cinematographer, screenplay writer, editor, costume-maker and stage-hand.

3. Personal interaction is a must. Technology allows the workplace to be more distributed, so we have more individuals working remotely than in the past. While geographic barriers can’t be eliminated, we can retain a commitment to personal interaction as part of the development process.

At Chef, we use the Zoom video conferencing platform for everything from 1:1 meetings between people in different locations to “all-hands” company meetings, enabling everyone to see each other face-to-face. And we have an unwritten rule that conference calls will be conducted, where possible, with the video turned on. While it might be tempting for a CFO to rub his or her hands with glee at all the operational cost savings made possible by a distributed workforce (no rent, no electricity bill, for example), smart executives will reinvest those savings into strong collaboration tools, and, more critically, a travel budget for coworkers to regularly see each other in real life and spend time together. Sometimes there is simply no substitute for in-person shared experiences.

4. Scalable standardization is critical. Software engineers today are like 19th century blacksmiths; they each have their own tool kits and different ways of working. It’s very important that companies balance engineers’ interests in trying out new tools and languages with the potential that this experimentation will complicate product development, thereby making it more difficult to train new engineers and increasing costs related to an unwieldy, heterogenous codebase. The companies most likely to succeed today are not the ones jumping on the latest Javascript framework. They are the ones choosing battle-tested, “boring” technology. While they are unlikely to be splashed on the front page of Hacker News for their technology choices, they are the ones quietly building runaway companies. After all, Slack, one of the most successful collaboration products to hit the market in the last few years, uses the relatively “boring” LAMP (Linux, Apache, MySQL and PHP) stack that has been around since the 1990s.

5. Acceptance of complexity is vital. My last observation about software development is the most important: Complexity is a fact of life, because life itself is complex, and software systems mirror real-life systems. Why is that medical billing system so “convoluted,” after all? It’s because the rules governing medical billing are complex. Beware of anyone advocating “simplicity” as a virtue. Simplicity in and of itself is not desireable; ease-of-use and delight is. Don’t confuse the two. It’s possible to have software that can handle the most complex use cases and still be easy for someone to understand in a logical way. Simple software, on the other hand, eventually hits a wall when its architecture cannot handle complex, real-life use cases.

Software engineering generates astonishing and advanced products that are changing the world in powerful and profound ways. But we can’t forget that achieving a high level of innovation is still fundamentally a human endeavor, fraught with strong emotions and viewpoints beyond just the engineering aspects. Embracing the humanity of software development, its paradox, and, most importantly, its potential, is the only way to create great software products that your customers will love. Organizations that align software development teams to the five axioms outlined here will have the best chance at greatness.

Credits: Opensource

Credits: Opensource

Correctly installing and configuring an integrated development environment, workspace, and build tools in order to contribute to a project can be a daunting or time consuming task, even for experienced developers. Tyler Jewell, CEO of Codenvy, faced this problem when he was attempting to set up a simple Java project when he was working on getting his coding skills back after dealing with some health issues and having spent time in managerial positions. After multiple days of struggling, Jewell could not get the project to work, but inspiration struck him. He wanted to make it so that “anyone, anytime can contribute to a project with installing software.”

It is this idea that lead to the development of Eclipse Che.

Eclipse Che is a web-based integrated development environment (IDE) and workspace. Workspaces in Eclipse Che are bundled with an appropriate runtime stack and serve their own IDE, all in one tightly integrated bundle. A project in one of these workspaces has everything it needs to run without the developer having to do anything more than picking the correct stack when creating a workspace.

The ready-to-go bundled stacks included with Eclipse Che cover most of the modern popular languages. There are stacks for C++, Java, Go, PHP, Python, .NET, Node.js, Ruby on Rails, and Android development. A Stack Library provides even more options and if that is not enough, there is the option to create a custom stack that can provide specialized environments.

Eclipse Che is a full-featured IDE, not a simple web-based text editor. It is built on Orion and the JDT. Intellisense and debugging are both supported, and version control with both Git and Subversion is integrated. The IDE can even be shared by multiple users for paired programming. With just a web browser, a developer can write and debug their code. However, if a developer would prefer to use a desktop-based IDE, it is possible to connect to the workspace with a SSH connection.

One of the major technologies underlying Eclipse Che are Linux containers, using Docker. Workspaces are built using Docker and installing a local copy of Eclipse Che requires nothing but Docker and a small script file. The first time che.sh start is run, the requisite Docker containers are downloaded and run. If setting up Docker to install Eclipse Che is too much work for you, Codenvy does offer online hosting options. They even provide 4GB workspaces for open source projects for any contributor to the project. Using Codenvy’s hosting option or another online hosting method, it is possible to provide a url to potential contributors that will automatically create a workspace complete with a project’s code, all with one click.

Beyond Codenvy, contributors to Eclipse Che include Microsoft, Red Hat, IBM, Samsung, and many others. Several of the contributors are working on customized versions of Eclipse Che for their own specific purposes. For example, Samsung’s Artik IDE for IoT projects. A web-based IDE might turn some people off, but Eclipse Che has a lot to offer, and with so many big names in the industry involved, it is worth checking out.